JBPM Admin Console III

Oluşturulan iş akışı programatik olarak, GPD vasıtası ile veya admin-console üzerinden deploy edilebilir. Programatik olarak deploy etmek için ProcessDefinition sınıfının sağladığı parseParZipInputStream ve parseXmlInputStream metodlarından yararlanılabilir. parseParZipInputStrean metodunu kullanmak için iş akışının ilgili tüm dosyaları bir arşiv dosyasına eklenmelidir. PAR, “process archieve” anlamına gelmektedir ve jar dosyalarına benzemektedir. Aşağıda GPD’nin sağladığı deployment view’ı görülmektedir. “Deployment Server Settings” bölümünde jbpm-console’un (admin console) çalıştığı host bilgileri girilerek iş akışı GPD üzerinden deploy edilebilir.

İş Akışının Admin Console Vasıtası İle Deploy Edilmesi

İş akışının admin console ile deploy edilmesi için ilgili dosyaların önce arşive eklenmesi gerekir. Ardından admin console’un ana sayfasında Actions bölümünde “Deploy a new process” tıklanarak oluşturulan arşiv dosyası dosya isteminden seçilerek deploy gerçekleştirilir.


Deploy işlemi sonucunda iş akışı ile ilgili bilgiler ve bu akış tanımı üzerinde yapılabilecek işlemler listelenir. İş akışı tanımından oluşturulmuş instance’lar, bu akışa ait görevler ve akış tanımının görüntüsü izlenebilir. İş akışı tanımından yeni bir instance oluşturularak yeni bir süreç işletilmeye başlanabilir.

İş Akışının Baştan Sona Admin Console İle Yürütülmesi

“Start a new process of this process” tıklanarak tanımdan yeni bir instance oluşturulduğunda ekranda aşağıdaki gibi bir bilgi verilir ve akışta sırasını bekleyen görevler listelenir. İş akışları ve görevlerin listelendiği ekranlarda “Status” sütunundaki N,R,S,E alanları seçilerek değişik durumdaki akışlar ve görevler listelenebilir.

N: Not started, R:Running, S:Suspended, E:Ended anlamlarına gelmektedir.

Listedeki çalıştırabilir görevlerden herhangi birisi start edilerek ilgili kullanıcı tarafından icra edilebilir. Examine linki ile görevin bir formu mevcut ise bu forma ulaşıp task değişkenleri üzerinde değişiklikler yapılabilir. “Sipariş iş akışı” tanımından yeni bir instance oluşturulduğu vakit ilk task “enterOrder” olarak karşımıza gelir. “enterOrder” görevi başlatıldıktan sonra “Examine” ile UI forma erişilerek sipariş bilgilerini girmek mümkündür. Bilgiler girildikten sonra “Make Order” butonuna tıklandığı vakit akış bir sonraki göreve geçiş yapacaktır.


Bir sonraki aşama stok ve bütçe kontrol görevleridir. Bu görevler de ilgili kullanıcılar tarafından yerine getirilmelidir. Örnek iş akışında görevlerin değişik aktörlere atanması ve swimlane oluşturulmasına girmedik, ancak gerçek projelerde bunlar yardımı ile görevlerin sadece belirli rollerdeki kullanıcılar tarafından icra edilmesi yaygın bir durumdur.


Stok ve bütçe kontrol görevleri sonlandığı vakit iş akışındaki bir sonraki adım bu kontrollerin değerlendirildiği “order check decision” aşamasıdır. Burada iş akışı, ilgili DecisionHandler’in döneceği transition değerine göre approved veya rejected aşamasına geçerek sonlanacaktır. Her iki aşamaya geçişte de kullanıcıya bir e-posta gönderilecektir.

İş akış nesnelerini sorguladığımız vakit bitmiş akışları görebilmek için E statüsünü seçmek gerekir. Örneğin sipariş iş akışı sonlandırıldıktan sonra approved ve rejected durumların iş akışının state-transition diagram görüntüsü aşağıdaki gibi olmaktadır.


Sonuç olarak kurumsal uygulamaların pek çoğunda sık sık karşımıza çıkan iş akışlarını JBPM ile modelleyerek icra etmek doğrudan uygulama içerisinden mümkün olabildiği gibi, doğrudan jbpm-console vasıtası ile de mümkündür. Bu sayede iş akışlarının zaman içerisinde farklı versiyonları ile ortaya çıkabilecek uygulamaların UI ile JBPM iş tanımları arasındaki versyon farklılıkların önüne de geçilebilmiş olunur.