none
UpdateResource: Clear a value RRS feed

  • Question

  • Hi

    Just moving in to using the WAL and still learning; I'm trying to clear values using UpdateResource this way. I'd expect the request to have a "Remove" entry, but instead I get a Modify of "Unknown" type action. Now, the value is gone (or set to a blank string) on the object, but to me, this seems wrong and maybe a bug?

    I've done my own custom workflows (http://fimactivitylibrary.codeplex.com/documentation) where I do this and I always do a "Remove" of the current value and that shows as a "Remove" in the request.



    What am I missing using the WAL to delete values from objects?

    Thanks,

    Soren


    Regards, Soren Granfeldt
    blog is at http://blog.goverco.com | facebook https://www.facebook.com/TheIdentityManagementExplorer | twitter at https://twitter.com/#!/MrGranfeldt


    Friday, February 12, 2016 10:39 AM

Answers

  • Not just from the documentation, but from the API usage as well it can be inferred that Remove is not meant as Delete (Why would a delete API required one to supply an existing value?). So FIMService only has Modify operation for single-valued attribute updates including update with a null value to clear the value no matter who the client is WAL or any other custom workflow.  I can’t imagine a client even if it’s SyncEngine disobeying the laws of FIMService Webservice:) If you find otherwise, please report back. I would consider it a hack by the FIM product team, if it were true.  Personally, don’t see anything wrong with FIM UI displaying a null value to be of Unknown Type. May be if the Value column in the UI mentions it’s a “null value” instead of showing blank, it might make it more obvious.

     Yes, The WAL workflow you configured is the correct way to clear the value.

    Sunday, February 14, 2016 8:53 PM
    Owner

All replies

  • I may be a little rusty, but I think it is missing from the FIM product itself :) There is no compelling reason here to transgress documented API as the job (i.e. delete a value) is getting done :)  At the best this is a FIM product issue.
    Saturday, February 13, 2016 3:44 AM
    Owner
  • You're right. There is no way to do this in the standard product, but with a custom workflow you can and my own workflows can do that be reading the current value and doing a RequestParameter with Remove as action and the current value as the value-to-remove. I could revert to using my own workflows but I'd like to start moving as much as possible into WAL.

    So how can I use WAL to completely remove a value from an attribute on an object?

    Regards, Soren Granfeldt
    blog is at http://blog.goverco.com | facebook https://www.facebook.com/TheIdentityManagementExplorer | twitter at https://twitter.com/#!/MrGranfeldt

    Saturday, February 13, 2016 7:08 AM
  • Remove as an UpdateMode is only supported for multi-valued attributes. For single values it's only Modify. https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.resourcemanagement.webservices.wsresourcemanagement.updatemode(v=vs.100).aspx. What you are requesting is support for "Delete" operation which only SyncEngine support.
    Saturday, February 13, 2016 8:46 AM
    Owner
  • From documentation I see you're right. However, with the request showing an unknown type, I still feel that there is something funky. If you do this using sync, I'm pretty sure you get a delete. Still I need confirmation that the way I 'delete' a value, is the only way to do that using WAL anyways? Anyways, I'll dig deeper.

    Regards, Soren Granfeldt
    blog is at http://blog.goverco.com | facebook https://www.facebook.com/TheIdentityManagementExplorer | twitter at https://twitter.com/#!/MrGranfeldt

    Sunday, February 14, 2016 2:55 PM
  • Not just from the documentation, but from the API usage as well it can be inferred that Remove is not meant as Delete (Why would a delete API required one to supply an existing value?). So FIMService only has Modify operation for single-valued attribute updates including update with a null value to clear the value no matter who the client is WAL or any other custom workflow.  I can’t imagine a client even if it’s SyncEngine disobeying the laws of FIMService Webservice:) If you find otherwise, please report back. I would consider it a hack by the FIM product team, if it were true.  Personally, don’t see anything wrong with FIM UI displaying a null value to be of Unknown Type. May be if the Value column in the UI mentions it’s a “null value” instead of showing blank, it might make it more obvious.

     Yes, The WAL workflow you configured is the correct way to clear the value.

    Sunday, February 14, 2016 8:53 PM
    Owner
  • Thank you, Niles

    I understand all your point and I'll keep digging. Still, I feel there is more behind the scenes, i.e. deleting / clearing a string valie (FirstName) using the Portal generates a slitghly different request, which to me indicates that there are more ways to do this.

    But lets pause this thread and I'll keep digging.

    Thanks for the answer on the WAL. I'm still trying to learn how to use that best.


    Regards, Soren Granfeldt
    blog is at http://blog.goverco.com | facebook https://www.facebook.com/TheIdentityManagementExplorer | twitter at https://twitter.com/#!/MrGranfeldt

    Monday, February 15, 2016 9:33 AM
  • A great example, indeed. How did I forget to name FIM Portal as the client!! See the request history and it sure will settle all your doubts :)
    Monday, February 15, 2016 11:03 AM
    Owner