Tridion使用代码发布(PublisherFramework)

Tridion使用代码发布(PublisherFramework),tridion,Tridion,我正在尝试在工作流期间发布页面。在工作流过程中,我们将发布到两个环境:一个用于测试,另一个用于活动。在我们发布以进行测试的第一个自动活动期间,页面上的组件不需要批准。我们要让它工作 但是,当我们批准该页面并将该页面发布到live时,我们需要确保只发布已批准的组件(即主要版本) 在我的代码中,我使用的是Page.Publish方法,但是我不能指定它应该只发布已批准的项目 publish方法接受名为activateWorkflow的参数。当设置为True时,它同时发布已批准和未批准的项目;但是当设置

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

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

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

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

有人知道我如何使用发布方法解决这个问题,而无需手动检查吗


谢谢。

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

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

综上所述,我认为获取空PublishTransactions的原因是,在完成页面工作流活动之前,您正在对新项目调用Publish()方法(这意味着您的新项目仍在工作流中,因此假值意味着没有不在工作流中的内容要发布)。在调用Publish()方法之前,尝试调用FinishActivity()


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

我在执行组件工作流时遇到了类似的问题,不得不发布静态页面(没有动态组件演示)

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


你好沙林-欢迎来到-请考虑我们的AAA A51建议,为SDL Trdion提供一个专门的问答网站-您的支持将非常感谢。您能解释您的意思是“发布框架”谢谢NICOLI,您的建议很好!!我的印象是,将状态设置为“内容已批准”将使项目退出工作流,但看起来我必须完成活动。再次感谢!我可以通过在发布测试时将activateWorkflow设置为true,并在项目得到批准时将其设置为false来解决此问题。我必须做的一件事是在发布到Live之前完成活动并获得批准。谢谢你的建议!很高兴它解决了你的问题。也许我们可以接受这个答案来帮助其他人解决同样的问题。