Tutorial - przykład

Poniżej podano przykład realizacji prostego procesu. Przykład nie jest opisany "krok po kroku", gdyż jego realizacja na podstawie tutoriala byłaby wtedy bardzo czasochłonna. Opisane zostało kilka pierwszych kroków, które powinien wykonać użytkownik, aby zacząć używać modułu proc. Przygotowanie odpowiednich obiektów jpalio oraz konstrukcja procesu za pomocą interfejsu html została pominięta. Zamiast opisu tych kroków pod adresem http://devel.torn.com.pl/palio/html.run?_Instance=proc_test dostępna jest instancja z realizacją procesu opisanego w przykładzie, która może być kopiowana a następnie dowolnie modyfikowana w celach szkoleniowych. Dump tej instancji dla bazy danych Oracle v10 oraz jPALIO 7.4.21 można pobrać tutaj. Dostępna jest także łatka całej instancji.

Schemat procesu

Rys. Schemat przykładowego procesu.

Przykładowy proces składa się z siedmiu stanów. Stany 100.003 i 101.001 zostały zrównoleglone na potrzeby przykładu. Przejście do stanu 100.003 powoduje utworzenie podprocesu w obiekcie inicjalizacji stanu 100.003. Stan 100.004 powinien zostać wyświetlony dopiero gdy podproces zakończy się (znajdzie się w stanie 101.002). Funkcję tą realizują określone w stanie 100.004 obiekty sprawdzania zakończenia podprocesów i oczekiwania na zakończenie podprocesów. Stany 100.005 i 101.002 są stanami końcowymi w procesie.

Utworzenie struktur danych dla modułu proc

Należy utworzyć struktury bazy danych wymagane przez moduł proc korzystając z zawartego w dokumentacji skryptu tworzącego tabele lub schematu dla Spirali.

Utworzenie interfejsu do edycji procesów

Należy jednokrotnie wykonać w dowolnym obiekcie jpalio funkcję $proc.createOrReplaceHtmlInterface() a następnie odświeżyć dane w jdesignerze.

Utworzenie struktur danych dla instancji procesu

Należy wykonać poniższy skrypt tworzący tabelę przechowującą dane instancji procesu (zgłoszeń). Skrypt dla opisanego powyżej przykładu jest przygotowany dla bazy Oracle. Struktura danych zgłoszenia jest ograniczona do jednej tabeli ze względu na maksymalne uproszczenie przykładu i nie powinna stanowić inspiracji podczas realizacji rzeczywistych procesów (dane klienta i dodatkowe parametry zgłoszenia powinny być przechowywane w osobnych tabelach).

Struktura zgłoszenia jest hierarchiczna. W zgłoszeniach podrzędnych będzie przechowywany stan podprocesu 101. Podproces 101 zostanie zamodelowany jako fragment procesu rozłączny względem procesu nadrzędnego (proces główny i podproces będą widziane przez moduł proc jako jeden proces).

 

 

create table proc_test_orders
(
 id number(20) not null constraints protesord_id_pk primary key using index tablespace indx,
 state_nr number(20) not null,
 parent_id number(20),
 customer_data varchar2(4000 byte),
 order_data varchar2(4000 byte),
 is_finished char(1 byte) not null,
 creation_date date not null,
 last_state_change date not null
) tablespace users;

alter table proc_test_orders add constraint protesord_parid_fk foreign key (parent_id) references proc_test_orders (id);

create sequence proc_test_orders_s start with 1;
 

 

Utworzenie struktury katalogów i obiektów w jdesignerze oraz budowa struktury procesu

Kroki utworzenia struktury katalogów i obiektów w jdesignerze oraz budowy struktury procesu nie zostały tutaj opisane, jednak można nauczyć się ich powielając proces dostępny na instancji wymienionej w rozdziale "tutorial - przykład". Można też wczytać łatkę w jDesignerze. Uwagi, które mogą być przydatne podczas nauki: