3

We use "Schedule Publish Phases Separately" extensively where we schedule when content will be generated and when it will be placed online. This helps us a lot with time sensitive publishes since at the time when the content needs to be available/Go Live, the only thing left is deployer deploying content which is very fast, rest everything is already done (rendering etc which takes a lot of time).

The scenario where we are facing issues right now is that if before the placing the content online we want to change the time of when it should be placed online, there does not seem to be any option apart from deleting the current transaction and creating a new one. But this means it has to go through the whole process from rendering to committing deployment (if the content is already generated) which is definitely not desirable. In essence I am looking to change the time when I want to place the content online post when it is already generated for an existing transaction

Am I missing any setting here? Is there a way to do it from CME? I know a hack which may work which relates to changing values in the CM DB table which I definitely do not want to do.

We are on Tridion 2013 SP1 HR1.

2
  • 2013 SP1 has support for undoing a publish transaction. docs.sdl.com/LiveContent/content/en-US/… It doesn't look like exactly what you need, but I wonder if there are undocumented possibilities to redo a publish transaction. Only SDL can answer this properly though. I suggest you contact them. Nov 19, 2015 at 12:17
  • PublishInstruction class has got DeployAt property with which the date/time when the content should be deployed can be set. I don't know whether PublishInstruction is available for editing once the item is added to the queue. Jan 18, 2016 at 15:01

2 Answers 2

1

It is always better to do it though CoreService or TOM.NET API rather than in database.

PublishTransactionData transaction = client.Read("tcm:0-1-66560", new ReadOptions()) as PublishTransactionData;
transaction.Instruction.StartAt = DateTime.Now.AddDays(7);
transaction = client.Update(transaction, new ReadOptions()) as PublishTransactionData;

So you can create an EventHandler which will be triggered when your content is updated, and will also update all publish transactions, which contain this item.

Or you can create GUI extension which will execute same code.

Also note:

  1. When updating in the ScheduledForDeployment state you can change DeployTime but cannot change PublishTime.
  2. When updating user has to be the same as publisher user or an administrator.
1
  • I was looking for just changing the time when the content is placed online without re-rendering of the content. The approach suggested by you will re-render the whole content Apr 6, 2016 at 20:22
0

It took me a while to interpret the question but I am guessing that you are trying to you are trying to "Place Content Online" forcibly for "Generated Publishable Content" in a publishing transaction. If so, can you not just right-click and do Execute task from the publishing queue for pushing it immediately?

If you would like to re-schedule an already "Generated Publishable Content" from another publishing transaction, there may be no OOTB way of doing it. You can try a custom resolver in combination with a UI extension like "Publish from Publishing Queue". Sounds like an interesting project :).

Like you highlighted, I would definitely not modify the CM DB table directly. Hope it helps!

2
  • I am just looking to change the time when the content should be placed online post when it's already generated. Nov 19, 2015 at 5:11
  • Like I said in my response, I don't think that it is an OOTB functionality. By using Execute Task, you can push the item forcibly immediately.
    – Shiva
    Nov 19, 2015 at 5:27

Your Answer

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

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