我正在使用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");
}
任何人都有任何想法我在这里做错了吗?
我知道当我写入班级构造函数中的日志时,事件系统被拾取。
答案 0 :(得分:6)
我无法确定会发生什么,但我怀疑在Component对象本身上没有调用FinishProcessEventArgs。也许你应该尝试拦截类层次结构中“更高层”的对象。
示例:使用Process(或ProcessInstance甚至IdentifiableObject)
EventSystem.Subscribe<Process, FinishProcessEventArgs>(OnEmergencyRelease, EventPhases.TransactionCommitted);
答案 1 :(得分:0)
事件被解雇了吗?我希望在您明确调用完成流程操作时触发Finish Process事件,并且可能不会在您逐步执行项目时触发。