我正在使用 Tridion 5.3 版。
我想使用业务连接器查明页面是否已发布到特定发布目标。
使用 TOM API 我可以做到
// using types from Tridion.ContentManager.Interop.TDS
// and Tridion.ContentManager.Interop.TDSDefines
TDSE tdse = new TDSE();
Page page = (Page)tdse.GetObject(itemUri, EnumOpenMode.OpenModeView,
"tcm:0-0-0", XMLReadFilter.XMLReadAll);
page.IsPublishedTo(tcm);
如果我使用业务连接器查询 Tridion,我得到的唯一信息是页面是否已发布,而不是发布到哪些目标。
我已经尝试查询发布目标本身,但这没有提供关于它发布了哪些页面的信息。
有什么想法吗?
最佳答案
您应该设置 XMLReadPublishInfo 和 XMLReadPublishInfoDetails ItemFilters:
<tcmapi:Message xmlns:tcmapi="http://www.tridion.com/ContentManager/5.0/TCMAPI"
version="5.0" from="[MDVC.js][CmdsExecute]" failOnError="false">
<tcmapi:Request ID="tcm:1010-8314-64" preserve="true">
<tcmapi:GetItem itemURI="tcm:1010-8314-64" openMode="OpenModeView">
<tcmapi:ItemFilter type="XMLReadPublishInfo" />
<tcmapi:ItemFilter type="XMLReadPublishInfoDetails" />
</tcmapi:GetItem>
</tcmapi:Request>
这将返回所有发布信息,从那里您必须自己过滤它。 这是示例回复:
<tcmapi:Message xmlns:tcmapi="http://www.tridion.com/ContentManager/5.0/TCMAPI"
version="5.0" from="[MDVC.js][CmdsExecute]" failOnError="false">
<tcmapi:Response ID="tcm:1010-8314-64" success="true" actionWF="false">
<tcmapi:Request ID="tcm:1010-8314-64" preserve="true">
<tcmapi:GetItem itemURI="tcm:1010-8314-64" openMode="OpenModeView">
<tcmapi:ItemFilter type="XMLReadPublishInfo" />
<tcmapi:ItemFilter type="XMLReadPublishInfoDetails" />
</tcmapi:GetItem>
</tcmapi:Request>
<tcmapi:Result>
<tcm:Page ID="tcm:1010-8314-64" IsEditable="false"
xmlns:tcm="http://www.tridion.com/ContentManager/5.0"
xmlns:xlink="http://www.w3.org/1999/xlink">
<tcm:Info>
<tcm:PublishInfo>
<tcm:IsPublished>true</tcm:IsPublished>
<tcm:PublishState>
<tcm:Publication xlink:type="simple" xlink:title="Web: "
xlink:href="tcm:0-1010-1" />
<tcm:PublicationTarget xlink:type="simple" xlink:title="A"
xlink:href="tcm:0-143-65537" />
<tcm:Date>2006-01-30T11:22:58</tcm:Date>
<tcm:Publisher xlink:type="simple" xlink:title="NA\A085159"
xlink:href="tcm:0-220-65552" />
</tcm:PublishState>
</tcm:PublishInfo>
</tcm:Info>
</tcm:Page>
</tcmapi:Result>
</tcmapi:Response>
关于c# - Tridion : How can I find out if a page has been published to a particular publication target using the business connector?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9394373/