【问题标题】:Multimedia Binary file - For minor version Metadata publishes but the actual Binary doesn't?多媒体二进制文件 - 对于次要版本元数据发布但实际二进制不发布?
【发布时间】:2012-02-23 10:47:19
【问题描述】:

我们正在使用带有 XSLT 模板的 Tridion 2009 SP1

全新的多媒体组件(v0.0)及其上传的二进制文件 将正确发布到预览站点 首次保存(二进制文件的发布由 tbbPublishMultimedia 模板,如下所示)。

多媒体组件将作为次要修订进入工作流程 版本 v0.1 并在工作流程中(在“准备版本内容 Item") 可以编辑组件并重新上传二进制文件 由作者按要求放入组件中。

每次将 v0.x 组件保存在工作流中(如 v0.1、v0.2、 v0.3、v0.4 等)组件的最新“工作流程中”版本 并且其二进制文件将正确发布到预览站点。

每次多媒体组件被批准发布时 离开工作流程并成为新的主要版本(例如 v1.0.... 或 v2.0、v3.0 等)。

如果主要版本随后被编辑并重新保存,它将成为 新的次要修订版本(例如 v1.1)然后将重新发布到 预览站点(以及它的二进制文件),然后它将重新进入 工作流程。

然而,虽然 Tridion 正确地发布了最新的次要版本 实际多媒体组件的版本(例如 v1.1)似乎 仅发布它包含的二进制文件的最后一个主要版本 (例如 v1.0 版本)。有趣的是,它似乎确实发布了 该二进制文件的最新 v1.1 元数据(即文件类型和 文件大小),但不是二进制文件本身。

总之,Tridion 似乎发布了最新的次要/修订版“in 工作流”版本的二进制文件,如果多媒体组件是 v0.x 但是一旦存在主要版本,它只会发布最后一个主要版本 二进制文件的版本(本质上是重新输入之前的版本) 工作流程)。

反正就是这个样子……

  <xsl:template name="tbbPublishMultimedia">
     <xsl:if test="string(//tcm:Type)='Multimedia'">
        <xsl:variable name="binaryid"
        select="string(//tcm:Component/@ID)"/>
        <xsl:element name="tcm:MultimediaPublishedFileName">
           <xsl:value-of select="tcmse:PublishBinary($binaryid)"/>
        </xsl:element>
     </xsl:if>
  </xsl:template>

注意...在上面的模板中,可以将主要版本指定为 tcmse:PublishBinary parameter 例如 concat($binaryid,"-v2") 到 确定要发布的版本,但因为它不允许您指定 次要版本,所以这并没有太大帮助

【问题讨论】:

  • 哪个用户在运行发布者服务?

标签: tridion


【解决方案1】:

我最近真的没有用 XSLT 模板做太多事情,不确定我是否能提供帮助。无论如何,您可以确认这是 only 使用 XSLT 还是其他模板也会发生?如果它只发生在 XSLT 上,那么您可能会遇到错误,而如果它发生在所有其他语言上,那么它可能只是“设计使然”,除了打开增强请求之外,您无能为力。

我最近发现,如果我要求任何项目的版本 0 (tcm:1-23-16-v0),Tridion 将返回当前用户允许阅读的项目的最新版本,包括次要版本(在C#)。也许你可以试试看?

【讨论】:

    猜你喜欢
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2013-06-27
    • 1970-01-01
    相关资源
    最近更新 更多