Converting integer values to string values
I am still very new to FIM but I have experience with ILM 2007 FP1 and rules extensions... Using ILM, I have been able to take an attribute that was one data type and convert to a different data type. Example: HR system stores employeeId as a number value
and AD stores that value as a string. This was easily accomplished with .NET but not so easy with FIM functions...
Here is my error:
Microsoft.MetadirectoryServices.FunctionEvaluationException: Error encountered during evaluation of Sync Rule: 'INBOUND HR User'. Details: Data type of destination attribute, 'String', is different from the value to store, 'System.Int64'.
at Microsoft.MetadirectoryServices.FunctionLibrary.AttributeFlowMappingHandler.ExecuteInboundTransformation(CSEntry csentry, MVEntry mventry, String strSyncRuleGuid, String xmlExpression)
Here is what I tried:
IIF(Eq(EmployeeId,0), LeftPad("NonEmployeeId", 6, "0"), EmployeeId) 'This checks to see if EmployeeId = 0 and if it is then pad NonEmployeeId with 0 upto 6 characters and flow to EmployeeId attribute in FIM, if EmployeeId <> 0 then flow EmployeeId
to EmployeeId attribute in FIM.
I have since realized that LeftPad works only with a string and also that my destination attribute is a string.
Is there a way with the FIM functions that I can convert a number to a string? I can't think this is something that has not been thought of or done with FIM.
August 18th, 2010 11:24pm
I think that adding the number to a string should do the trick, i.e.
"" + EmployeeId
should become a string.
Hope this helps,
PaoloPaolo Tedesco - http://cern.ch/idm
Free Windows Admin Tool Kit Click here and download it now
August 19th, 2010 11:32am