使用代码进行Tridion发布(PublisherFramework)

时间:2012-10-25 20:55:45

标签: tridion

我正在尝试在Workflow期间发布页面。我们在工作流程过程中发布了两个环境:一个用于测试,另一个用于实时。在第一次自动活动期间,我们将发布到 test ,在此过程中,页面上的组件不需要被批准。我们得到了这个。

但是,当我们批准页面并且页面正在发布到 live 时,我们需要确保我们只发布已批准的组件(即主要版本)。

在我的代码中,我使用的是Page.Publish方法,但是我不能指定它只应该发布已批准的项目。

publish方法接受名为activateWorkflow的参数。设置为True时,它会发布已批准和未批准的项目;但是当设置为False时,它会被添加到队列中并获得成功消息,但不会发布任何内容。

任何人都有任何想法如何解决这个问题,使用发布方法并且无需手动检查?

感谢。

2 个答案:

答案 0 :(得分:5)

在进行组件工作流程并且必须发布静态页面(没有动态组件演示)时,我遇到了类似的问题。

如上所述,在发布测试时,只需执行activateWorkflow = true即可。对于您的Live环境,您需要在工作流完成后启动发布。我已经通过事件系统解决了这个问题。这篇文章更详细地讨论了这一点,可能会对您有所帮助:

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

答案 1 :(得分:2)

目前尚不清楚您在执行活动的位置,您是否在Visio的工作流活动中执行此操作?

发布将始终只发布处于该目标的已批准状态的项目和已完成工作流程的项目(主要版本)。

所有这一切,我相信你得到空PublishTransacctions的原因是因为你在完成页面工作流活动之前在新项目上调用了Publish()方法(这意味着你的新项目仍然在工作流程中,所以假值意味着没有任何内容可以发布,而不是在工作流程中。尝试在调用Publish()方法之前调用FinishActivity()。

也许你可以从最后一步发布你的代码,这样我们就可以确切地看到你在做什么。