If you look at the signature for any FieldValue Rule it looks like this:
In reality, there are many more variables provided at run-time for users in order to use when generating their field values.
So if we take an example from a real world scenario, we get the following variables, if we use the trick from within a FieldValue Rule or the equivalent FieldValue script code associated with the Field in question:
optimisticProvisioning: String = false
objectRequest: AccountRequest = sailpoint.object.ProvisioningPlan$AccountRequest@4e8c79
field: Field = sailpoint.object.Field@e73a4f
plan: ProvisioningPlan = sailpoint.object.ProvisioningPlan@da6890
context: InternalContext = sailpoint.server.InternalContext@900f3
bsh: XThis = 'this' reference (XThis) to Bsh object: NameSpace: Bsh Object (bsh.NameSpace@a54415)
project: ProvisioningProject = sailpoint.object.ProvisioningProject@ae9c4e
bsf: BSFManager = org.apache.bsf.BSFManager@18cb57
noApplicationTemplates: Boolean = false
userPassword: String = password
link = null
application: Application = sailpoint.object.Application@13c7d2e[id=ff80808141cd69da0141cd69fb8a000d,name=LDAP]
log: Log4JLogger = org.apache.commons.logging.impl.Log4JLogger@10ee4c8
cn: String = Test.Test
identityName: String = Test.Test
group = null
operation: Operation = Add
accountRequest: AccountRequest = sailpoint.object.ProvisioningPlan$AccountRequest@4e8c79
source: String = LCM
current = null
disableRetryRequest: Boolean = true
dn: String = cn=Test.Test,ou=people,dc=training,dc=sailpoint,dc=com
sn = null
requester: String = spadmin
template: Template = sailpoint.object.Template@1073205
identity: Identity = sailpoint.object.Identity@1b70b7[id=ff8080814200c6e50143df96b76a1c5b,name=Test.Test]
role = null
The following variables can be grouped to show where they came from as shown here:
objectRequest: AccountRequest = sailpoint.object.ProvisioningPlan$AccountRequest@4e8c79
field: Field = sailpoint.object.Field@e73a4f
log: Log4JLogger = org.apache.commons.logging.impl.Log4JLogger@10ee4c8
context: InternalContext = sailpoint.server.InternalContext@900f3
link = null
application: Application = sailpoint.object.Application@13c7d2e[id=ff80808141cd69da0141cd69fb8a000d,name=LDAP]
identity: Identity = sailpoint.object.Identity@1b70b7[id=ff8080814200c6e50143df96b76a1c5b,name=Test.Test]
project: ProvisioningProject = sailpoint.object.ProvisioningProject@ae9c4e
operation: Operation = Add
group = null
accountRequest: AccountRequest = sailpoint.object.ProvisioningPlan$AccountRequest@4e8c79
current = null
template: Template = sailpoint.object.Template@1073205
role = null
These come from the workflow step arguments for the call that runs compileProvisioningProject. These can be seen in the "Identity Request Initlialize" workflow subprocess in the "Compile Project" step.
<Step action="compileProvisioningProject" icon="Task" name="Compile Project" resultVariable="project">
<Arg name="identityName" value="ref:identityName"/>
<Arg name="plan" value="ref:plan"/>
<Arg name="requester" value="ref:launcher"/>
<Arg name="source" value="ref:source"/>
<Arg name="optimisticProvisioning" value="ref:optimisticProvisioning"/>
<Arg name="disableRetryRequest" value="!ref:enableRetryRequest"/>
<Arg name="noApplicationTemplates">
<Script>
<Source>
boolean ignoreForms = false;
if ("ForgotPassword".equals(flow) || "ExpirePassword".equals(flow) || "PasswordsRequest".equals(flow)) {
ignoreForms = true;
}
return ignoreForms;
</Source>
</Script>
</Arg>
optimisticProvisioning: String = false
plan: ProvisioningPlan = sailpoint.object.ProvisioningPlan@da6890
noApplicationTemplates: Boolean = false
identityName: String = Test.Test
requester: String = spadmin
source: String = LCM
disableRetryRequest: Boolean = true
These are by prior fields in the Provisioning Policy (i.e. from the application template for create inside the LDAP application)
dn: String = cn=Test.Test,ou=people,dc=training,dc=sailpoint,dc=com
sn = null
userPassword: String = password
cn: String =Test.Test
These are native to beanshell and are present in the interpreter already.
bsh: XThis = 'this' reference (XThis) to Bsh object: NameSpace: Bsh Object (bsh.NameSpace@a54415)
bsf: BSFManager = org.apache.bsf.BSFManager@18cb57