background image

Projektowanie systemu workflow przy 

użyciu narzędzia BizAgi Studio 

 

część 1 

Definiowanie procesu w notacji BPMN 

 

Instytut Systemów Informatycznych, Wydział Cybernetyki, Wojskowa Akademia Techniczna  

Paweł Mieteo, Jarosław Koszela 

Spis treści 

Wprowadzenie ........................................................................................................................................ 2 

Definiowanie procesu przy użyciu notacji BPMN .................................................................................... 3 

 

 

 

background image

Wprowadzenie 

 

BizAgi Studio jest środowiskiem, które przekształca procesy zamodelowane w notacji BPMN do 
aplikacji bez konieczności programowania. BizAgi oferuje zestaw nazrzędzi do graficznego 
projektowania procesu, tworzenia modelu danych oraz definiowania reguł biznesowych.  

Poniższy diagram przedstawia kolejne kroki składające się na cykl tworzenia aplikacji: 

 

 

Rysunek 1. Cykl tworzenia aplikacji 

background image

Definiowanie procesu przy użyciu notacji BPMN 

 

Aby rozpocząd projektowanie procesu należy uruchomid narzędzie BizAgi Studio i następnie utworzyd 
nowy projekt.  

 

Rysunek 2. Tworzenie nowego projektu (krok 1) 

Na pierwszym ekranie należy wybrad opcję New. 

 

 

Rysunek 3. Tworzenie nowego projektu (krok 2) 

Kolejnym krokiem jest nadanie nazwy projektu, w naszym przypadku będzie to TutorialBizAgi. 

background image

 

Rysunek 4. Tworzenie nowego projektu (krok 3) 

Ostatnim etapem tworzenia projektu jest automatyczne skonfigurowanie projektu przez narzędzie, 
oraz utworzenie bazy danych, w której będzie zapisywany stan naszego projektu. BizAgi Studio 
utworzy bazę danych o nazwie TutorialBizAgi. 

Po utworzeniu projektu, zostanie otwarte główne okno narzędzia: 

background image

 

Rysunek 5. Główne okno narzędzia BiaAgi Studio 

 

Tworząc aplikacje przy użyciu BizAgi Studio, rozpoczynamy pracę od zdefiniowania procesu. W tym 
celu wybieramy opcję New Process. 

 

 

background image

 

Rysunek 6. Tworzenie nowego procesu 

W pole „Proces Name” wpisujemy nazwę procesu. W naszym przypadku będzie to „Składanie 
wniosku o poprawę egzaminu”. 

 

 

Rysunek 7. BizAgi Process Modeler 

Tworzenie procesu odbywa się w zintegrowanym narzędziu o nazwie „BizAgi Process Modeler”. 

Po lewej stronie okna mamy paletę, w której znajdują się elementy, z których budujemy Proces. 

 

Flow (Przepływ) 

  Task (zadanie) – Element ten symbolizuje pracę wykonywaną w procesie. 

background image

 Start Event (zdarzenie początkowe) – Inicjuje/określa początek przepływu 

procesu. 

Intermediate Event (zdarzenie pośrednie) – Jest to element znajdujący się 

wewnątrz procesu, który określa punkt oczekiwanie na jakieś zdarzenie. Element ten 
nie rozpoczyna i nie kooczy procesu. 

 End Event (zdarzenie koocowe) – Element ten wskazuje miejsce zakooczenia 

procesu.  

 Gateway (brama logiczna) – Jest to element decyzyjny, który steruje 

przepływem, uaktywniając odpowiednie ścieżki w zależności od reguł biznesowych. 
Bramy mogą rozdzielad lub łączyd przepływy.  

 

Artifacts (Artefakty) -  elementy graficzne nie będące elementem przepływu. 

 Group (grupa) – element grupujący inne elementy diagramu. Stosowany w celu 

zwiększenia przejrzystości procesu. 

 Annotation (adnotacja) – Jest to element tekstowy pozwalający opisad diagram. 

 Data Object (dane) – Element pozwalający opisad dokumenty i inne obiektu 

wykorzystywane podczas procesu. 

 

Swimlines (Miejsca realizacji procesu/tory pływackie) 

Line (tor) – Tory służą do podziału procesu w sposób horyzontalny. Zazwyczaj 

reprezentują osobę, rolę lub system, do którego należy wykonanie zadao 
znajdujących się wewnątrz. 

Milestone (kamienie milowe) – Elementy te służą do podziału procesu na 

logiczne części, reprezentujące etapy systemu. 

 

Connectors (Połączenia) 

 Sequence Flow (Sekwencja przepływu) – Element ten określa kolejnośd 

wykonywania się odpowiednich aktywności wewnątrz procesu. 

 Association (Asocjacja) – Połączenie to łączy ze sobą artefakty i obiekty 

przepływu. 
 

W modelowanym procesie wyodrębnimy cztery role: student, dziekanat, dziekan i księgowośd. W 
związku z tym z wcześniej opisanej palety na nasz diagram przenosimy czterokrotnie ikonkę „Line” i ją 
upuszczamy. Każdy tor nazywamy zgodnie z rolami. Czynimy to przez dwuklik na nazwie lub na 
kliknięciu na nazwę i wpisaniu nowej nazwy w okienku „Element Properties” na dole głównego okna. 
Druga metod umożliwia wpisanie polskich znaków. W analogiczny sposób zmieniamy nazwę każdemu 
innemu elementowi na diagramie. 

background image

 

Rysunek 8. Zdefiniowanie torów 

Kolejnym krokiem jest wyodrębnienie etapów procesu, tak zwanych kamieni milowych. Do tego celu 
użyjemy elementu „Milestone”. Trzy krotnie przeciągamy go na diagram procesu i odpowiednio 
ustawiamy nazwy: przyjmowanie wniosku, dokonanie wpłaty, odbiór dokumentów. 

 

Rysunek 9. Zdefiniowanie torów i kamieni milowych 

Proces będzie inicjowany przez studenta, a więc element „Start event” umieszczamy w torze 
studenta w pierwszym etapie. Jego pierwszym zadaniem będzie złożenie wniosku, w związku z tym 
obok elementu startowego umieszczamy „Task” i nazywamy go odpowiednio. Oba elementy łączymy 
elementem „Sequence Flow”, również przeciągniętym z lewego panelu. 

background image

 

Rysunek 10. Rozpoczęcie procesu 

System daje inny sposób dodawania nowych elementów do procesu. A mianowicie chcąc dodad 
kolejny element do przepływu, połączony elementem „Sequence Flow” należy kliknąd na obiekt, z 
którego ma wychodzid strzałka. W tym momencie pojawią się elementy, które mogą byd następnymi 
w procesie. Należy chwycid odpowiedni i umieścid go w dowolnym miejscu. 

 

Rysunek 11. Element "Start event" w trybie tworzenia następnego elementu 

 

 

Rysunek 12. Element "Task" w trybie tworzenia następnego elementu 

Jak widad drugi sposób jest znacznie szybszy i wygodniejszy. 

Pierwszy etap procesu wygląda następująco: 

 

Rysunek 13. Przyjmowanie wniosku - pierwszy etap procesu 

background image

Powyższy proces możemy opisad słownie w następujący sposób: 

1.  Student składa wniosek o poprawę egzaminu 
2.  Dziekanat poobiera dane o studencie z serwisu zewnętrznego 
3.  Dziekanat decyduje czy wniosek jest prawidłowo złożony i czy student spełni warunki 

formalne 

a.  Jeśli student definitywnie nie spełnia warunków formalnych to wniosek zostaje 

odrzucony oraz wygenerowany zostaje sygnał(powstaje inicjatywa) o skreślenie go z 
listy studentów. Koniec procesu. 

b.  Jeśli wniosek wymaga dodatkowych czynności ze strony studenta to należy go o tym 

poinformowad (przejście do punktu 4.) 

c.  Wniosek poprawny formalnie, więc zostaje przyjęty i przekazany do 

dziekana(przejście do punktu 5.) 

4.  Student dokonuje wymaganych czynności (przejście do punktu 3.) 
5.  Dziekan ostatecznie rozpatruje wniosek. 

a.  Dziekan odrzuca wniosek, co kooczy proces oraz wygeneruje sygnał(powstaje 

inicjatywa) o skreślenie danej osoby z listy studentów. 

b.  Dziekan przyjmuje wniosek(Przejście do punktu 6.) 

6.  Dziekanat wysyła informacje do studenta, że jego wniosek został przyjęty. 

Porównując oba opisy tego samego procesu łatwo dostrzec, że reprezentacja graficzna jest łatwiejsza 
w zrozumieniu. A sama notacja jest na tyle intuicyjna, że osoba niemająca doświadczenia jest w 
stanie zrozumied sens procesu.  

 

 

Rysunek 14. Nadawanie typu zadaniu 

background image

 

Rysunek 15. Service Task 

Zadaniu „Pobieranie informacji o studencie” nadaliśmy typ „Service Task”, co oznacza, że zadanie to 
będzie korzystało z serwisu zewnętrznego. Narzędzie umożliwia nam transformacje zadania do 
jednego z powyżej zaprezentowanych typów. Robi się to przez menu kontekstowe, a więc należy 
kliknąd na dany element, wcisnąd prawy przycisk myszy a następnie wybrad odpowiednią opcję. 

 

Rysunek 16. Pętla wykorzystująca bramę logiczną 

Zgodnie z zastosowaniem element w kształcie rombu użyliśmy do stworzenia pętli. Brama logiczna 
służy do sterowania przepływem. W powyższym przypadku, w zależności od akcji podjętej na zadaniu 
„Przyjmowanie wniosku do rozpatrzenia”, proces może obrad jeden z trzech przewidzianych 
wariantów. W przypadku „Odrzucenia warunkowego” przechodzimy do kroku „Dokonanie 
wymaganych czynności” i ponownie wracamy do przyjmowania wniosku. 

 

 

Rysunek 17. Send Task 

Kolejnym przykładem użycia zadania określonego typu jest task „Wysłanie wiadomości o przyjęciu 
wniosku”, któremu nadaliśmy typ „Send Task”. Opcja ta została ustawiona po przez menu 
kontekstowe, w analogiczny sposób jak w przypadku „Service Task”. 

background image

 

Rysunek 18. Nadawanie typu dla zdarzenia koocowego 

 

 

Rysunek 19. End Event - Signal 

W pierwszym etapie naszego przykładu możliwe jest zakooczenie całego procesu. Koniec procesu 
oznaczony jest po przez czerwoną obręcz. „End Event” również może przyjmowad jeden z kilku 
typów. Nasze zdarzenie koocowe otagowaliśmy typem „Signal”. Oznacza to, że w trakcie zakooczenie 
zostanie wygenerowany sygnał, który np. może zostad wykorzystany do automatycznego 
uruchomienia innego procesu.  

 

 

background image

 

Rysunek 20. Dokonanie wpłaty - Drugi etap procesu 

Kolejnym etapem w naszym procesie jest „Dokonanie wpłaty”. System oczekuje na wpłatę 5 dni, jeśli 
w tym czasie nie zostanie odnotowane wpłynięcie pieniędzy to proces zostanie zakooczony. W 
przypadku, jeśli księgowa odnotuje wpłynięcie pieniędzy na konto rozpocznie się podproces 
księgowania wpłaty.  

 

background image

 

Rysunek 21. Wykorzystanie Event Based Gateway oraz zdarzeo Intermediate Event 

 

Rysunek 22. Nadawanie typu bramce logicznej 

 

Rysunek 23. Bramka logiczna  typu "Event Base Gateway" 

Jeśli chcemy, aby proces obrał różny przebieg w zależności od zdarzenia, które zajdzie najwcześniej, 
należy użyd bramki logicznej i ustawid jej typ „Event Based Gateway”. Następnie trzeba dodad 
zdarzenia pośrednie. System wybierze jedną ze ścieżek, a mianowicie tę, na której pierwszej zajdzie 
zdarzenie.  

 

background image

 

 

 

 

Rysunek 24. Nadawanie typu zdarzeniu pośredniemu 

 

Rysunek 25. Zdarzenie pośrednie typu "Timer" 

 

 

Rysunek 26. Właściwości zdarzenia pośredniego typu "Timer" 

Aby zdarzenie odpaliło się po pięciu dniach należy wejśd we właściwości obiektu i w parametrze 
„Duration” ustawid odpowiednią wartośd. 

 

background image

Kolejnym korkiem w naszym procesie jest podproces „Zaksięgowanie wpłaty”. Aby go utworzyd 
należy najpierw zapisad aktualny proces oraz przejśd do głównego okna w narzędziu BizAgi Studio, 
gdzie będziemy mogli dodad nowy proces, który następnie podepniemy jako podproces.  

 

Rysunek 27. Dodanie nowego procesu - Zaksięgowanie wpłaty 

Analogicznie jak to robiliśmy w na początku należy dodad nowy proces. Nazwijmy go „Zaksięgowanie 
wpłaty”. Po utworzeniu procesu opuśdmy go i powródmy do głównego procesu. Proces księgowania 
wpłaty zamodelujemy na koocu.  

 

Rysunek 28. Główne okno BizAgi Studio - zmienianie kontekstu procesu 

W celu powrócenia do głównego procesu należy zmienid kontekst pracy narzędzia. W tym celu w 
prawnym górnym rogu okna należy z listy rozwijanej wybrad odpowiedni proces. Następnie trzeba 
kliknąd opcję „Edit Process”. 

background image

 

Rysunek 29. Stworzenie podprocesu 

 

Rysunek 30. Podproces 

W celu wykorzystanie uprzednio stworzonego procesu w głównym procesie należy dodad Task’a, 
nadad mu odpowiednią nazwę oraz z menu kontekstowego wybrad opcję „Transfer to subprocess”. 
Operacja ta uruchomi kreator za pomocą, którego będziemy mogli skonfigurowad odpowiednio 
podproces. 

 

Rysunek 31. Podproces - wybieranie typu 

background image

Do wyboru mamy cztery rodzaje procesów: 

 

Embedded –Podproces wbudowany jest aktywnością, która zwiera inne aktywności. Pracuje 
on na danych głównego procesu. Nie istnieje możliwośd wykorzystanie tego podprocesu w 
innym miejscu w tym procesie ani żadnym innym. 

 

Resuable – Podproces wielokrotnego użytku jest aktywnością, która wywołuje inny proces. 
Istnieje możliwośd przekazania danych z głównego procesu do podprocesu oraz w drugą 
stronę. 

 

Multiple – Wielokrotny podproces umożliwia wywołanie go wielokrotnie. Ilośd wywołao 
zdefiniowana jest przez określona liczbę lub przez licznośd kolekcji danych. Kolejne 
wywołania mogą działad w trybie równoległym lub sekwencyjny. 

 

Transactional – Transakcyjny podproces daje nam mechanizm potwierdzający, że dana partia 
aktywności wykonała się w całości poprawnie lub cała została wycofana. 

W naszym przypadku użyjemy opcji „Resuable”. 

 

Rysunek 32. Podproces - procesu 

Kolejnym krokiem jest wybranie procesu, który będzie uruchamiany w ramach tej aktywności. 
Wybieramy uprzednio stworzony proces „Zaksięgowanie wpłaty”. 

background image

 

Rysunek 33. Wybranie trybu pracy podprocesu 

Do dyspozycji mamy dwa tryby: 

 

Integrated – tryb ten oznacza, że dany podproces musi się zakooczyd zanim główny proces 
przejdzie do następnego kroku. 

 

StandAlone –opcja ta  pozwala w procesie głównym kontynuowad przebieg, bez znaczenia na 
jakim etapie jest pod proces. 

W naszym przypadku wybieramy tryb StandAlone, co oznacza, że dziekanat może wydad karty 
poprawkowe studentowi nie czekając na zakooczenie procesu księgowania wpłaty. 

 

 

 

background image

 

Rysunek 34. Odbiór dokumentów - Trzeci etap procesu 

Ostatnim etapem całego procesu jest „Odbiór dokumentów”.  Dziekanat równolegle przygotowuje 
karty poprawkowe oraz wprowadza odpowiednie dane do systemu E-dziekanat. Po zakooczeniu obu 
tych kroków, może wydad dokumenty studentowi. 

 

 

Rysunek 35. Przebieg równoległy 

W celu uruchomienia wielu równoległych wątków w przebiegu procesu należy użyd bramki logicznej 
typu „Parallell Gateway”. Aby sprowadzid rozdzielone wątki ponownie do jednego przebiegu, również 
trzeba użyd tej samej bramki. Bramka ta będzie oczekiwad, do póki nie spłyną do niej wszystkie 
doprowadzone wątki.  

background image

 

Rysunek 36. Widok całego procesu 

W celu manipulowania wielkością diagramu należy wcisnąd przycisk Ctrl oraz użyd scrolla w myszce.