Error using Custom Expression for import attribute flow
My AD Group Inbound Sync Rule (AD to FIM), I have the following IAF rule:
IIF(Eq(displayName,""),sAMAccountName,displayName) =>
displayName (so displayName will always be populated)
However, it's not working if the displayName is empty (results in an empty displayName in FIM).
In the Full Sync Preview, Import Attribute Flow -> Inbound Synchronization Rules -> <Sync Rule Name> window that shows the attribute flows, the row for displayName shows the following:
Status : Error
Data Source Attribute: (blank)
Mapping Type: sync-rule-mapping - expression
Metaverse Attribute: displayName
Initial Value: (blank)
Final Value: (Unchanged) ... this is for an update to an existing group
The sAMAccountName is populated properly.. any idea where I can see the details of what the "Error" is? I've double-checked the function, and have seen someone post the exact same custom expression for this purpose in this forum, but this
isn't working for me (or rather, is "half" working... only when the displayName exists).
I also noticed the "Source Object Details" screen doesn't show displayName (because it may not be recognizing it contained within the custom expression)? Anything that I can check with my configuration?
Thanks for any insight!
Edit: Below is the saved excerpt of the problem from an export-to-file of the Preview window:
<import-flow mv-attribute="displayName" status="error">
<sync-rule-mapping mapping-type="expression" sync-rule-id="{C391E05C-8E85-417A-801E-13548773C18A}" sync-rule-mapping-id="{BF63EC18-CA91-4686-BBEA-A2DB22B7C938}" initial-flow-only="false" is-existence-test="false">
<src-attribute>displayName</src-attribute>
<src-attribute>sAMAccountName</src-attribute>
<sync-rule-value>
<import-flow>
<src>
<attr>displayName</attr>
<attr>sAMAccountName</attr>
</src>
<dest>displayName</dest>
<scoping></scoping>
<fn id="IIF" isCustomExpression="true">
<arg>
<fn id="Eq" isCustomExpression="false">
<arg>displayName</arg>
<arg>""</arg>
</fn>
</arg>
<arg>sAMAccountName</arg>
<arg>displayName</arg>
</fn>
</import-flow>
</sync-rule-value>
</sync-rule-mapping>
</import-flow>
November 9th, 2010 10:28pm
try using the 'IsPresent' function, instead of comparing to "".. so..
IIF(Eq(displayName,""),sAMAccountName,displayName) =>
displayName
becomes
IIF(CustomExpression(IsPresent(displayName)),displayName,sAMAccountName) =>
displayName
Free Windows Admin Tool Kit Click here and download it now
November 9th, 2010 11:40pm