2012-10-25 22 views
4

我試圖在工作流程中發佈頁面。我們在工作流程過程中發佈了兩個環境:一個到測試和一個到。在第一次自動活動期間,我們發佈到測試,在此過程中,頁面上的組件不需要被批准。我們有這個工作。Tridion使用代碼發佈(PublisherFramework)

但是,當我們批准頁面和頁面正在發佈到live時,我們需要確保我們只發布批准的組件(即主要版本)。

在我的代碼中,我使用了Page.Publish方法,但是我不能指定它應該只發布批准的項目。

發佈方法接受名爲activateWorkflow的參數。當設置爲True時,它會發布批准和未批准的項目;但是當設置爲False時,它會被添加到隊列中,並且我們會收到成功消息,但是沒有任何內容會被髮布。

任何人有任何想法我可以解決這個問題,使用發佈方法,而無需手動檢查?

謝謝。

+0

喜夏朗 - 歡迎來到SO - 請考慮提交到我們的51區的建議得到一個專用的Q&在http用於支持SDL Tridion站點:// area51.stackexchange.com/proposals/38335/tridion?referrer=eo63snjNlUWNn9xqeeO2NA2 - 您的支持將不勝感激。 –

+0

你能解釋一下「PublisherFramework」的意思 –

回答

2

您不清楚您在哪裏執行活動,您是否在Visio的工作流程活動中執行此操作?

發佈將始終只發布處於該目標的已批准狀態的項目和已完成工作流程(主要版本)的項目。

所有這一切說,我相信你得到空的原因PublishTransacctions是因爲你在完成頁面工作流活動之前調用新項目的Publish()方法(這意味着你的新項目仍然在工作流中,所以false價值意味着沒有什麼可以發佈,而不是在工作流程中)。嘗試在調用Publish()方法之前調用FinishActivity()。

也許你可以從最後一步發佈你的代碼,所以我們可以確切地看到你在做什麼。

+0

我可以在發佈到TEST時設置activateWorkflow = true並在項目獲得批准時將其設置爲false來解決它。我必須做的一件事是在發佈到Live之前完成活動並批准。感謝您的建議! – Levikay

+0

很高興它解決了你的問題。也許可以接受幫助其他人解決同一問題的答案。 –

5

當遇到組件工作流並且必須發佈靜態頁面(沒有動態組件展示)時,我遇到了類似的問題。

如上所述,發佈測試時,只需執行activateWorkflow = true即可。對於您的Live環境,您需要在工作流程完成後啓動發佈。我已經通過事件系統解決了這個問題。這裏討論這件事更詳細的文章,可以幫助你:

http://www.tridiondeveloper.com/autopublishing-on-workflow-finish

+0

謝謝Nickoli,你的建議很棒!我的印象是,將狀態設置爲「內容批准」會將該項目從工作流程中移除,但看起來我必須完成活動。再次感謝! – Levikay

相關問題