Система событий SDL Tridion 2011 - завершение рабочего процесса - PullRequest
2 голосов
/ 24 марта 2012

Я использую систему событий 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 ]

6 голосов
/ 24 марта 2012

Я не могу точно сказать вам, что происходит, но я подозреваю, что FinishProcessEventArgs не вызывается для самого объекта Component. Возможно, вам следует попробовать перехватить объект «выше» в иерархии классов.

Пример: использовать Process (или ProcessInstance или даже IdentifiableObject)

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

0 голосов
/ 24 марта 2012

Стреляет ли событие? Я ожидаю, что события Finish Process сработают, когда вы явно вызываете действие Finish Process, и, вероятно, нет, когда вы проходите через элементы.

...