4

我正在尝试在工作流程期间发布页面。在工作流程过程中,我们要发布两种环境:一种用于测试,一种用于生活。在我们发布进行测试的第一个自动活动期间,在该过程中,页面上的组件不需要获得批准。我们让它发挥作用。

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

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

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

任何人有任何想法我可以如何解决这个问题,使用发布方法而不需要手动检查?

谢谢。

4

2 回答 2

5

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

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

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

于 2012-10-26T01:27:08.947 回答
2

不清楚您在哪里执行活动,您是在 Visio 中的工作流活动中执行此操作吗?

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

综上所述,我相信您获得空 PublishTransacctions 的原因是因为您在完成页面工作流活动之前对新项目调用 Publish() 方法(这意味着您的新项目仍在工作流中,因此 false 值意味着存在没有什么可发布的不在工作流程中)。尝试在调用 Publish() 方法之前调用 FinishActivity()。

也许您可以从最后一步发布您的代码,以便我们可以准确地看到您在做什么。

于 2012-10-25T21:10:55.660 回答