I needed to delete all the Managers from people in the FIM Portal where a particular Manager was set. I had blithely assumed this would be easy with the FIM PowerShell plugin – sadly, not so.
You can clear a string value easily enough by setting it to an empty string. So this works:
$ImportObject = ModifyImportObject -TargetIdentifier $ID -ObjectType 'Person' SetSingleValue -ImportObject $ImportObject -AttributeName 'MiddleName' -NewAttributeValue '' import-fimconfig -ImportObject $ImportObject
However change that string attribute to a single-valued reference attribute like Manager and you get this helpful error:
Import-FIMConfig : Failure when making web service call. SourceObjectID = guid Error = The web service client has encountered the following class of error: Other Details: Additional Text Details: Request could not be dispatched.
Note that I’m only having this problem because my reference attribute is single-valued – for multi you can actually delete any specific value, including the last one, essentially nulling the field. But for single-valued you can’t use the Delete operation – you have to use Replace, and it won’t let you replace it with a null or empty string.
Eventually I figured out that I could actually delete the value using a workflow with just the OOB Function Evaluator activity. Set the reference attribute to a space (not an empty string for some reason – I had to put a space as the string), run the workflow against the set of people with the Manager I needed to remove, and I got the job done.
Update: It turns out that setting to a space also works for nulling a Boolean attribute.
Hey Carol, do you know of a fast way to clear a multivalue reference field?
So far, I have to read the field, then do a remove on all objects in the field… There has to be a better way! (FIM catch-cry)
– Ross
That’s the only way I’ve found too.
Is there any way to change the single valued property to multivalued property in FIM after creation of the attribute.Please suggest if you have any related works
Unfortunately not – you have to create a new attribute.