0

我有旧的 tridion 2009 触发器,这是代码:

CREATE TRIGGER My_TABLE ON [ITEMS]  
FOR INSERT  
AS  
    INSERT INTO My_TABLE(ACTION, PUBLICATION_ID, ITEM_REFERENCE_ID, ITEM_TYPE, LAST_PUBLISHED_DATE, URL, SCHEMA_ID)  
        SELECT 'ADD', PUBLICATION_ID, ITEM_REFERENCE_ID, ITEM_TYPE, LAST_PUBLISHED_DATE, URL, SCHEMA_ID  
        FROM inserted  

在 tridion 2009URLSCHEMA_IDwhereITEMS表中的一部分,但是当我们升级到 Tridion 2011 SP1 时,这些列不再存在于ITEMS表中。

SCHEMA_ID被移到COMPONENT表中,我有点好奇如何获取每种类型项目的 URL(页面、组件等。我们是否需要使用 link_info 表来获取 url)

让我知道哪个表将用于获取之前URLITEMS

谢谢。

4

1 回答 1

3

从未记录数据库详细信息是有原因的:SDL 不支持在此级别访问该数据。

您有一个非常丰富的 API 可以在需要时检索所需的数据,这允许 SDL 不断改进数据库层,而不必担心实现支持。

在你的情况下,如果你在这里解释一些事情可能会有所帮助......

  1. 这是哪个数据库?阅读列名,它看起来像是一个内容交付数据库?
  2. 为什么要存储发布的 URL?它已经在那里了。

如果还不清楚,您应该使用链接classes来获取 URL,而不是LINK_INFO表格。正确设置的环境将缓存这些值,因此您无需担心任何数据库影响。如果这还不够,并且您确实需要具有自定义值的自定义表,那么请考虑使用 Deployer Extension 来根据需要填充您的表。

于 2012-12-26T14:36:21.197 回答