Tridion:我如何才能发现一个页面是否已经使用业务连接器发布到特定的发布目标

本文关键字:业务 目标 连接器 布目标 发现 Tridion 一个 是否 | 更新日期: 2023-09-27 18:25:29

我使用的是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,我得到的唯一信息是页面是否已发布,但不是发布到哪个目标。

我曾尝试查询发布目标本身,但这并没有提供它发布了哪些页面的信息。

有什么想法吗?

Tridion:我如何才能发现一个页面是否已经使用业务连接器发布到特定的发布目标

您应该设置XMLReadPublishInfoXML ReadPublishInfoDetails项目过滤器:

<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>

为了快速检查,这里是我要做的。

  1. 将CMS设置为调试模式
  2. 打开有问题的页面
  3. 在GUI中显示使用位置
  4. 切换到"发布到"选项卡5) 在步骤4之后,不要单击任何内容,而是单击调试窗口图标。获取您在那里看到的BCXML请求,更新页面id等参数,并使用BC为您的页面发出请求

以上内容应该有效。