【问题标题】:SDL Tridion 2011 Event System - On Workflow Process FinishSDL Tridion 2011 事件系统 - 关于工作流程完成
【发布时间】:2012-03-23 20:04:59
【问题描述】:

一旦工作流活动完成,我正在使用 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");
}

有人知道我在这里做错了什么吗?

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

【问题讨论】:

  • 你附加到什么进程?你知道你的 pdb 文件是否在正确的位置吗?

标签: tridion


【解决方案1】:

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

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

EventSystem.Subscribe&lt;Process, FinishProcessEventArgs&gt;(OnEmergencyRelease, EventPhases.TransactionCommitted);

【讨论】:

  • 嗨,Mihai,有道理,会试一试,让你知道,谢谢你的回答。
  • 如果有效,请标记为答案 :) 你知道...这都是关于积分、信誉、徽章和其他东西 :))
  • 嗨 Mihai,是的,它适用于 RepositoryLocalObject。我尝试“上升”一级到 VersionedItem,但这没有用。感谢您的帮助:)
  • 只是出于好奇……它是什么类型的 RepositoryLocalObject?它必须比这更具体......
【解决方案2】:

事件触发了吗?我希望 Finish Process 事件在您显式调用完成流程操作时触发,而不是在您逐步完成项目时触发。

【讨论】:

  • 嗨,Dom,它现在触发了,我使用的是 RepositoryLocalObject 而不是 Component。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 2012-05-18
  • 2013-01-24
  • 2012-05-19
  • 2012-08-10
  • 1970-01-01
  • 2012-09-01
相关资源
最近更新 更多