从此触发器中获取URL数据的位置

时间:2012-12-25 11:07:07

标签: tridion tridion-2011

我有旧的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 2009 URLSCHEMA_IDITEMS表的一部分,但是当我们升级到Tridion 2011 SP1时,ITEMS表中不再存在这些列

SCHEMA_ID被移到COMPONENT表,我不知道如何获取每种类型的项目的URL(页面,组件等,我们需要使用link_info表来获取url)

让我知道在URL表之前使用哪个表来获取ITEMS

感谢。

1 个答案:

答案 0 :(得分:3)

永远不会记录数据库详细信息的原因:SDL不支持在此级别访问该数据。

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

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

  1. 这是哪个数据库?读取列名称看起来像是Content Delivery数据库?
  2. 您为什么要存储已发布的网址?它已经存在了。
  3. 如果还不清楚,您应该使用链接classes来获取URL,而不是LINK_INFO表。正确设置的环境将缓存这些值,因此您无需担心任何数据库影响。如果这还不够,而且您确实需要一个包含自定义值的自定义表,那么请考虑使用Deployer Extension来根据需要填充您的表。