2012-02-22 6 views
8

Estoy usando la versión 5.3 de Tridion.Tridion: ¿Cómo puedo saber si una página se ha publicado en un objetivo de publicación particular utilizando el conector comercial?

Uso del conector comercial Deseo averiguar si una página se ha publicado en un destino de publicación específico.

Uso de la API TOM puedo hacer

// 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); 

Si consulto Tridion utilizando el conector de negocios la única información que tengo es si la página ha sido publicado, pero no a los que se dirige.

He intentado consultar el objetivo de la publicación en sí pero esto no proporciona información sobre las páginas que ha publicado.

¿Alguna idea?

Respuesta

6

Debe establecer XMLReadPublishInfo y 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> 

Esto devolverá toda la información de publicar y de ahí en adelante, tendrá que filtrar por sí mismo. Aquí es ejemplo respuesta:

<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

Esa es la respuesta que necesitaba. ¡Gracias! –

+0

Actualmente tengo otro problema con Tridion que me impide dar un ejemplo completo de código. Publicaré cuando lo arregle. –

3

Para un control rápido aquí es lo que haría.

  1. Configure el CMS en el modo de depuración.
  2. Abra la página en la pregunta
  3. Do show where used in the GUI.
  4. Cambiar a la pestaña "Publicado en" 5) Después del paso 4, no haga clic en nada, pero el icono de la ventana de depuración. Tome la solicitud de BC XML para verla allí y actualice los parámetros como el id de la página, etc. y realice la solicitud utilizando BC para sus páginas.

Above debería funcionar.

+0

¿Cómo "configurar el CMS en modo de depuración"? –

+0

Probablemente se refiere a la GUI. –

Cuestiones relacionadas