Openbravo ERP ile Activiti BPM Entegrasyonu

Tanım

Bu geliştirmenin amacı Openbravo uygulamasında bir BPM motorunu entegre etmek. Openbravo ERP ile Activiti BPM Entegrasyonu için uygun birkaç BPM çözümü vardı. Bu projenin ilk eylemi, çözüm olarak kullanılacak açık kaynak kodlu bir BPM çözümü seçmek olmalıydı. Açık kaynak adaylar arasında 2 ana çözüm ise şunlardı :

Openbravo Tomcat webapp’a kolayca yerleştirilebildiğinden, Activiti ile birlikte kullanmak ve entegre etmek için seçim yapıldı.

belgeleme

İş akışı sisteminin yapılandırılması dahil olmak üzere, dunning için bir iş akışı uygulamasının örneğini gösteren videolar:

Openbravo ERP ile Activiti BPM Entegrasyonu Geliştirme Projesi

Özellik genel bakış

Planlanan iş akışı entegrasyon özelliklerinin bir özeti:

  • BPM iş akışlarını Openbravo içinden tanımlayabilmek veya en azından BPM iş akışlarını tanımlamak için görsel olarak entegre bir yöntem sağlamak, ayrıca kullanıcı yetkilendirmesi / kimlik doğrulaması gibi şeyler de entegre edilmelidir.
  • Openbravo pencerelerinin / süreçlerinin / formlarının iş akışı adımı olarak tanımlanmasını sağlayın, bu Openbravo eserlerini iş akışı düzenleyicisinden seçmeyi mümkün kılın
  • Openbravo veri modelini iş akış sistemindeki ifadelerde veya diğer mantıklarda kullanabilme
  • Bir iş akışını tetikleyecek Openbravo’daki iş olaylarını veya diğer tetikleyicileri tanımlamayı mümkün kılmak
  • Openbravo’da, bir son kullanıcı için, görev listeleri gibi iş akışı kavramlarını görselleştirin, bir kullanıcının Openbravo içinden bir iş akışını başlatmasına / devam etmesine izin verin
  • Openbravo penceresinden bu pencereyi örnekleyen bir iş akışı örneğiyle tümleştirmeye izin ver
  • İş akışı motoru adımlarında Openbravo verilerini (tablolardan / DAL’den) kullanılabilir hale getirme

Durum Genel Görünümü (Şubat 2012)

Mevcut durum (Şubat 2012), activiti Openbravo uygulamasına entegre edilmiştir:

  • Bir Activiti modülü yaratıldı, eğer kuruluysa Openbravo webapp içinde otomatik olarak Activiti motorunu ve yönetim arayüzünü çalıştıracak
  • Kullanıcılar ve gruplar Activiti ile senkronize edilir
  • xml Openbravo’da bir iş akışı tanımlanabilir, Activiti ile senkronize edilir
  • Bir kullanıcının mevcut görevlerini gösteren bir Görevler görünümü oluşturuldu
  • Activiti: dunning ile çalışan bir ilk modül oluşturuldu

Ana açık konular şunlardır:

  • Bir pencereden / sekmeden iş akışlarını başlatmak ve bir pencereden / sekmeden iş akışlarını görüntülemek için her bir pencerede / sekmede görsel bütünleşmeyi genişletmek
  • göreve özel bir kullanıcı arayüzü sağlamak
  • Görev görünümünde bazı ekstra işlevler (kullanıcılara görevler atama)
  • ek yetkilendirme ayarları
  • grafiksel iş akışı düzenleme
  • iş kurallarından / uyarılardan iş akışını başlat

Geliştirme Adımları

Uygulama adımları (durumları ile):
  • İş akışı sisteminin özel kavramlarını prototip olarak anlamak
  • İş akışı sistemini aynı tomcat bağlamında çalıştırın (tamamlandı)
  • İş akış sisteminin veritabanını Openbravo ile entegre etti
  • (kısmen yapılmış) Openbravo içinden iş akışlarının düzenlenmesine izin verir
  • (kısmen yapılmış) iş akış sistemini görsel bir bakış açısıyla birleştirmek
  • İş akışı sistemini bir kimlik doğrulama / yetkilendirme noktasından entegre / yerleştirme
  • Gömülü iş akış sisteminde Openbravo kavramlarını kullanmak / uygulamak mümkün

Takip

Bu özellik geliştirme, aşağıdaki sorun (lar) kullanılarak izlenir: eklenecek

dizayn

Bu bölümde Openbravo’nun Activiti ile iş akışı entegrasyonunun ayrıntılı tasarımı ele alınmaktadır. Hem mevcut işlevselliği hem de yeni işlevsellik olarak birleştirir.

İş akışı entegrasyonu, Openbravo’daki iş akışlarını tanımlamayı, iş akışlarını başlatmayı, mevcut görevlere genel bir bakış elde etmeyi, belirli bir kayıt / nesne için hangi iş akışlarının mevcut olduğunu görselleştirmeyi ve belirli bir kayıt / nesnenin hangi iş akışında aktığını mümkün kılar. Ana konu.

Veri / Nesne Odaklı İş Akışı entegrasyonu

İş akışı tanımlarını pencere / sekmelere bağlama

Fikir, belirli bir sekme için bir iş akışının etkinleştirilmesi / kullanılabilir olmasıdır. Bu yüzden Openbravo’da iş akışlarını tanımlarken, bu iş akışının hangi sekmelerde kullanılabilir olması gerektiğini belirlemek mümkündür.

Sekme iş akışı bağlantısı, belirli bir iş akışının belirli bir kayıt için geçerli olup olmadığını belirten bir ifadeyi tanımlamaya da izin vermelidir. Örneğin, e.orderQuantity> 0 gibi bir ifade, bir iş akışının, yalnızca 0’dan büyük bir sipariş miktarı olan bir satış siparişi satırı için mevcut olduğunu tanımlar. Bu ifade, istemci üzerinde yürütülür, diğer javascript’in kullanılması mümkün olmalıdır. ) bu ifadedeki nesneler.

İş akışı sekmesi bağlantısı, bir iş akışının belirli bir kayıt için bir veya birkaç kez başlatılabileceğini de tanımlamalıdır.

Mevcut iş akışlarının bir sekmede görselleştirilmesi

Bir iş akışı tanımının bir sekmeyle olan bağlantısı, hedef pencerede / sekmede aşağıdaki gibi görüntülenir:

  • Araç çubuğunda bir iş akışı düğmesi olacak, bu düğmeye tıklandığında bir açılır menü belirir. İş akışı düğmesi, kayıt iş akışına katılıp katılmadığına bağlı olarak farklı durumlara sahip olacaktır, bu katılım, bir kayıt seçildiğinde yapılan bir istemci-sunucu kontrolü kullanılarak hesaplanabilir (sunucuya taşması için belirli bir gecikmeden sonra). bir ızgarada ilerlemek).
Bpm penceresi workflow.png
  • Bir kayıt seçilirse, o zaman kayıt, kayıt için mevcut iş akışlarını gösterir. Etkinleştirme ifadesi (iş akışı – sekme bağlantısına bakın) doğru olarak hesaplanırsa iş akışı bir kayıt için etkinleştirilir.
  • Bir iş akışını başlatmak için, kullanıcı iş akışındaki tıklamayı tıklayabilir, bir onaylama diyaloğu görüntülenebilir ([tanımlayıcı] için iş akışı xyx’ini başlatmak ister misiniz?), Eğer kullanıcı ok basarsa, iş akışı başlatılır, Bir bilgi iletişim kutusu, kullanıcıya iş akışının başladığını bildirir.
  • eğer kayıt seçilen iş akışına zaten katılmışsa ve birden fazla iş akışı örneğini başlatmasına izin verilmiyorsa, bir bilgi iletişim kutusu görüntülenir (seçilen kayıt için iş akışı zaten başlatılmış demektir)
Bpm penceresi flyout.png
Mevcut iş bir kayıt için akar

Bir kayıt seçildiğinde, sineğin çıkışı, o anda geçerli olan bir kaydın katıldığı tüm mevcut iş akışlarını gösterme seçeneğini de gösterir.

Bpm iş akışı section.png

Kullanıcı bu seçeneği seçtiğinde, formdaki (bir ızgarada) bir kaydın ana konu olduğu tüm mevcut iş akışlarını listeleyen bir bölüm açılır. Her iş akışı için aşağıdaki bilgiler görüntülenir:

  • iş akışının adı
  • mevcut görevin adı
  • Mevcut görevin devri (kullanıcı veya grup)
  • iş akışının başlangıç ​​tarihi
  • Mevcut görevin tarihi (geçerli görev atandığında / ulaşıldığında)
  • iş akışındaki mevcut konumu göstermek için bir buton, mevcut konum grafik olarak gösterilir
  • Kullanıcı bunun için yetkilendirilmişse iş akışını silmek / durdurmak için bir düğme
  • Geçerli kullanıcı atanmışsa, görev için kullanıcı arabirimini açmak için bir düğme / bağlantı

Kullanıcı Odaklı İş Akışı Entegrasyonu

Önceki bölüm, iş akışlarının sistemdeki verilerle nasıl ilişkili olduğunu tartışır. Bu bölüm, iş akışı entegrasyonunun kullanıcı odaklı bölümüne odaklanmaktadır.

Kullanıcı odaklı yaklaşım farklı şekillerde görselleştirilir:

  • görevler gezinti çubuğu bağlantısı (aşağıdaki resimde en üstte bakın)
  • Kullanıcının mevcut görev listesi görünümü (görevler gezinti çubuğu düğmesine tıklandığında açılır)
  • iş akışı düğmesindeki her pencerede
Görev Görünümü

Görev görünümü şu anda Activiti entegrasyonunun bir parçası olarak mevcut. Bir kullanıcıya atanan görevlerin listesini ve kullanıcının talep edebileceği kullanıcı grubuna atanan görevleri gösterir.

Bpm görev view.png

Görev görünümünden, kullanıcı iş akışındaki mevcut konumu da görebilir:

Bpm görev görünümü mevcut location.png

Görev görünümünün işlevselliği çeşitli yollarla genişletilmelidir:

  • Bir kullanıcının bir görevi diğer kullanıcılara, hem kullanıcı görev listesinden hem de gruba atanan görevlerden (talep edilmek üzere) atamasına veya taşımasına izin verin.
  • Bir kullanıcının izin vermesi durumunda iş akışını durdurmasına / silmesine izin verin.

Bu eylemler, görev üzerinde bir sağ fare düğmesi tıklatması kullanılarak görev listesinde kullanılabilir hale getirilebilir. Her iki eylem, kullanıcıyla ilk onaylandıktan sonra gerçekleştirilmelidir.

Her pencerede / sekmede iş akışı düğmesi

Eğer iş akış modülü takılıysa, o zaman her pencerede bir çıktısı gösteren bir iş akışı düğmesi vardır (ayrıca bkz. Veri odaklı iş akışı entegrasyonu). Açılış, kullanıcıya atanan görevlerin listesini, göreve özel kullanıcı arabiriminin bu görev için açılmış olduğu bir göreve tıklayarak gösterebilir (sonraki bölüme bakın).

Göreve özgü kullanıcı arayüzü

Mevcut prototip, iş akışının bir kullanıcı görevi için bir hedef pencere / sekme tanımlamasına izin verir. Görev görünümü listesinde bu, seçilen kayıt için pencereyi / sekmeyi açan bir bağlantı olarak görüntülenir. Kullanıcı bu bağlantıyı tıkladığında openbravo penceresi / sekmesi bu kayıt için açılır, bu, kullanılabilir tüm işlevselliğe sahip standart bir openbravo penceresi / sekmesidir.

Bu, başlangıç ​​yaklaşımı için iyidir, ancak mevcut yaklaşımın ana dezavantajı, kullanıcının açılan pencere / sekme üzerinde herhangi bir eylem gerçekleştirebilmesidir: silme, düzenleme, tıklama düğmeleri vb. Ayrıca, bu eylemin hangisi olduğu açık değildir / tanımlanmamıştır. görevi tamamlar / bitirir. Bu nedenle, kullanıcının ek bir adım olarak, sistemi belirli bir görevin tamamlandığını bildirmek için bir düğmeye basması gerekir.

Bunu çözmek için 2 çözüm var:

  • iş akışı modunda pencereyi / sekmeyi açın:
    • Belirli bir görevin yürütüldüğü pencerede / sekmede görselleştirin (bir yerdeki bir mesaj aracılığıyla)
    • sadece tek bir kaydın görüntülenmesine izin verir, böylece diğer kayıtlara veya bilgilere herhangi bir navigasyon olmaz, muhtemelen kaydı tam düzenleme / standart modda açmak için ayrı bir bağlantıya izin verir
    • pencere veya sekmede iş akışına özel düğmeleri / eylemleri göster. Bu, bir şekilde Openbravo kullanıcı arayüzünde özel düğmelere dönüştüren bir kullanıcı görevinde iş akışı eylemlerini tanımlayabilmemiz gerektiği anlamına gelir.
  • Sisteme bir yeni pencere türü ekleyerek, bir görüntünün görevi yürütmesine izin veren belirli işlem düğmelerinin tanımlanmasıyla görselleştirilmesini sağlar. Kullanıcı bu düğmeleri tıklattığında (veya işlem açılır penceresi bir başarı karmaşası ile döndüğünde), görev yürütüldü ve iş akışı devam edebilir.

İkinci seçenek için, Uygulama Sözlüğünde pencere / sekme tanımının çoğunu / tümünü yeniden kullanabilir ve ayrıca istemci ve sunucu kodunun büyük bölümlerini yeniden kullanabiliriz. Imv ikinci yaklaşım tercih edilen yaklaşımdır, her iki yaklaşım da birlikte uygulanabilir.

Openbravo kullanıcı arabiriminde iş akışlarını tanımlama

Başlangıç ​​/ mevcut uygulama (Febr 2012), Openbravo’da iş akışlarını XML olarak tanımlamanıza olanak tanır.

Openbravo’daki iş akışlarını xml’den daha ayrıntılı bir şekilde tanımlamak için 2 seçenek vardır:

  • İdari: Openbravo’da ortak bir iş akışı yapısını yansıtan tablolar (ve bunları sürdürmek için pencere / sekme) oluşturuyoruz. İş akışı Openbravo penceresi / sekmesi aracılığıyla oluşturulabilir / düzenlenebilir.
  • Grafiksel: İş akışı web tarayıcısı üzerinden bir grafik / çizim türü kullanıcı arayüzü kullanılarak oluşturulabilir / sağlanabilir, buraya bakın

Web tarayıcısı / Openbravo kullanıcı arabirimi aracılığıyla iş akışlarının grafik olarak düzenlenmesini sağlamak için ikinci yaklaşım tercih edilen bir yaklaşımdır. Openbravo Application Dictionary bileşenlerine (pencere / sekmeler) grafik editör içinden başvurmak mümkün olmalıdır.

Yetkileri

Sistem, bir kullanıcının iş akışlarını başlatmasına, hatta bir iş akışı örneğini durdurmasına / silmesine izin vermesi gerektiğini tanımlamalıdır.

Buradaki fikir, bir iş akışının o kullanıcı tarafından başlatılıp durdurulduğu rol ve iş akışı tanımının bir kombinasyonunu tanımlayan bir Rol İş Akışı tablosu eklemektir.

Önceki bölümlerde tartışılan kullanıcı arayüzü bu yetkileri dikkate almalıdır.

İşe başlama uyarılardan akar

Fikir, bir iş akışının, bir uyarıya dayanarak otomatik olarak başlatılabilmesidir. Bunu başarmak için uyarı kuralı, bir iş akışı tanımına referans göstermelidir. Bu uyarı kuralı için bir uyarı oluşturulmuşsa, bu iş akışı başlatılır.

Bu işlevselliği uygulamak için, muhtemelen uyarı üretme mekanizmasının genişletilebilir hale getirilmesi gerekiyor. Ya da başka bir yaklaşım, uyarı oluşturduktan hemen sonra ayrı bir işlem yürütmek. Bu ayrı işlem, tüm çözülmemiş / göz ardı edilmemiş uyarıların üzerinde yinelenir ve uyarı kuralı bir iş akışı bağlantısına sahipse, iş akışını başlatır.

Alarmın hedef kaydı / sekmesi, iş akışının hedefi olarak kullanılabilir.

Yönetimsel Kullanıcı Arabirimi

Sistem Yöneticisi, ayrı bir sekmede açılacak olan Activiti Explorer UI’sine doğrudan erişime sahiptir. Activiti Explorer UI, İş Akışı Yönetimi menü seçeneği olarak kullanılabilir.

Bpm iş akışı yönetimi.png

kaynaklar