Różnice

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

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
pl:dydaktyka:bim:lab1 [2014/10/06 15:25]
kkluza usunięto
— (aktualna)
Linia 1: Linia 1:
-====== Lab. 1: Podstawy pracy z Activiti ​ ====== 
- 
-===== Activiti BPM Platform ===== 
- 
-Na potrzeby dzisiejszych zajęć na komputerach powinien być uruchomiony JBoss, na którym działa Activiti. 
- 
-Proszę uruchomić w przeglądarce aplikację Activiti Explorer: http://​localhost:​8080/​activiti-explorer,​ 
-a następnie zalogować się na konto: 
-  login: kermit 
-  hasło: kermit 
- 
-Po zalogowaniu,​ na górnym pasku powinno widnieć menu złożone z 4 ikon. 
-Służą one do administracji odpowiednio: ​ 
-  * //Tasks// -- zadaniami, 
-  * //​Processes//​ -- procesami, 
-  * //Reports// -- raportami, 
-  * //Manage// -- innymi kwestiami, np. użytkownikami,​ grupami, czy zarządzaniem bazą danych lub wdrożeniami procesów. 
- 
-==== Założenie kont ==== 
- 
-W zakładce Groups (menu Manage) obejrzyj istniejące grupy użytkowników. ​ 
-Jako użytkownika administratora będziemy póki co używać użytkownika ''​kermit'',​ natomiast przyda nam się użytkownik nie będący administratorem. 
- 
-Utwórz nowego użytkownika. Pamiętaj, aby nadać unikalny identyfikator. Przypisz swojego użytkownika do jakichś grup, ale nie grupy Admin. 
- 
-==== Stworzenie nowego modelu procesu ==== 
- 
-Aby zapoznać się z działaniem aplikacji przygotujemy bardzo uproszczony model procesu ofertowania. 
- 
-Z menu proszę wybrać zakładkę **Processes**. Powinny pojawić się 3 zakładki: 
-  - //My instances// -- do obserwowania istniejących instancji procesu, 
-  - //Deployed process definitions//​ -- do uruchamiania procesów wdrożonych na platformie Activiti, 
-  - //Model workspace// -- do tworzenia nowych modeli oraz wdrażania lub edycji istniejących modeli procesów. 
- 
-W zakładce //Model workspace// klikamy przycisk //New model// i tworzymy nowy model procesu przy użyciu Activiti Modelera. Proszę nadać swojemu modelowi nazwę oraz opis. 
- 
-W otwartym oknie aplikacji **Activiti Modeler** proszę ustawić atrybuty procesu (z prawej strony okna). 
-Istotnymi elementami są tutaj identyfikator procesu (//Process identifier//​) i nazwa procesu (//Name//), 
-dzięki którym odróżnimy nasz proces od innych naszych procesów czy procesów innych użytkowników. ​ 
-Proszę uzupełnić również pole autora procesu (//Process author//). 
- 
-==== Modelowanie prostego procesu ==== 
- 
-Przeciągając z lewego menu element //Start event// rozpoczniemy modelowanie fragmentu docelowego procesu. 
-Na początek zamodelujemy bardzo uproszczony proces, jak poniżej:\\ 
-{{  :​pl:​dydaktyka:​bim:​lab1:​proces1-diagram.png ​ |}} 
- 
-Tak jak w przypadku procesu, tak samo dla elementów BPMNa po prawej stronie ustawiamy atrybuty. 
-  
-  * Dla elementu //Start event//: 
-    * //​Documentation//:​ Start proceeding with an offer. 
-    * //​Initiator//:​ initiator (w tej zmiennej będzie trzymany użytkownik,​ który zainicjował proces) 
-    * //Name//: Offer received 
-    * //Form properties//​ - klikamy na ... i w nowym oknie ustawiamy wg poniższego screenshotu:​\\ 
-{{  :​pl:​dydaktyka:​bim:​lab1::​form-properties.png ​ |}} 
- 
-  * Dla zadania //Specify offer//: 
-    * //​Documentation//:​ Please add available specification for an offer as attachments. 
-    * //​Assignments//:​ mamy 3 możliwości\\ 
-      * ''​assignee''​ -- przypisać zadanie konkretnemu użytkownikowi,​ 
-      * ''​candidateUsers''​ -- przypisać zadanie tak, by dowolny z kilku użytkowników mógł je wykonać, 
-      * ''​candidateGroups''​ -- przypisać zadanie tak, by dowolny użytkownik należący do przypisanej grupy mógł je wykonać.\\ ​ 
-W naszym wypadku ustawiamy tylko zmiennej ''​assignee''​ wartość ''​${initiator}''​ -- oznacza to, że jako wykonawcę zadania wskazujemy osobę, która uruchomiła proces. ​ 
- 
-Ponadto dla tego zadania ustawiamy również //Form properties//:​ 
-   * //​Specifications details// (id: ''​specDetails''​) - poziom szczegółowości specyfikacji przedmiotu zamówienia (póki co ustawiamy jako boolean), w dalszej części będziemy chcieli tę zmienną przerobić na typ enum (accurate, sufficient, insufficient). 
-   * //Person responsible//​ (id: ''​responsible''​) - osoba przyporządkowana do analizy formalnej wniosku (odpowiadająca za przeprowadzenie analizy); tutaj nastąpi przyporządkowanie takiej osoby i przypisanie jej do zmiennej. 
- 
-Póki co do przetestowania takiego prostego procesu rezygnujemy z dalszych elementów procesu. 
-Tymczasem zamarkujmy jedno z końcowych zadań: //Approve offer//, w którym ustawiamy jedynie wykonawcę -- osobę, która została przyporządkowana do przeprowadzenia analizy formalnej (proszę użyć identyfikatora zdefiniowanej ​ zmiennej). 
- 
-==== Uruchomienie prostego procesu ==== 
- 
-Zapisujemy model i wyłączamy **Activiti Modeler**. 
-Przechodzimy do **Activiti Explorera**. 
-W zakładce //Model workspace// wybieramy nasz proces z menu 
-i z listy //Model action// wybieramy **Deploy**. 
- 
-Powinno przenieść nas do zakładki //​Deployments//​ (w **Manage**),​ gdzie wybieramy nasz process (klikając na jego nazwę) w sekcji //Process Definitions//​\\ 
-{{  :​pl:​dydaktyka:​bim:​lab1::​proces1-deploy.png ​ |}} 
-Po wdrożeniu, z zakładki //Deployed process definitions//​ możemy uruchomić nasz proces przyciskiem **Start process**. Powinien otworzyć się formularz:​\\ 
-{{  :​pl:​dydaktyka:​bim:​lab1:​proces1-run1-form.png ​ |}} 
-Uzupełniamy formularz dowolnymi danymi i klikamy **Start process**. 
- 
-Jeśli wszystko się powiodło, w zakładce **Processes** -> //My instances// powinniśmy widzieć instancję naszego procesu, ​ 
- 
-Ponieważ pierwsze zadanie zostało przypisane do nas (użytkownika,​ który uruchomił proces), klikamy ikonę **Tasks** i przechodzimy zakładki //Inbox//, gdzie powinno czekać na nas zadanie //Specify offer//. 
-Uzupełniamy pole //​Responsible//​ nazwą innego __istniejącego__ użytkownika (np. ''​fozzie''​ lub zdefiniowanego wcześniej użytkownika),​ możemy również zaznaczyć checkbox //​Specifications details//. Następnie klikamy **Complete task**. 
- 
-Teraz klikamy ikonę **Processes** i przechodzimy do zakładki //My instances//,​ aby obejrzeć diagram, listę zadań i zmienne naszego procesu. 
-Ponieważ zadanie //Approve offer// czeka na innego użytkownika,​ logujemy się na konto podanego użytkownika (jeśli był to użytkownik ''​fozzie'',​ jego hasło to: ''​fozzie''​),​ po czym kończymy zadanie //Approve offer//. 
-Wracamy na nasze konto i sprawdzamy, czy w zakładce //My instances// zniknął nasz proces. 
- 
-Historyczne dane naszego procesu są zapisane w bazie danych, której szybki podgląd mamy dostępny w zakładce //​Database//​ (po kliknięciu w ikonę **Manage**). Proszę odszukać tabelę ''​ACT_HI_PROCINST''​ i znaleźć tam swój proces.  ​ 
-Ponieważ w laboratorium nasza instalacja Activiti z Activiti Modelerem nie ma skonfigurowanego trwałego zapisu modeli, zapiszemy nasz model u siebie na dysku. W tym celu z menu //​Deployments//​ wybieramy //Show all// i odszukujemy nasz proces. Proszę zapisać na dysku plik swojego procesu (plik z rozszerzeniem **.bpmn20.xml**) i obejrzeć jego składnię. Zwróć uwagę na atrybuty tagu ''​process'',​ a także dodatkowe atrybuty innych elementów procesu używane typowo przez Activiti. 
- 
-:!: DO SPRAWOZDANIA:​ 
-  * Model procesu. 
-  * Ew. napotkane problemy/​błędy. 
- 
-==== Rozbudowa modelu ==== 
- 
-Wracamy do zakładki //Model workspace//,​ by rozbudować nasz model o bramę. ​ 
-W zależności od poziom szczegółowości specyfikacji oferty, w przypadku, gdy jest ona niewystarczająco szczegółowa,​ będziemy chcieli prosić oferent o przesłanie dodatkowych informacji. 
-Aby rozbudować nasz model wybieramy odpowiedni model, po czym klikamy //Edit model//. 
- 
-Proszę rozbudować model do postaci jak na poniższym diagramie:​\\ 
-{{:​pl:​dydaktyka:​bim:​lab1:​process3-diagram.png?​800|}} 
- 
-Istotnym elementem modelu jest użycie odpowiednich warunków na przepływach po bramie XOR (w zależności od wartości zmiennej ''​specDetails''​). ​ 
-Sprawdź w [[http://​www.activiti.org/​userguide/​index.html|Activiti User Guide]], w jaki sposób zdefiniować odpowiednie warunki dla tej bramy. 
- 
- 
-:!: DO SPRAWOZDANIA:​ 
-  * Model procesu. 
-  * Ew. napotkane problemy/​błędy. 
-===== Testowanie działania poszczególnych bram ===== 
- 
-Umiejąc już modelować i uruchamiać modele procesów, proszę zamodelować dowolne proste procesy wykorzystujące poniżej zaprezentowaną konstrukcje. 
- 
-{{:​pl:​dydaktyka:​bim:​lab1:​model-3zad-co.png|}} 
- 
-W powyższym modelu proszę w miejscu drugiej bramy wstawić: 
-  - Bramę XOR (czyli nie zmieniamy modelu, tylko w bramie dodajemy maker X). 
-  - Bramę OR. 
-  - Bramę AND. 
- 
-**Uwaga**: należy wymyślić 3 proste procesy, które wykorzystają konstrukcje zgodnie z ich znaczeniem! 
- 
-Proszę uruchomić zamodelowane procesy, a następnie zaobserwować,​ w jaki sposób zachowują się te modele w czasie ich wykonywania przez maszynę procesową. Proszę zanotować odpowiednie wnioski w sprawozdaniu. 
- 
-Który model zachowuje się w sposób analogiczny do poniższego i dlaczego? 
- 
-{{:​pl:​dydaktyka:​bim:​lab1:​model-3zad.png|}} 
- 
-Proszę również przetestować działanie następującego modelu: 
-{{:​pl:​dydaktyka:​bim:​lab1:​model-4zador.png|}} 
- 
-DO SPRAWOZDANIA:​ 
-  * Opisać krótko wymyślone procesy, zaprezentować modele. 
-  * Zanotować wnioski z uruchomienia modeli. ​ 
- 
- 
- 
- 
- 
-===== Dalsza rozbudowa modelu ===== 
- 
-=== Timer Boundary Event === 
- 
-Nasz podproces składa się z dwóch zadań, polegających na tym, że kontaktujemy się z klientem mailowo oraz dodatkowo dzwonimy do niego, by poinformować o przesłanym mailu. W bardzo szczegółowej wersji powinniśmy jeszcze mieć odpowiednie zadanie z oczekiwaniem na odpowiedź od klienta -- dla uproszczenia przyjmijmy, że gdy klient uszczegółowił wystarczająco przez telefon informacje, to użytkownik kończy zadanie "Call customer",​ w innym wypadku nie kończy tego zadania do czasu, aż nie uzyska wystarczających informacji. 
- 
-W standardowym przypadku, gdy minie deadline na składanie ofert, podproces powinien automatycznie zakończyć się i zakończyć cały proces. W tym celu rozbudujemy proces przy użyciu ''​Timer Boundary Event'':​ 
- 
-{{  :​pl:​dydaktyka:​bim:​lab1:​process5-eclipse-example.png?​800 ​ |}} 
- 
-Element ''​Timer Boundary Event''​ ma następujące atrybuty: 
-  * ''​cancelActiviti''​ -- w naszym przypadku należy ustawić **''​true''​**,​ by podproces został przerwany w momnecie wywołania zdarzenia, 
-  * ''​timeDate''​ -- ustawia konkretną datę (w formacie [[wp>ISO 8601]]), kiedy odpalić zdarzenie, np. 
-<code xml> 
-<​timerEventDefinition>​ 
-    <​timeDate>​2012-12-06T17:​00:​00</​timeDate>​ 
-</​timerEventDefinition>​ 
-</​code>​ 
-  *  ''​timeDuration''​ -- ustawia okres czasu, który musi minąć aż zdarzenie zostanie wyzwolone, np. dla 3 dni:  
-<code xml> 
-<​timerEventDefinition>​ 
-    <​timeDuration>​P3D</​timeDuration>​ 
-</​timerEventDefinition>​ 
-</​code>​ 
-  * ''​timeCycle''​ -- ustawia powtarzające się interwały czasu, by wyzwalać zdarzenie periodycznie,​ np. 5 powtórzeń,​ z których każde trwa godzinę: 
-<code xml> 
-<​timerEventDefinition>​ 
-    <​timeCycle>​R5/​PT1H</​timeCycle>​ 
-</​timerEventDefinition>​ 
-</​code>​ 
- 
-Aby móc przetestować proces i nie czekać zbyt długo na efekty proponuję ustawić ''​timeDuration''​ na 2 minuty. 
- 
-Proszę przetestować działanie swojego modelu, obejrzeć diagram instancji procesu w czasie oczekiwania (powinien wyglądać podobnie do modelu widocznego na poniższym diagramie): 
-{{  :​pl:​dydaktyka:​bim:​lab1:​process5-run-example.png?​800 ​ |}} 
- 
-W tym momencie w zakładce **Manage** -> **Jobs** powinien pojawić się nowy ''​Timer job''​. W razie potrzeby istnieje tu możliwość ręcznego wyzwolenia zdarzenia przyciskiem **Execute**:​ 
- ​{{ ​ :​pl:​dydaktyka:​bim:​lab1:​timer-job.png ​ |}} 
- 
-:!: DO SPRAWOZDANIA:​ 
-  * Model procesu. 
-  * Ew. napotkane problemy/​błędy. 
- 
-===== Signavio Process Editor ===== 
- 
-Proszę założyć konto na platformie Signavio: [[http://​academic.signavio.com/​p/​register?​link=0b77d60921ec4ab2ac93286867a9af7d|Registration for the Signavio BPM Academic Initiative]] ​ 
-zaznaczając ​ opcję:\\ //I agree that anonymized versions of all models I create using this platform can be made available for research purposes.// 
- 
-Aby zalogować się do edytora należy na stronie [[http://​www.signavio.com/​bpm-academic-initiative/​|Signavio BPM Academic Initiative]] wybrać **Academic Login**. 
- 
- 
  
pl/dydaktyka/bim/lab1.1412601913.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