小编use*_*297的帖子

SDL Tridion事件处理程序2011中的阶段

难以理解事件阶段.

1)考虑组件保存操作.当根据内容规则覆盖内容时,可以在"已启动"阶段完成.如果内容违反内容规则,则可以在"已启动"或"已处理"事件阶段中抛出错误.

当"已启动"阶段本身对于内容覆盖和内容规则验证都足够时,"已处理"阶段何时有用?PLS.用一个例子来解释.

2)在保存和关闭组件时,会触发"保存"和"检入"事件.在"保存"操作的"已处理"阶段之后,将执行CheckIn操作.如果在CheckIn操作的"已启动"/"已处理"阶段发生任何错误,将发生"保存"操作的"TransactionAborted"阶段.

上面是我能想到的'TrasactionAborted'的唯一例子.你能提供任何其他有助于理解'TrasactionAborted'阶段的例子吗?

tridion tridion-2011

6
推荐指数
2
解决办法
442
查看次数

使用事件处理程序覆盖SDL Tridion组件的内容

如何使用事件处理程序覆盖组件的字段值?当我有下面的代码片段时,保存组件时没有错误.但是事件处理程序完成的内容更改不会反映在Component中.我希望单值字段"size"具有"blabla ..."作为值.

// Call to Subscribe the events
EventSystem.Subscribe<Component, SaveEventArgs>(ComponentSaveInitiatedHandler,
                                                EventPhases.Initiated); 

private void ComponentSaveInitiatedHandler(Component component, 
                                          SaveEventArgs args, EventPhases phases)
{
    if (component.Schema.Title == "XYZ")
    {
        ItemFields Fields = new ItemFields(component.Content, component.Schema);
        SingleLineTextField textField = (SingleLineTextField)Fields["size"];
        textField.Value = "blabla...";
    }
}
Run Code Online (Sandbox Code Playgroud)

tridion tridion-2011

6
推荐指数
1
解决办法
351
查看次数

标签 统计

tridion ×2

tridion-2011 ×2