2

When I am doing force finish for all active process using the core service, for some processes (apparently at random) I see the following message:

EventSystem.DeliverEvent must be called with EventDeliveryPhase.Initiated before it is called with EventDeliveryPhase.Processed.

What are the likely causes of this problem, and how can I improve my design to avoid it

ProcessesFilterData filter = new ProcessesFilterData { BaseColumns = ListBaseColumns.IdAndTitle, ProcessType = ProcessType.Active };

IEnumerable datas client.GetSystemWideList(filter).Cast();

datas = datas.Where(data => data.Title.StartsWith("Quick"));

foreach (ProcessInstanceData data in datas) {

    client.ForceFinishProcess(data.Id, "tcm:0-51-131073", new ReadOptions());

}

  • 2
    Can you provide an example of the code you use to "do force finish for all active processes using core service" ? – Rick Pannekoek Feb 13 '15 at 7:27
  • So what does your event system implementation look like? And you do know that having both event system and workflow is the fastest way to get you into trouble? – Bjørn van Dommelen Feb 13 '15 at 8:13
2

Typically such event system errors are a result of multi-threaded use of a single TOM.NET Session (which is not supported; a Session is not MT-safe). However, in your case you are using a Core Service client without any kind of multi-threading, so the client code is not to blame.

Do you maybe have an event handler for ForceFinishProcess which does cross-thread Session sharing?

If not, I would recommend to contact SDL Customer Support to further analyze this issue.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.