MIM 2016 Portal Troubleshooting: Deleting attribute value - NoFlowSingleton was not expected
Situation
You have the requirement to remove the content of an (user) attribute in the MIM Portal.
In the test environment tested below, we needed to remove a string value from a custom User attribute (string).
Issue
When you try to use the default MIM portal functions, you cannot empty the attribute.
Empty string ("") , space (" "), is not removing the string.
And using null, null(), Null, Null() is throwing an error.
Keywords
Microsoft.MetadirectoryServices.FunctionLibrary.NoFlowSingleton was not expected.
Error message
System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type Microsoft.MetadirectoryServices.FunctionLibrary.NoFlowSingleton was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically. at System.Xml.Serialization.XmlSerializationWriter.WriteTypedPrimitive(String name, String ns, Object o, Boolean xsiType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRequestParameter.Write1_Object(String n, String ns, Object o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRequestParameter.Write8_UpdateRequestParameter(String n, String ns, UpdateRequestParameter o, Boolean isNullable, Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterRequestParameter.Write11_RequestParameter(Object o) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o) at Microsoft.ResourceManagement.WebServices.WSResourceManagement.RequestType.AddParameter(RequestParameter parameter) at Microsoft.ResourceManagement.WebServices.WSResourceManagement.RequestType.SetRequestParameters(OperationType operation, UniqueIdentifier targetObject, List`1 requestParameters) at Microsoft.ResourceManagement.WebServices.WSResourceManagement.RequestType..ctor(UniqueIdentifier creator, UniqueIdentifier targetIdentifier, OperationType operation, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean maintenanceMode, UniqueId messageIdentifier, UniqueIdentifier requestContextIdentifier) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause, Boolean doEvaluation, Nullable`1 serviceId, Nullable`1 servicePartitionId, UniqueId messageIdentifier, UniqueIdentifier requestContextIdentifier, Boolean maintenanceMode) at Microsoft.ResourceManagement.WebServices.RequestDispatcher.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier targetIdentifier, OperationType operation, String businessJustification, List`1 requestParameters, CultureInfo locale, Boolean isChildRequest, Guid cause) at Microsoft.ResourceManagement.Workflow.Hosting.RequestWorkItemProcessor.CreateRequest(UniqueIdentifier requestor, UniqueIdentifier objectId, OperationType operation, List`1 requestParameters, Guid parentRequest) at Microsoft.ResourceManagement.Workflow.Hosting.RequestWorkItemProcessor.ProcessPutWorkItem(UpdateRequestWorkItem updateWorkItem) at Microsoft.ResourceManagement.Workflow.Hosting.RequestWorkItemProcessor.ProcessWorkItem(WorkItem workItem)
Solution: MIMWAL
Instead of using the default MIM portal functions, use MIMwal.
Install MIMWAL
https://github.com/Microsoft/MIMWAL/releases
Resource Update Function
MIMWAL has a function allow Null() update for a resource update.
From: https://github.com/Microsoft/MIMWAL/wiki/Functions
Null | Returns a null value. Typically used in Update Resources activity with the "Allow Null" checkbox to clear the value of an attribute. |
Configure Update Resource worfklow
- ValueExpression: Null()
- Target: target attribute
- Allow Null: selected
More info
- https://tlktechidentitythoughts.wordpress.com/2016/04/01/mimfim-wal-null-function-and-clearing-an-attribute/
- MIMWAL forum: UUpdate: Clear a Value
References
MIM/FIM Forum
Github
- https://github.com/Microsoft/MIMWAL/wiki/RemoveValues-Function/a>
- MIMWAL FUnctions: https://github.com/Microsoft/MIMWAL/wiki/Functions
MIMWAL
Links from https://aka.ms/MIMWall
- MIMWAL Site - http://aka.ms/MIMWAL
- MIMWAL Releases - http://aka.ms/MIMWAL/Releases
- MIMWAL Documentation Wiki - http://aka.ms/MIMWAL/Wiki
- MIMWAL FAQ - http://aka.ms/MIMWAL/FAQ
- MIMWAL GitHub Code Repo - http://aka.ms/MIMWAL/Repo
- MIMWAL TechNet Q&A Forum - http://aka.ms/MIMWAL/Forum