Attribute value resolver
The extension resolves and assigns the value(s) for assignment attributes based on configured data object reference paths and dynamic expressions. You can configure it with a number of attributes and corresponding reference paths or dynamic expressions.
Attribute values resolved with the Attribute Value Resolver extension takes precedence over existing attribute values for a CRA.
Reference path resolution
A reference path is resolved using the CRA as starting point. A reference path must start with either #IDENTITY"
, #RESOURCE
, or #ASSIGNMENTS_PER_RESOURCETYPE
.
A reference path can have a display name format. Use the prefix #ASSIGNMENTS_PER_RESOURCETYPE
to resolve attribute values for values assigned using the Resource driven attributes concept.
Expression resolution
The resolution of dynamic expressions use Dynamic Expresso which is an interpreter for simple C# statements.
An expression must return one of the supported data types:
bool
DateTime
int
String
Guid
(reference)
The returned value of an expression must match the data type of the attribute which the resolved value is for. If it doesn't match, it will result in an error.
The following parameters can be used in an expression:
Built-in RoPE assignment data:
ROPE_AssignmentKey
ROPE_IdentityId
ROPE_AccountTypeId
ROPE_AccountName
ROPE_AccountAssignmentKey
ROPE_Differentiator
ROPE_ResourceId
ROPE_ResourcePoolId
ROPE_AssignmentTypeId
ROPE_ValidFrom
ROPE_ValidTo
ROPE_Disabled
ROPE_PreValid
ROPE_ReasonTypes
RoPE assignment attribute values on the form ROPE_ATTR_<attribute name
, for instance:
ROPE_ATTR_FIRSTNAME
ROPE_ATTR_LASTNAME
ROPE_ATTR_IDENTITYID
ROPE_ATTR_OUID
ROPE_ATTR_INITIALPASSWORD
Customer settings on the form CUSTSETTING_<customer setting key>
:
CUSTSETTING_ContractorMaxValidity
Data connections on the form DATACONNECTION_<data connection_name>_<data connection_element>
, for instance:
DATACONNECTION_RoPE_InitialCatalog
More information about Dynamic Expresso can be found in the GitHub documentation.
Configuration and example
The extension can be configured with a number of settings. Each setting represents how the value for an attribute should be resolved.
This extension supports the following configuration settings:
XML attribute on a setting | Description |
---|---|
key | Unique key for the setting. |
name | Specifies the attribute to resolve value(s) for. You can optionally specify that it should only be done for CRAs for resources of a specific resource type. However, it is recommended that you specify this in extraInfo instead. Has the format: [Resource type name]:[attribute property system name] |
extraInfo | Semicolon-delimited key value pairs. The supported keys are: - Type (required) : must specify either ReferencePath or Expression .- ResourceType (optional): must specify the name of a resource type. - MultiValue (optional): When set to True, all available resource driven attributes will be applied and not only the value with the highest priority. Examples: Type:Expression;ResourceType:Group Type:ReferencePath Type:ReferencePath;MultiValue:True |
value | Specifies how the attribute value should be resolved. If the resolution is of type ReferencePath then the value must specify a reference path that is evaluated with the CRA as starting point. A reference path must start with either #IDENTITY , #RESOURCE , or #ASSIGNMENTS_PER_RESOURCETYPE . A reference path can have a display name format. If the resolution is of type Expression then value must specify a dynamic expression. |
Example 1
We resolve and assign the value of the CRA attribute MBOXSIZE by evaluating a Reference path. Resolution is only done if the CRA is for a resource of the type AD account.
Resolution is done as follows: Look in the other CRAs in the calculation > Find the subset that are for resources of the resource type Mailbox size > Get the value of the assignment's MBOXSIZE attribute.
Example 2
We resolve and assign the value of the CRA attribute OUID by evaluating an Expression.
Resolution is done by executing the C# string.Format
method and using the current value of the OUID attribute as the parameter.