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

joh*_*ter 2 tridion

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

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

EventSystem.Subscribe<Component, 
    FinishProcessEventArgs>(OnEmergencyRelease, EventPhases.TransactionCommitted);
Run Code Online (Sandbox Code Playgroud)

但OnEmergency永远不会进入:

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

任何人都有任何想法,我在这里做错了什么?

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

Mih*_*riu 6

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

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

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