13:07:48 AD-driver ST: DirXML Log Event ------------------- Driver: \SHIFT-TREE\shift\AD-driver\AD-driver Channel: Subscriber Object: \SHIFT-TREE\shift\SHIFTUSERS\SjoerdH Status: Error Message: <ldap-err ldap-rc="20" ldap-rc-name="LDAP_ATTRIBUTE_OR_VALUE_EXISTS"> <client-err ldap-rc="20" ldap-rc-name="LDAP_ATTRIBUTE_OR_VALUE_EXISTS">Attribute Or Value Exists</client-err> <server-err>00002081: AtrErr: DSID-030F10D6, #1: 0: 00002081: DSID-030F10D6, problem 1006 (ATT_OR_VALUE_EXISTS), data 0, Att 13 (physicalDeliveryOfficeName) </server-err> <server-err-ex win32-rc="8321"/> </ldap-err>
First I'll show you each rule individually and after that the end result.
But the actions are a bit more complicated. Below I show you first the complete action list, and then I explain the first and third one a bit more in depth:
The first action is not even entirely visible. Click on the 'Edit the Actions' button. Now you see that 'for each' value you create a local variable called lvlocationoffice:
And again, this time the arguments, are not entirely visible. Click on the 'Edit the arguments'. Here you set the variable to itself, followed by a comma, a space, and a special value called 'current-node'. The current-node is the attribute value for the specific increment the loop is on:
The third actions needs a more in depth view of the arguments, if you click 'Edit the arguments' you can edit the verb 'Replace First'. Don't forget that you're replacing a comma and a space:
<?xml version="1.0" encoding="UTF-8"?><policy> <rule> <description>Setup Local variable</description> <conditions> <or> <if-op-attr name="L" op="available"/> <if-op-attr name="L" op="changing"/> </or> </conditions> <actions> <do-set-local-variable name="locationoffice"> <arg-node-set> <token-src-attr name="L"/> </arg-node-set> </do-set-local-variable> </actions> </rule> <rule> <description>Concatenate Values</description> <conditions> <and> <if-local-variable name="locationoffice" op="available"/> <if-src-attr name="L" op="available"/> </and> </conditions> <actions> <do-for-each> <arg-node-set> <token-local-variable name="locationoffice"/> </arg-node-set> <arg-actions> <do-set-local-variable name="lvlocationoffice"> <arg-string> <token-local-variable name="lvlocationoffice"/> <token-text xml:space="preserve">, </token-text> <token-local-variable name="current-node"/> </arg-string> </do-set-local-variable> </arg-actions> </do-for-each> <do-strip-op-attr name="L"/> <do-set-dest-attr-value class-name="User" name="L"> <arg-value type="string"> <token-replace-first regex=", " replace-with=""> <token-local-variable name="lvlocationoffice"/> </token-replace-first> </arg-value> </do-set-dest-attr-value> </actions> </rule> <rule> <description>Remove Values If Needed</description> <conditions> <and> <if-src-attr name="L" op="not-available"/> </and> </conditions> <actions> <do-strip-op-attr name="L"/> <do-clear-dest-attr-value name="L"/> </actions> </rule> </policy>