2

I have updated a list of Components (count:320), all belongs to specific content Publication. Now I want to republish all Pages and Components whichever are using the updated Components. There are almost 90 Web Publications which inherit content from the above mentioned content Publication.

I am using Core Service to get usingItems report, checking where the Component is being used, if it is Page, I am checking where the Page is published to, which Publication it is published from, based on that I am republishing the Page, and if I get any Component in usingItems report, again I am checking the same scenario till 4 level links.

Now as the list of Components and lists of web Publications is huge, the Core Service code is taking long time to complete the activity for all updated Components. It's been 2 days since I ran the code, still the activity isn't completed yet.

Is there any other way to accomplish this activity in a shorter time?

2 Answers 2

4

I suggest taking a different approach and

"Use The Force Luke...".

Tridion has many powerfull features that you can use to your advantage when you understand them.

Publishing

Take a look at publishing Components and read up how to configure publishing, if your Template statically adds the Component to the Page, Tridion will republish dependent Pages for you when you publish the Component. If your Components are added dynamically then just publishing the Component will update the Pages when they are requested.

Event Code

Take some time to read up on it.

When anything happens in Tridion, chances are that

"There's an Event for that".

So when a Component is saved, you can code that event. In your event code, Check the Component, if it is not one you are interested in just return. if the Component is one you are interested in then use your event code to publish it.

This approach will make changes to Components publish as they happen, so be aware that this could add alot of items to publishing, but you can always make your event code defer publishing to later in the day so that you don't fill the queue for the editors during the day.

2

To start of with I would say @Chris hits the nail on the head with his point to publish the right item. Basically if your have changed a Component, all you need to do is publish that Component (see https://docs.sdl.com/LiveContent/content/en-US/SDL%20Web-v5/GUID-7F114108-1327-4BF8-BEE3-35461E9E3C84). Tridion will sort out what needs to be republished because of that. Now where you might have a challenge is using this in a BluePrint scenario.

Simply put, you should be able to publish each changed Component from the higest "web" level in your BluePrint, and then you select the option to also publish it in child Publications. Now sometimes this needs a "smart" BluePrint setup which has a single parent so you can really publish from a single location and get all children along with it. Please see my Child Publications Only Resolver example in the AppStore (http://appstore.sdl.com/web-content-management/app/child-publications-only-resolver/621/) which contains some sample code you can use to accomplish this.

Also @Chris's point on the event system is all correct, but again there note that you have to consider your BluePrint, and be aware of the possible unwanted additional load that this might put on your system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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