我有旧的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 URL
和SCHEMA_ID
中ITEMS
表的一部分,但是当我们升级到Tridion 2011 SP1时,ITEMS
表中不再存在这些列
SCHEMA_ID
被移到COMPONENT
表,我不知道如何获取每种类型的项目的URL(页面,组件等,我们需要使用link_info表来获取url)
让我知道在URL
表之前使用哪个表来获取ITEMS
感谢。
答案 0 :(得分:3)
永远不会记录数据库详细信息的原因:SDL不支持在此级别访问该数据。
您有一个非常丰富的API可以在需要时检索所需的数据,这使得SDL可以不断改进数据库层,而不必担心实现支持。
在你的情况下,如果你在这里解释一些事情可能会有所帮助......
如果还不清楚,您应该使用链接classes
来获取URL,而不是LINK_INFO
表。正确设置的环境将缓存这些值,因此您无需担心任何数据库影响。如果这还不够,而且您确实需要一个包含自定义值的自定义表,那么请考虑使用Deployer Extension来根据需要填充您的表。