Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:bim:lab3 [2013/11/04 13:13]
kkluza
pl:dydaktyka:bim:lab3 [2019/06/27 15:50] (aktualna)
Linia 13: Linia 13:
 ==== Mail task ==== ==== 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.1383567221.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