How to change schema properties

I created a mapping rule between SQL DB > OIM DB. The value I'm mapping is "GENDER". When I run a simulation I get this error:

[1777018] Error running synchronization project (Test)'s workflow (Test).
[1777124] Error running synchronization step (Test) of synchronization configuration (Test (d9b20aca-9c47-4a09-859a-d9e9914b4a6a)).
[1777239] The mapping rule (GENDER) was unable to run synchronization between system objects (0001) and (0001) successfully.
[1777161] Property (Gender@Person) could not set the value (M) from system object (0001).
[1777023] Schema property (Gender@Person) only accepts data of type (System.Int64).
The value to write (M) is however type (System.String).

Is it possible to modify the data of type value, to accept the value (M)? from (System.Int64) to (System.String)

  • You may create a virtual property using the property type "Data conversion". Use the virtual property in mapping your mapping and the value will be converted and stored at "Base property" defined in virtual property.

  • Hi Graziano,

    Changing the schema properties of out of the box columns like this is something I would certainly not recommend.

    What would be a better solution is to change the string you're receiving (M) to the integer values supported by the system.

    If you look at the column value settings you'll see the list of allowed values (0, 1, 2, 9).

    You can make a virtual property that does a data conversion from the values from your SQL DB to OIM DB.

    0 - Unknown

    1 - Male

    2 - Female

    9 - Unspecified.

  • Hi Jos,

    Which "Type Data" should I use? When I select GENDER in the "Base Property" if I need to use the "String" item, the item is no longer available. THX

  • What version are you using? 

    In addition, a base property (column) called GENDER in uppercase looks like a custom column. The ootb one would be called Gender. 

  • Hi Graziano,

    I can't see your screenshots (so I might be missing something :) ) but the case would be;

    On the right column (your Oracle system) add a property, pick the type 'Data mapping'

    Give it a nice name and display name, as the Base property select your 'GENDER' column from your SQL DB and add the 'Base values' (for the genders) that are in your SQL database. The data type should be integer (as that is what you want to be converting to)

    On the 'Values to convert to' add the integers from One Identity (so 0 for unknown, 1 for male, 2 for female, 9 for unspecified). Give some thought to whether you want to ignore case, what you want to do with undefined values etc.

    This new property you now have available on your SQL DB side can be mapped to the Gender column (on the person, on the 'left' of your synchronization) within One Identity as this now maps 'Integers' to 'Integers' and does the transformation based on the data mapping you've defined.

  • Hi Graziano,

    I can't see your screenshots (so I might be missing something :) ) but the case would be;

    On the right column (your Oracle system) add a property, pick the type 'Data mapping'

    Give it a nice name and display name, as the Base property select your 'GENDER' column from your SQL DB and add the 'Base values' (for the genders) that are in your SQL database. The data type should be integer (as that is what you want to be converting to)

    On the 'Values to convert to' add the integers from One Identity (so 0 for unknown, 1 for male, 2 for female, 9 for unspecified). Give some thought to whether you want to ignore case, what you want to do with undefined values etc.

    This new property you now have available on your SQL DB side can be mapped to the Gender column (on the person, on the 'left' of your synchronization) within One Identity as this now maps 'Integers' to 'Integers' and does the transformation based on the data mapping you've defined.

  • Hi Graziano,

    I can't see your screenshots (so I might be missing something :) ) but the case would be;

    On the right column (your Oracle system) add a property, pick the type 'Data mapping'

    Give it a nice name and display name, as the Base property select your 'GENDER' column from your SQL DB and add the 'Base values' (for the genders) that are in your SQL database. The data type should be integer (as that is what you want to be converting to)

    On the 'Values to convert to' add the integers from One Identity (so 0 for unknown, 1 for male, 2 for female, 9 for unspecified). Give some thought to whether you want to ignore case, what you want to do with undefined values etc.

    This new property you now have available on your SQL DB side can be mapped to the Gender column (on the person, on the 'left' of your synchronization) within One Identity as this now maps 'Integers' to 'Integers' and does the transformation based on the data mapping you've defined.

  • On the right column (your Oracle system) add a property, pick the type 'Data mapping'

    Give it a name and display name, as the Base property select your 'GENDER' column from your SQL DB and add the 'Base values' (for the genders) that are in your SQL database. The data type should be integer (as that is what you want to be converting to)

    On the 'Values to convert to' add the integers from One Identity (so 0 for unknown, 1 for male, 2 for female, 9 for unspecified). Give some thought to whether you want to ignore case, what you want to do with undefined values etc.

    This new property you now have available on your SQL DB side can be mapped to the Gender column (on the person, on the 'left' of your synchronization) within One Identity as this now maps 'Integers' to 'Integers' and does the transformation based on the data mapping you've defined.

  • I verified that I am able to convert the column Person.Gender to a string in 9.2.