Referring to my earlier post – Restructuring-the-tridion-blueprinting-and-content-demotion – another issue while doing demote is that you might still have a handful of items which could not be demoted citing he variety of dependency they may have. Few examples of such dependencies are:
- Item is checked out
- Referenced in another item which will be in a publication which have no relationship with the target demote publication
- Item is published from a publication which will not be a child of the target demote publication
- The item is added into a bundle
- A cyclic reference to items with in the same publication from you are trying to demote
- The items are localized in a publication which is up in the blueprinting hierarchy than the target demote publication
While most of these demote blockers requires to be resolved manually, to aid the process of identifying the unresolved dependencies, we at Content Bloom created a core service script which essentially extends the “Where Used” feature to provide a detailed matrix of all items with in a folder on a single html page or as a JSON (so as to enable further custom processing if needed)
As a third step (refer the above referenced post and This Post and This Post if you need a background of this series of blog) if there are unresolved dependencies remains in this massive demote exercise, we execute this script to get a report of all unresolved dependencies for the items which fails to demote.
This script, requested for the folder TCM URI, processes each items inside the folder recursively, and generates a json of all dependencies of each item viz. where used, what it uses, where localized, where published, whether checked out etc.
Another small program accepts this json to convert it into the HTML format for better visualization.
This table can be used to identify the dependency, enables to resolve those dependencies manually, or take corrective actions for demote operation.
The below screenshots will explain it a bit better: