FIM2010-Using “ReferenceDeltaDataSource” in RCDCs

Okay… I have to admit, this was a mistake. I was doing some further testing and the changes are actually not being committed properly into the system when I use the custom object classes. That is really disappointing as it met the requirement perfectly. Instead, we’re working on a custom workflow that will look at two “feeder” attributes. One that adds objects, one that deletes objects. This maintains a similar look and feel to membership like attributes for the users while allowing the policy requirements to be met in the background.

I’ve updated the post so that search engines will get an updated copy and not have a cached copy of the bad information.

My apologies for the error. I should have tested deeper than I had… 😦


I was building a custom group object for a client and I didn’t want to have all the overhead and bloat associated with the basic group object and the background code that is looking for specific objects to be present (regardless of whether I needed them or not and I didn’t want a messy RCDC definition with a bunch of hidden objects to meet the requirements).

That said, I was looking at having similar mechanisms to mimic the membership function on more than one multi-valued reference attribute. I wanted to use the delta functions that are found in the group and set RCDC’s where the binding is similar to:

<my:Name=“Value” my:Value=“{Binding Source=delta, Path=aMultivaluedReferenceAttr.Add, Mode=TwoWay”}/>

Anyway, I looked at the group RCDC and my custom object RCDC as the definitions as shown in the XML snippet above was accepted but didn’t commit any changes to the entry. Submit just closed the page and no changed were made. What I missed however, was the change of the “objectDataSource” definition at the top of the group object RCDC where the “delta” type was actually “ReferenceDeltaDataSource” versus the value in the default generated RCDC “PrimaryResourceDeltaDataSource”.

As I’ve not seen this before, I went looking through the RCDC reference and there is comment there which was really quite discouraging as it says by the “ReferenceDeltaDataSource” description:

The data source represents deltas of multivalued reference attributes. It is used only on RCDC for Group and Set.

Although the data source is not limited to Groups or Sets, it requires code changes in the RCDC host to submit such deltas. Currently, Group and Set are the only hosts that recognize this datasource.

However I decided to soldier on and see if it would work or not. I changed the definition at the top of the custom RCDC from the Primary to ReferenceDeltaDataSource and it started to work.

Given the note, I was very pleasantly surprised. Perhaps an update was put into a hotfix that wasn’t caught up in the online documentation (that never happens though, right Smile)

That said, I now have the ability to use the delta functions like the “.Add” example shown above and the “.Remove” to take members away (example below).  

<my:Name=“Value” my:Value=“{Binding Source=delta, Path=aMultivaluedReferenceAttr.Remove, Mode=TwoWay”}/>

This entry was posted in Forefront Identity Manager 2010. Bookmark the permalink.

2 Responses to FIM2010-Using “ReferenceDeltaDataSource” in RCDCs

  1. Oh man. I missed the beginning, due to some rapid Ctrl+F action, and read the bottom first and got really excited…thought they’d slipped this little gem back in when no one was looking, but alas, they have not…shame. Thanks for clarifying and owning up.

    • Yes, I have to admit, I was disappointed as well… It appeared to be a good thing and then *splat*. It was one of those basic testing seemed to show it working… however…. 😦

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s