2012-03-23 71 views
2

一旦工作流程活動完成,我正在使用SDL Tridion事件系統啓動方法(OnEmergencyRelease)。但是我的方法在測試過程中沒有被輸入,在那裏我正在通過工作流程過程中加入一些組件。SDL Tridion 2011事件系統 - 工作流程過程完成

我用下面的代碼訂閱:

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

但永遠不會被輸入OnEmergency:

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

任何人有任何想法,我在做什麼錯在這裏?

我知道事件系統正在被選中,因爲我在我的類的構造函數中寫入日誌。

+0

你附加了什麼過程?你知道你的pdb文件是否在正確的位置? – 2012-03-23 22:09:29

回答

6

我無法確定會發生什麼,但我懷疑FinishProcessEventArgs未在組件對象本身上調用。也許你應該嘗試在類層次結構中更高的對象上進行攔截。

實施例:使用工序(或processInstance的或甚至IdentifiableObject)

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

+0

嗨Mihai,這很有道理,會給它一個鏡頭,讓你知道,謝謝你的答案。 – johnwinter 2012-03-23 23:07:54

+0

如果有效,請標記爲答案:)你知道......這是關於點,代表權,徽章和東西:)) – 2012-03-24 02:53:32

+0

Hi Mihai,是的,它適用於RepositoryLocalObject。我嘗試了'向上'一個級別VersionedItem,但沒有奏效。感謝您的幫助:) – johnwinter 2012-03-24 19:36:20

0

是觸發事件?當你明確地調用完成處理操作時,我希望Finish Process事件觸發,並且可能不會在你逐步完成項目時觸發。

+0

嗨Dom,它現在觸發我使用RepositoryLocalObject而不是組件。 – johnwinter 2012-03-24 19:37:14

相關問題