Script Aktivitesi içinde Hata Yönetimi

Merhaba,

Süreçte script task aktivitesi kullanıyorum fakat boundary event kullandığımda hatayı görmüyor bir sonraki adıma geçmiyor hatayı yönetmek için başka hangi aktiviteyi kullanabilirim, yardımcı olabilir misiniz?

Merhaba EdizYilmaz;

Script task aktivitesi içinde kimi zaman exception throw eden durumlar olabilir.Script Task komponenti BPMN türünde bir bileşen olmadığından hatanın yönetilebilmesi için farklı yollar izlenmelidir. Örneğin standartta yaptığımız gibi Boundary event ile hatayı yakalayamayız.

Bunun için bir çok programlama dilinde mevcut olan try-catch yapısı kullanılmalıdır.

Örnek1 :

try

{

var newVar = execution.getVariable(“newVar”);

var regexResultVar = newVar.match(/[0-9]/g);

execution.setVariable(“regexResultVar”,regexResultVar);

}

catch(Err)

{

execution.setVariable(“regexResultVar”,”Regex Not Found !”);

var BpmnError = Packages.org.flowable.engine.delegate.BpmnError;

throw new BpmnError(“errName”);

}

Açıklama: Yukarıdaki örnekte koyu renkle belirtilmiş alanlar mecburi alanları ifade etmektedir. Onun dışında kalan alanlardan try içerisinde bulunanlar hata verme olasılığı bulunan kod bloğunu içermelidir. Catch içerisinde bulunan alan ise try içerisinde bulunan alanda hata oluşması halinde çalışacak alandır.

trow new BpmnError(“errName“) satırı ise boundry eventin hatayı tekrar yakalayabilmesi için yazılmış bir satırdır.Böylelikle fırlatılmış bir hatayı re-throw ederek hata içeriğini sürecimizde analiz için kullanabiliriz. Bunun için boundary event içerisinde bulunan “Error Reference” alanına re-throw ettiğimiz exception verilen ismi ile girilerek log tarafında takip edilmesi sağlanmış olur.