Synchronization/provisioning, simple to complex property

Hello all,

on target system side we have "multi-line"/array attribute of a complex type objects, i.e.

"attrs": [{"name": "customAttribute1", "value": "abc1"}, {"name": "customAttribute2", "value": "abc2"}, {"name": "customAttribute3", "value": "abc3"}].

On OIM side we have simple properties, CustomProperty01, CustomProperty02, CustomProperty03, and I would like to map the simple properties on left side to the parts of the complex property on the right side to be able to read and write data.

CustomProperty01 - attrs(name=CustomAttribute1).value

CustomProperty02 - attrs(name=CustomAttribute2).value

CustomProperty03 - attrs(name=CustomAttribute3).value

Is it possible to get working in OIM?

It is SCIM and v9.0.

Best Regards,

Alexey

  • Maybe something like this...

    On the Mappings section OneIM side add a script property

    vtrCustomProperties
    DataType: String
    [v] Multi-value

    Read script:

    Return {
    "customproperty1", $Customproperty01$,
    "customproperty2", $Customproperty02$,
    ...
    }

    Write script:

    Dim propertyIndex As Int32 = Array.IndexOf(value, "customproperty1")
    If propertyIndex > -1 Then
    $Customproperty01$ := value(propertyIndex + 1)
    End If

    propertyIndex = Array.IndexOf(value, "customproperty2")
    If propertyIndex > -1 Then
    $Customproperty02$ := value(propertyIndex + 1)
    End If
    ...

    Add mapping rule: vtrCustomProperties <> attrs