Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
pl:dydaktyka:bim:lab3 [2013/11/04 13:05]
kkluza utworzono
pl:dydaktyka:bim:lab3 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 ====== Lab 3: Rozbudowa modelu BPMN ====== ====== Lab 3: Rozbudowa modelu BPMN ======
  
-{{:​pl:​dydaktyka:​bim:​lab3:​process8-eclipse-example.png?​900|}}+Proszę rozbudować model do postaci jak na poniższym diagramie:​ 
 + 
 +{{:​pl:​dydaktyka:​bim:​lab3:​process8-eclipse-example.png|}} 
 + 
 +===== 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 [[pl:​dydaktyka:​bim:​lab1#​timer_boundary_event|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:​\\ 
 + 
 +{{  :​pl:​dydaktyka:​bim:​lab3:​process8-eclipse-example.png ​ |}} 
 + 
 +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: 
 +<code groovy>​ 
 +def resOffer = "​negative" ​  
 +/* TODO: sprawdz warunki i w razie  
 +potrzeby przestaw resOffer na positive */ 
 +execution.setVariable("​result",​ resOffer) 
 +</​code>​ 
 + 
 +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: 
 +<code xml><​documentation>​Formal condition check result is: ${result}</​documentation></​code>​ 
 + 
 +Elementy języka [[wp>​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 [[http://​groovyconsole.appspot.com/​|konsoli online]]. 
 + 
 +{{:​pl:​dydaktyka:​bim:​lab3:​eclipse2-designer-gateway.png?200  ​|}} 
 + 
 +** 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. 
 + 
 +{{  :​pl:​dydaktyka:​bim:​lab3:​explorer2-execution-multiinstance.png|}} 
 +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 [[http://​www.activiti.org/​userguide/​index.html|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.1383566703.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (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