3

我正在使用 SDL Tridion 2011 SP1 版本。

  • 工作流在系统中启用。
  • 添加到编辑器的上下文菜单按钮,它使用页面元数据。
  • 事件系统将在 SAVE 事件时更新页面元数据中的当前页面路径。

但是由于系统中启用了工作流,每当我将页面从一个 SG 复制到另一个 SG 并显式单击保存按钮时,都会触发工作流。

在工作流完成之前,我无法在上下文菜单 JS 代码中获取修改后的元数据(事件系统将更新元数据中修改后的当前页面路径)。

怀疑原因:无法获取次要版本的元数据。

当前代码:

var itemId = selection.getItem(0);
var item = $models.getItem(itemId);
var contentXml = item.getStaticXmlDocument();
var currentPath = $xml.getInnerText(contentXml, "//*[local-name()='current_path']");

请建议我如何处理 Java 脚本中的场景。早期反应表示赞赏。提前致谢。

4

2 回答 2

2

看起来您假设该项目已加载。这种情况不会经常发生。

您应该检查 isLoaded() 方法,如果它返回 false,请使用回调调用 load() 方法。然后检查回调中的处理,因为项目是异步加载的。

于 2013-02-21T13:17:30.727 回答
0

您可以更改不同事件的元数据吗?例如在复制或移动事件上?

Tridion.ContentManager.Extensibility.Events.CopyEventArgsMoveEventArgs

于 2013-02-21T10:32:30.243 回答