我试图在工作流期间发布一个页面。在工作流过程中,我们要发布两个环境:一个要测试,一个要活。在第一个自动活动中,我们要发布来测试,在这个过程中,页面上的组件不需要被批准。我们把它搞定了。
但是,当我们批准页面时,当页面被发布为动态版本时,我们需要确保我们只发布已批准的组件(即主要版本)。
在我的代码中,我使用的是Page.Publish方法,但不能指定它只应该发布已批准的项。
发布方法接受一个名为activateWorkflow的参数。当设置为True时,它同时发布已批准的和未批准的项;但是当设置为False时,它被添加到队列中,我们得到一条成功消息,但没有发布任何消息。
有人知道我如何解决这个问题,使用发布方法,而不需要手动检查?
谢谢。
发布于 2012-10-25 21:10:55
尚不清楚在何处执行这些活动,是否在Visio中的工作流活动中执行此操作?
发布将始终只发布处于该目标的已批准状态的项和已完成工作流的项(主要版本)。
尽管如此,我相信您获得空PublishTransacctions的原因是在完成页面工作流活动之前正在对新项调用发布()方法(这意味着您的新项仍然在工作流中,因此虚值意味着没有什么要发布的东西不在工作流中)。在调用发布()方法之前,尝试调用FinishActivity()。
也许您可以在最后一步中发布您的代码,这样我们就可以确切地看到您在做什么了。
发布于 2012-10-26 01:27:08
在浏览Component并不得不发布静态页面(没有动态组件演示文稿)时,我遇到了类似的问题。
当发布到测试时,正如您所提到的,只需执行activateWorkflow=true。对于您的Live环境,您需要在工作流完成后开始发布。我已经通过事件系统解决了这个问题。下面是一篇详细讨论这一问题的文章,可能对您有所帮助:
http://www.tridiondeveloper.com/autopublishing-on-workflow-finish
https://stackoverflow.com/questions/13077129
复制相似问题