SDL Tridion 2011事件系统 - 关于工作流程流程完成

时间:2012-03-23 20:04:59

标签: tridion

我正在使用SDL Tridion事件系统在工作流程活动完成后触发方法(OnEmergencyRelease)。但是我的方法没有在测试过程中输入,我正在通过工作流程步进一些组件。

我正在订阅使用以下代码:

EventSystem.Subscribe<Component, 
    FinishProcessEventArgs>(OnEmergencyRelease, EventPhases.TransactionCommitted);

但是永远不会输入OnEmergency:

private void OnEmergencyRelease(Component component, 
                                FinishProcessEventArgs args, EventPhases phase)
{
   _log.Info("Emergency release entered");
}

任何人都有任何想法我在这里做错了吗?

我知道当我写入班级构造函数中的日志时,事件系统被拾取。

2 个答案:

答案 0 :(得分:6)

我无法确定会发生什么,但我怀疑在Component对象本身上没有调用FinishProcessEventArgs。也许你应该尝试拦截类层次结构中“更高层”的对象。

示例:使用Process(或ProcessInstance甚至IdentifiableObject)

EventSystem.Subscribe<Process, FinishProcessEventArgs>(OnEmergencyRelease, EventPhases.TransactionCommitted);

答案 1 :(得分:0)

事件被解雇了吗?我希望在您明确调用完成流程操作时触发Finish Process事件,并且可能不会在您逐步执行项目时触发。