在 CM 中,我们创建了组件并发布了它们。发布后对组件进行了编辑。我们想找出已发布组件的版本号。我无法从 GUI 中获取此信息。当我查看数据库时,我可以在 items 表中看到版本信息,而 item_states 表有发布信息但它不包含版本参考。现在,有了这些信息,我将不得不编写一个复杂的查询来比较 item_states 和 item 表中的发布日期。
是否有替代(更简单)的方法来查找此信息?
在 CM 中,我们创建了组件并发布了它们。发布后对组件进行了编辑。我们想找出已发布组件的版本号。我无法从 GUI 中获取此信息。当我查看数据库时,我可以在 items 表中看到版本信息,而 item_states 表有发布信息但它不包含版本参考。现在,有了这些信息,我将不得不编写一个复杂的查询来比较 item_states 和 item 表中的发布日期。
是否有替代(更简单)的方法来查找此信息?
SDL Tridion 不存储已发布项目的版本信息,因此确实无法通过 GUI 或 API 获得。
基本上有两种方法可以让您“猜测”这些信息:
使用 API 查找项目发布时的版本
查询数据库以获取此信息
如果您使用数据库查询,第二个选项可能看起来更容易,但让我提醒您,这是一个不受支持的选项。SDL Tridion 的数据模型不是公开的,这意味着它不必在新版本中保持不变。因此,如果您查询数据库,您的解决方案不一定是面向未来的。
除了提到的其他选项外,您还可以:
实现一些事件系统代码,响应组件保存时触发的事件,以及成功发布时触发的事件
在您的模板中,在组件演示文稿发布时动态地将元数据添加到它,使版本(可能还有其他东西)可用作代理数据库中的元数据。
正如 Arjen 所评论的,如果您提供了有关您的问题的更多信息,我们可以为您提供更多帮助。