Podręcznik użytkownika systemu EZD RP

Konfiguracja modułu BPMN

EZD RP do sterowania Procesami BPMN używa specjalnych zmiennych sterujących, dopisywanych do każdego procesu uruchomionego w Silniku BPMN. Przyjęto zasadę, że nazwy tych zmiennych mają prefiks EZDRP.

System nie zezwala na dodawanie nowych zmiennych, aby na Formularzach BPMN były dodawane nowe zmienne o tym samym prefiksie. Zmienne te nie powinny być modyfikowane przez workery ani tworzone samodzielnie przez podmioty.

Oto lista zmiennych, za pomocą których EZD RP rozszerza możliwości sterowania procesami BPMN, wraz z opisem ich przeznaczenia.

  • EZDRPIdSchematWersja – identyfikator schematu BPMN;
  • EZDRPProcesUruchomionyPrzezIdStanowisko – identyfikator stanowiska użytkownika, który uruchomił proces;
  • EZDRPProcesUruchomionyPrzezIdStanowiskoWersja – identyfikator stanowiska wraz z wersją użytkownika, który uruchomił proces;
  • EZDRPProcesUruchomionyPrzezNazwaKomorkiOrganizacyjnej – nazwa komórki organizacyjnej, do której należy użytkownik uruchamiający proces;
  • EZDRPStanowiskaDoPrzypisania – lista stanowisk do przypisania (na podstawie aktualnej listy obiegowej);
  • EZDRPRejestr – nazwa rejestru skojarzonego z procesem (definiowana na Diagramie BPMN);
  • EZDRPRejestrId – identyfikator rejestru skojarzonego z procesem;
  • EZDRPRejestrPozycjaId – identyfikator pozycji rejestru skojarzonego z procesem;
  • KonfiguracjaZadanUslug – konfiguracja zadań usług (ExternalTaskService);
  • EZDRPListaIdDokumentowProcesu – lista identyfikatorów dokumentów systemu EZD RP dołączonych do procesu;
  • EZDRPListyObiegowe – listy obiegowe używane w procesie;
  • EZDRPIdAktualnaListaObiegowa – numer aktywnej listy obiegowej w procesie;
  • EZDRPIdAktualnaPozycjaListaObiegowa – numer aktualnej pozycji w liście obiegowej;
  • EZDRPIdNastepnaPozycjaListaObiegowa – numer pozycji w liście obiegowej do użycia po zakończeniu zadania przez bieżącego użytkownika;
  • EZDRPIdStanowiskoWersjaWykonane – identyfikator stanowiska wraz z wersją ostatniego zadania użytkownika;
  • EZDRPIdTaskWykonany – identyfikator ostatniego zadania użytkownika (User Task);
  • EZDRPKomunikat – bufor dla komunikatów wewnętrznych EZDRP.

Niektóre zmienne są inicjowane podczas uruchamiania Procesu BPM. Są to:

  • EZDRPIdSchematWersja
  • EZDRPProcesUruchomionyPrzezIdStanowisko
  • EZDRPProcesUruchomionyPrzezIdStanowiskoWersja
  • EZDRPProcesUruchomionyPrzezNazwaKomorkiOrganizacyjnej
  • EZDRPRejestr
  • EZDRPRejestrId
  • EZDRPRejestrPozycjaId
  • KonfiguracjaZadanUslug
  • EZDRPListyObiegowe

Zmienne pozostają niezmienione aż do zakończenia procesu BPMN. Pozostałe zmienne są aktualizowane na bieżąco, w zależności od kontekstu pracy, zwłaszcza od rodzaju konfiguracji Zadań BPMN Użytkowników. Identyfikatory wspomniane w opisach zmiennych należy rozumieć jako identyfikatory nadawane przez EZD RP, o ile nie zostało to wyraźnie określone inaczej.

Ustawienia modułu BPMN zapisane w konfiguracji EZD RP

Ustawienia modułu BPMN zapisane są w następujących plikach EZD RP:

  • ice.appsettings.json
  • ezdrp.bpmn.json

Włączenie modułu BPMN

Aby włączyć moduł BPMN w EZD RP, należy dodać parametr „UseBpmn” z wartością „true” do sekcji „Settings” w pliku ice.appsettings.json.

Następnie należy skonfigurować połączenie do Silnika Camunda 7 w pliku ezdrp.bpmn.json.

Przykładowa konfiguracja, używająca Silnika Camunda 7 działającego pod adresem localhost:8080, widoczna jest na poniższym zrzucie.

W sekcji „BpmnEngineServers” można dodać kilka konfiguracji Silników BPMN, jednak każda z nich musi mieć unikalną nazwę zapisaną w parametrze „Key”. Następnie należy wpisać klucz w sekcji „BpmnSettings „ jako wartość parametru „BpmnActiveEngineServer „. Konfiguracja ta zostanie wczytana do modułu BPMN podczas startu systemu EZD RP, jeżeli parametr „Enabled „ tej konfiguracji został ustawiony na true.

Parametr „EngineType” służy do zapisania typu Silnika BPMN. Obecnie EZD RP obsługuje tylko jeden typ: „Camunda7”.

Z kolei parametr EngineVersion służy do przekazania EZD RP informacji o wersji Silnika BPMN, która została uruchomiona.

Parametr „EngineBaseApiUrl” służy do przekazania EZD RP informacji o adresie WWW, pod którym znajduje się usługa REST-API Silnika BPMN.

Wartość parametru „UserAgent” zostanie przekazana przez system EZD RP do Silnika BPMN podczas wykonywania poleceń REST-API.

Jeżeli w Silniku BPMN włączona jest autoryzacja typu Basic, to należy dodać parametry „BasicAuthUserName”„BasicAuthPassword”, podając w nich login i hasło przydzielone dla EZD RP.

Konfiguracja workerów EZD RP do obsługi zadań typu External uruchamianych w Procesach BPMN

Konfiguracja standardowych workerów odbywa się w sekcji „BpmnSettings” pliku ezdrp.bpmn.json.

Dostępne są następujące parametry:

  • CzyUruchomicWorkeryNASKDoObslugiServiceTasks – określa, czy system EZD RP uruchomi workery NASK podczas startu systemu;
  • DelayBetweenPoolingExternalTasksInSeconds – służy do ustawienia czasu, w którym EZD RP będzie sprawdzał, czy Silnik BPMN uruchomił nowe zadanie typu External w Procesach BPMN przeznaczone dla wybranego workera; czas jest liczony od momentu wykonania ostatniego zadania z pobranej listy zadań (jednostka miary: sekundy);
  • MaxExternalTasksPerTopic – służy do ustawienia maksymalnej liczby zadań, które worker działający na instancji EZD RP może pobrać do wykonania;
  • ExternalTaskLockDuration – określa maksymalny czas przeznaczony dla workera do wykonania pojedynczego zadania (jednostka miary: milisekundy).

Konfiguracja workera EZD RP do obsługi zadania specjalnego – konfiguracja Zadań BPMN typu User Task

Ten worker jest wymagany do prawidłowej pracy modułu BPMN. Jeżeli jest uruchomionych wiele instancji EZD RP, co najmniej jedna z nich musi mieć tę opcję włączoną, aby system mógł przypisać użytkowników do wykonywania Zadań BPMN typu User Task.

Dostępne są następujące parametry:

  • CzyUruchomicWorkerKonfiguratoraZadanBpmn – określa, czy EZD RP uruchomi worker podczas startu systemu;
  • DelayBetweenControlUserTasksInSeconds – służy do ustawienia czasu, w którym system EZD RP będzie sprawdzał, czy Silnik BPMN uruchomił nowe zadanie typu UserTask w Procesach BPMN; czas jest liczony od momentu wykonania ostatniego zadania z pobranej listy zadań (jednostka miary: sekundy).

Ustawienie adresu URL serwisu do walidacji wyrażeń używanych w bramkach logicznych na Diagramie BPMN

Do poprawnej walidacji bramek logicznych używany jest zewnętrzny mikroserwis (dostarczany razem z EZD RP). W parametrze BpmnExpressionValidatorsBaseUrl należy wskazać adres URL do niego. Mikroserwis nie wymaga autoryzacji.

Podczas walidacji mikroserwis sprawdza poprawność wyrażeń zapisanych w języku JUEL. W przyszłych wersjach planowane jest dodanie również języków Groovy i JavaScript.

Należy zauważyć, że nie wszystkie błędy mogą być wykryte. Podczas działania Procesu BPMN, jeśli Zmienna Sterująca Procesu będzie zawierała typ danych innych niż zadeklarowany w wyrażeniu lub nie zostanie dodana do Procesu BPMN, to Silnik Camunda 7 uzna tę sytuację za błędną. Brak obsługi takich błędów w Diagramie BPMN może skutkować zakończeniem Procesu BPMN przez Silnik Camunda, szczególnie jeśli poprzednim krokiem był User Task.

Zalecane jest dokładne przetestowanie (symulacja) działania Procesu BPMN na podstawie uruchomionego Schematu BPMN, aby sprawdzić czy wszystkie Zmienne Sterujące Procesu są poprawnie przypisywane dla wszystkich możliwych wariantów przejścia Procesu BPMN.

Jeśli okaże się, że nie są, to taki błąd należy traktować jako krytyczny. System EZD RP nie będzie mógł dalej sterować tym procesem, a w systemie EZD RP pozostanie ślad o niedokończonym Procesie BPMN oraz ewentualnie niezakończonych Zadaniach BPMN typu User Task.