Hetman jest rozszerzeniem jPALIO wspomagającym tworzenie oraz implementację wszelkiego rodzaju procesów sprzedaży, obiegu dokumentów (tzw workflow). Hetman został zaprojektowany tak aby programista w jak najprostszy sposób mógł zdefiniować oraz zaimplementować proces.
Główne cechy Hetmana
- Wprowadzenie konwencji implementacji procesów - zachowany jest porządek; łatwe utrzymanie kodu. Mechanizm Hetman został zaprojektowany w myśl zasady CoC (Convention Over Configuration).
- Hetman wspiera wzorzec projektowy MVC (Model View Controller)
- Wydajność - definicja procesu trzymana jest w pamięci; ograniczono do minimum konieczność odwoływania się do bazy danych
- Transakcyjność - wszystkie operacje są z definicji obudowane transakcją
- Duża elastyczność - brak wymogów dot. struktur bazy danych implementowanego procesu
- Łatwość wdrożenia - modyfikacja definicji procesu sprowadza się do aktualizacji obiektu z definicją; nie wymaga restartu serwera
- Pełna integracja z jPALIO
- Definiowanie podprocesów umożliwiające równoległe przetwarzanie procesowanej instancji
- Automatyczne generowanie szablonu kodu na podstawie definicji procesu
- Zmiana definicji procesu bez konieczności restartu aplikacji
Tworzenie procesu przy użyciu Hetmana sprowadza się do następujących kroków:
- Zdefiniowanie procesu - obiekt jPALIO z definicją procesu w formacie XML
- Stworzenie menadżera procesu - klasa Groovy lub JAVA dziedzicząca po klasie palio.modules.hetman.ProcessManager
- Stworzenie strony procesu - cały proces obsługiwany jest przez jedną stronę pełniącą funkcję dispatchera
- Stworzenie obiektu widoku procesu - obiekt jPALIO
- Stworzenie obiektu obsługi błędu - obiekt jPALIO
- Stworzenie obiektu formularza, warunku, akcji dla każdego ze zdefiniowanych stanów procesu - obiekty jPALIO