8.4 Defect 583349 - Driver Clearing Unrelated Field

When an infotype32 field syncs from Identity Manager to SAP HR, a third field that should not be changed gets cleared.

Prerequisites

  • The attribute OLDPERSONNELNUMBER should be synced in Identity Manager for User Objects.

  • Added support for attribute OLDPERSONNELNUMBER in SAP HR Shim versions 4.0.5.0000 and 4.1.1.0000.

The value of the third field (OLDPERSONNELNUMBER) is regarded as empty since it is not a field of BAPI_INTCONTROL_CHANGE. For the appshim to handle the incoming value to be added to the BAPI_INTCONTROL_CHANGE request, add the OLDPERSONNELNUMBER attribute value to that event using a policy when modifying the User.

Sample Policy:

<policy>
<rule>
<description>Add the OLDPERSONNELNUMBER attribute value to the modify event</description>
<comment xml:space="preserve">In order for the appshim to handle the incoming value to be added to the BAPI_INTCONTROL_CHANGE request, add the OLDPERSONNELNUMBER attribute value to that event using a policy when doing a modify on User.</comment>
<conditions>
<and>
<if-operation mode="nocase" op="equal">modify</if-operation>
<if-op-attr name="OLDPERSONNELNUMBER" op="not-available"/> #Here we have considered attribute name as "OLDPERSONNELNUMBER". Same has been used in code.
</and>
</conditions>
<actions>
<do-set-local-variable name="OLDPERSONNELNUMBER" scope="policy">
<arg-string>
<token-query class-name="User" datastore="src"> # Query IDM for "OLDPERSONNELNUMBER" value.
<arg-association>
<token-association/>
</arg-association>
<arg-string>
<token-text xml:space="preserve">OLDPERSONNELNUMBER</token-text>
</arg-string>
</token-query>
</arg-string>
</do-set-local-variable>
<do-add-dest-attr-value name="OLDPERSONNELNUMBER"> # Add "OLDPERSONNELNUMBER" attribute in current modify event.
<arg-value type="string">
<token-local-variable name="OLDPERSONNELNUMBER"/>
</arg-value>
</do-add-dest-attr-value>
</actions>
</rule>
</policy>