3

I understand we can set, get, delete and append Application Data (AppData) by namespace for a given SDL Tridion item (e.g. for a user, component, page, etc). What is AppData's relationship with:

  • BluePrinting: do each shared or localized item have its own AppData? Seeing how UGC works I would suspect so--does an item shared to 3 publications have its own AppData in each?.
  • Version history: is AppData independent of an item's version history and check in status?

The use case I'm trying to confirm is AppData's use with workflow. The requirement was for "metadata" or information about items that don't necessarily impact the item's status. In the desired scenario setting some (non-Tridion) status should not start single-item workflow. Does that sound correct and would AppData be a good fit here?

5

The concept of AppData on shared items does exist - meaning they can inherit the AppData from the parent, or have their own AppData defined. When support for shared AppData was introduced it was done for non-versioned items only. I do not know if support for AppData on shared non-versioned AppData was added later (as I have not so far needed it) :)

For versioning it works as follows:

  • When the item is checked out any AppData on the latest major version is copied to the v0 version.
  • If you undo checkout, the v0 AppData is simply removed
  • If you check in the v0 AppData becomes the AppData of the new major version.

So to make AppData behave like versioned data, you can simply make sure only to set AppData on the v0 version, or the last major version if the item is not checked out.

If you want to set AppData that remains unchanged across checkin, rollback, etc you would have to make Tridion event hander that detects these actions and always copy the current major version AppData to the new major version.

Also notice you have to build any security yourself as you do not need write permissions on an item to update the AppData on it. Typically this is done in a Tridion event handler that detects the AppData save, check the type, and if it's an application id managed by that event hander verifies the user performing the save is authorized to do so.

| improve this answer | |
  • Thanks for the clarfication. I noticed AppData didn't change between versions but wasn't aware of the v0 behavior--very useful information. +1 and accepted. I think this answers my workflow use case where updating AppData won't change item status but if I want, I can have item status reflected in AppData. – Alvin Reyes May 12 '14 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.