Lab 3: Rozbudowa modelu BPMN

Proszę rozbudować model do postaci jak na poniższym diagramie:

Zaawansowane elementy

Timer Boundary Event

Osoby, które dotychczas nie rozbudowały modelu o ten element, proszone są o jego dodanie i konfigurację zgodnie z opisem z lab 1.

Mail task

Jedno z zadań w podprocesie powinno wysyłać mail do klienta.
W pełnym procesie wcześniej należałoby pobrać dodatkowe dane do przesłania maila
np. jakich szczegółów chcielibyśmy się dowiedzieć,
natomiast u nas na razie zamarkujemy działanie tego zadania.

Nie mamy skonfigurowanego serwera poczty, ale możemy zaadresować maila na adres lokalny,
np.: student@AML-Lab-316.geist.agh.edu.pl.
Po przesłaniu maila możemy sprawdzić w terminalu poleceniem mail, czy mamy go na skrzynce.

Proszę w treści maila umieścić dane trzymane w jakiejś zmiennej instancji procesu.

Script task

Proszę rozbudować model do postaci jak na poniższym diagramie:

Dla podanych właściwości przygotować formularz w zadaniu Set formal conditions (typ boolean):

  • formalCertificates - Firma posiada wymagane certyfikaty
  • formalExperience - Firma posiada wystarczające doświadczenie
  • formalConflicts - Oferta powoduje wystąpienie konfliktu z innymi zamówieniami

W zależności od potrzeb można ustawić wartości domyślne w odpowiednich polach przy użyciu atrybutu default.

W zadaniu Check formal conditions należy wybrać język groovy, a następnie ustawić odpowiednią wartość (negative albo positive) zmiennej resOffer. Aby w groovym zdefiniować zmienną, a następnie wyeksportować ją do naszego procesu należy użyć następującej składni:

def resOffer = "negative"  
/* TODO: sprawdz warunki i w razie 
potrzeby przestaw resOffer na positive */
execution.setVariable("result", resOffer)

Po uruchomieniu procesu proszę sprawdzić, czy odpowiednia zmienna result została utworzona. Zmienną można również wyświetlić przy okazji jakiegoś zadania typu UserTask dodając w XMLu tag:

<documentation>Formal condition check result is: ${result}</documentation>

Elementy języka Groovy (programming language) są wspierane zgodnie z jego składnią. Ponieważ plugin Activiti do eclipse nie wspiera walidacji składni, można próbować sprawdzać działanie w konsoli online.

Zakończenie procesu przy negatywnym rezultacie

Jeśli rezultat formalnego spełnienia warunków jest negatywny, proces powinien się zakończyć. Proszę dodać bramę, która w zależności od rezultatu posteruje przepływem, by odpowiednio zakończyć proces.

Multi instance task

Zatwierdzenie oferty przez członków zarządu

Aby sensowniej zakończyć proces zamodelujemy zatwierdzenie oferty przez członków zarządu.

W tym celu zadanie Approve offer zdefiniujemy jako wieloinstancyjne.
W eclipsie mamy do dyspozycji w zakładce Multi instance następujące parametry:

  • Sequential – sekwencyjne (true) lub równoległe (false) wykonanie,
  • Loop cardinality – liczba instancji (sprawdzana tylko raz, przy utworzeniu zadania,
  • Collection – zmienna kolekcji (lista użytkowników, którzy mają wykonać zadanie),
  • Element variable – zmienna przechowująca poszczególnych użytkowników,
    w celu przypisania ich do zadania,
  • Completion condition – warunek ukończenia zadania.

Sprawdź w Activiti User Guide, w jaki sposób zdefiniować odpowiedni warunek ukończenia zadania. Przyjmijmy, że firma uznaje decyzję zarządu za podjętą, jeśli podjęło ją co najmniej 2ch z 3ch członków zarządu. Ponieważ nie definiowaliśmy jeszcze zmiennej board, proszę dołożyć zmienną board będącą listą członków zarządu (złożoną z istniejących użytkowników Activiti).

Proszę uruchomić proces i przetestować jego działanie dla różnych scenariuszy.

pl/dydaktyka/bim/lab3.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0