I set up a pretty common flow: Name = First Middle Last
However, when the middle name is empty, I don't want two blanks between first and last name. So, how's this for a custom expression? (Note that I'm assuming that first and last name are always present.)
Trim(givenName+" "+HR_MIDDLE_NAME)+" "+sn
Submit, import, sync. Now I run a full sync from my target MA. No errors. We're good, right? Not so fast; let's check the attribute flow. No flow into Name.
Okay, so let's run a full sync preview on one of the connectors. The status of the flow is Error. (Good luck finding an error message.)
- Full sync preview
-
Connector updates
-
Export attribute flow
- Outbound sync rules
-
Export attribute flow
-
Connector updates
Status
|
MV attribute
|
Mapping type
|
Data source attribute
|
Initial value
|
Final value
|
Error
|
sync-rule-mapping - expression
|
NAME
|
(Unchanged)
|
So what happened? Evidently, FIM doesn't like it when you concatenate an attribute that isn't present on the metaverse object. (Has a funny way of showing it though, doesn't it?)
For my reference and yours, here are the results of other experiments that I ran on this flow.
- HR_MIDDLE_NAME is not present in MV
- (Assume givenName and sn are always present)
Description
|
Function
|
Flow definition
|
Result/status
|
---|---|---|---|
MV attribute not present, embedded expr in Trim
|
CustomExpression
|
Trim(givenName+" "+HR_MIDDLE_NAME)+" "+sn
|
Error
|
Same expression but using concat feature in portal interface
|
Concat
|
Trim(CustomExpression(givenName+" "+HR_MIDDLE_NAME))+" "+sn
|
Error
|
Added IsPresent check and removed Trim
|
CustomExpression
|
givenName+IIF(IsPresent(HR_MIDDLE_NAME)," "+HR_MIDDLE_NAME,"")+" "+sn
|
Success
|
Trim function with no assumptions
|
CustomExpression
|
Trim(
""+
IIF(IsPresent(givenName),givenName,"")+
" "+
IIF(IsPresent(HR_MIDDLE_NAME),HR_MIDDLE_NAME,"")+
" "+
IIF(IsPresent(sn),sn,"")
)
|
Parse failure:
Parameter of function Trim does not match
|
(Test embedded expr in Trim)
|
CustomExpression
|
Trim(givenName+" "+sn)
|
(Success)
|
(Test MV attribute not present in Trim)
|
CustomExpression
|
givenName+" "+HR_MIDDLE_NAME+" "+sn
|
(Error)
|
No comments:
Post a Comment