Reference data mapping in 1IM to 1IM Sync project where UID's are different

Hi All,

I had thought this would have a simple solution, so perhaps I am missing something obvious.  I am setting up a sync project (v7.1.4) from one 1IM environment to another one 1IM environment.

The only issue is the UIDs in use are different on both environments, so some virtual properties are needed in the mapping (for this example, UID_PersonHead).

On the left side I have the following virtual property:

Name: vrt_ManagerCentralAccount

Type: Object Reference

Route: UID_PersonHead.UID_PersonHead.CentralAccount

On the right side I have the following virtual property:

Name: vrt_PersonHead

Type: Key Resolution

Base Property: UID_PersonHead

Schema: Person

Search Property: CentralAccount

Result Property: UID_Person

I then have a mapping between these 2 properties with the direction being towards target system.

Checking the UID_PersonHead field on both 1IM DBs I can see they have a value, however if I run the sync the result is the UID_PersonHead value being updated with a null value.

Any clues on where I am going wrong?

Parents
  • could it be that you have one UID_PersonHead too much?

    Route: UID_PersonHead.UID_PersonHead.CentralAccount 

  • True it looks like there is one too many UID_PersonHead references in the foreign key walker.  Unfortunately the object reference virtual key type has an "example" on the setup page which uses that exact format (the example is using displayname, so their example value is: UID_PersonHead.UID_PersonHead.DisplayName).  In any case, I have tested with both a single and double UID_PersonHead reference and both returns no result.

  • For the mapping mentioned using object reference loads unnecessary data. Use key resolution by reference. 

    The mapping would be 

    On the left and right side the following virtual property:

    Name: vrt_ManagerCentralAccount

    Type: key resolution by reference

    Base property: UID_PersonHead

    Search property: CentralAccout

    Then you map these two virtual properties which each other.

    By the way the example mapping in object reference is for the name of manager's manager. The example UID_PersonHead.UID_PersonHead.DisplayName is correct. For this case we need only the the manager's centralaccount.

    Your welcome,

    Tomi

  • Thanks , you are correct, I was misreading the example for object reference.

    I switched to key resolution by reference on both sides, unfortunately still no luck.

    Via Sync Editor, when doing a browse data on the Target system, the virtual property contains the value of the central account from the mapped user on the other environment, so that looks good.  However when running the sync, the UID_PersonHead value gets updated to null.

  • On the left hand side the 1IM where you want the Managers to be synchronized, make sure that you have the synchronization log on. Then you should see that UID_PersonHead is updated with an UID-value. This UID-value should be from the same system, because it is already converted through the mapping. 

    In your case the value is most likely null and you have a warning that Person.UID_PersonHead was unable to resolve reference value. Try to find out why you are getting the warning. It might be that you have a scope that is limiting the fetched persons.

  • thanks you were correct, it was scope that was the problem as the personhead reference was not within the Identity Manager scope.  Removing the scope restriction solved the problem, the UID_Person reference is now populated when running a simulation.

    Unfortunately this leads to another question.  The Identity Manager scope was put into place as this scenario covers multiple user bases (defined by different importsource types), where only one of the userbases should be syncs (the sync is Identity Manager full control to target, so add/modify/delete).  However the personhead reference can be person objects outside of this scope, which can not be included in the sync.

    So is it possible to sync only objects with a specific importsource type, while keeping their references to objects of a different importsource type.

    eg:

    Person A is importsource = 'TEST'

    Person B is importsource = 'NOT_TEST'

    personhead for person A is person B

    Sync project is scoped to only sync Person objects where importsource = 'TEST' on both Identity Manager and Target.

  • For those use-cases, there is the reference scope definition. Thing is, that you have to define a reference scope if you are using a narrowed (normal) scope definition.

Reply Children
No Data