Is there any documentation covering how to process an update response against an image for each of the OMM Container Data Types, and also how to process an Update action for those Data Types that support actions within an update response? The scenario that I am particularly interested in is when you have nested containers. I have looked in the various RFA Guides but can’t see anything definitive. I am also interested in how the ADS (in POP mode) would update the image in its item cache in response to such updates.
An example might provide some context behind the question.
Scenario 1: We receive a refresh response containing a Field List with two entries (FID 1 & 2) where FID 1 is a String and FID 2 is a Field List containing two entries FID 3 (a String) & FID 4 (also a String).
If an update response is received containing FID 1 then we would simply set the existing value for FID 1 to the new value from the update.
If an update response is received containing FID 2 (itself containing a single String entry FID 5) then should the existing value for FID 2 be
a) set to the new value from the update (i.e. FID 2 becomes a Field List containing one entry: FID 5),
b) merged with the new value to generate a union of the two (i.e. FID 2 becomes a Field List containing three entries: FID 3, FID4, and FID 5)?
My assumption is that when the value of a container entry is a container itself, then you recursively apply the update to the content of that container rather than simply setting the value to be the new container (i.e. option b in the above Scenario). However, I haven’t seen that stated anywhere either with regard to how an OMM consumer should behave, or how the ADS would update its cached image in response to the update.
Any information in this area would be greatly appreciated.
The UPA Developers Guide contains a good write up of how container updates should be applied for each container type, as well as how each of the actions on a container entry (where applicable) should be applied.
Section 11.3 has a table that describes each container type and its entries, including how to apply content within. If it is a container with entry actions, there is a cross link to the detailed section for the container where there is a description of how to apply each action properly.