我在一个出版物的结构组中创建了一些页面。我想使用核心服务取消发布所有已发布的页面。谁能帮我吗?
2 回答
您可以使用 CoreService 客户端的 .UnPublish 方法,将您希望从中取消发布页面的 StructureGroup 的 URI 传递给它。这就是 CoreService API 参考(非常值得一读...)所说的:
取消发布来自给定目标的 IdentifiableObjectData 实例集合。
IEnumerable<PublishTransactionData> UnPublish(
IEnumerable<string> ids,
UnPublishInstructionData unPublishInstruction,
IEnumerable<string> targets,
Nullable<PublishPriority> priority,
ReadOptions readOptions
)
参数
ids
Type: System.Collections.Generic.IEnumerable<String>
要取消发布的项目的标识符集合(TCM URI 或 WebDav URL)。
unPublishInstruction
Type: Tridion.ContentManager.Data.Publishing.UnPublishInstructionData
取消发布操作的指令。
目标
Type: System.Collections.Generic.IEnumerable<String>
表示要取消发布的发布目标或目标类型的目标标识符集合。这不能包含两者的组合。
priority
Type: System.Nullable<PublishPriority>
取消发布操作的优先级。传递 null 将使用来自发布目标的优先级。
readOptions
Type: Tridion.ContentManager.CoreService.ReadOptions
指定在取消发布后如何回读发布事务。如果参数为 null,则使用 None 读取项目。
返回值
PublishTransactionData 的集合
我没有适合您的复制/粘贴代码段,但考虑到 Jeremy 摘自相关方法的 API 文档和这些发布项目的示例,这应该不是很困难:
- http://blog.building-blocks.com/publishing-components-using-the-core-service-in-sdl-tridion-2011
- http://blog.building-blocks.com/sdl-tridion-2011-component-publisher
- 无法让核心服务客户端工作
请记住,如果您首先自己完成一些工作,然后向我们展示您遇到的问题,那么 Stack Overflow 效果最好。