Zasada działania przepływów procesu
Przepływ procesu to interfejs użytkownika prowadzący go przez serię czynności w celu wykonania określonego zadania. Zadanie to może być bardzo proste, jak zbieranie informacji w celu aktualizowania danych biznesowych, lub obejmować bardziej złożoną logikę, jak przesyłanie i śledzenie procesów zadań, wymiana komunikatów z systemem zewnętrznym itp.
W tej sekcji opisano tematy związane z projektowaniem przepływów procesu i pracą z nimi.
Przepływ procesu składa się z paneli
Każdy przepływ procesu składa się z szeregu kolejnych "kroków" niezbędnych do wykonania określonego zadania. Każdy krok jest reprezentowany przez zatrzymanie na pasku postępu i powiązanym panelu.
Postęp ma charakter liniowy, ponieważ każdy krok może prowadzić tylko do jednego, kolejnego kroku. Przepływ procesu zawsze zaczyna się od jednego kroku początkowego, ale umożliwia kilka kroków końcowych, w których użytkownik może zdecydować się na ukończenie procesu.
-
Wprowadzić dane lub podjąć czynności zgodnie z monitem w panelu danego kroku.
-
Przejść do następnego kroku (jeśli istnieje).
-
Wrócić do dowolnego z wcześniej wykonanych kroków.
-
Zakończyć przepływ procesu, jeżeli bieżący krok jest krokiem końcowym.
-
Zapisać pracę nad przepływem procesu i kontynuować ją lub przejść gdzie indziej. W późniejszym czasie użytkownik może wznowić pracę nad przepływem procesu od miejsca, w którym przerwał.
-
Anulować przepływ procesu.
Typ przepływu procesu służy do określania całości metadanych potrzebnych do kontrolowania zachowania przepływów procesu danego typu. Obejmuje to między innymi kolejność kroków, panel i reguły związane z każdym z nich.
Prezentacja panelu
Panel prezentowany w poszczególnych krokach przepływu procesu jest renderowany w oparciu o typ panelu wybrany w konfiguracji kroku.
W przypadku panelu typu Obszar danych panel jest renderowany przy użyciu podpowiedzi interfejsu użytkownika wbudowanych w schemat określonego obszaru danych.
W przypadku panelu typu Odwzorowanie interfejsu użytkownika panel jest renderowany przy użyciu określonego fragmentu odwzorowania interfejsu użytkownika.
W przypadku panelu typu Zestaw paneli panel jest renderowany jako zestaw kart, po jednej dla każdego panelu, który odwołuje się do panelu bieżącego jako jego panel nadrzędny. Kliknięcie poszczególnych kart powoduje renderowanie interfejsu użytkownika w oparciu o wybrany typ panelu. Zachowanie zestawu paneli jest analogiczne jak zagnieżdżony przepływ procesu w obrębie jednego panelu lub może być tak postrzegane. Zestaw paneli nie może zawierać innego zestawu paneli.
Pojedyncze odwzorowanie interfejsu użytkownika
Gdy użytkownik wprowadza dane po jednym panelu na raz, są one zbierane i pobierane na poziomie całego przepływu procesu. Wszystkie elementy edytowane i wyświetlane na różnych panelach przepływu procesu muszą być uwzględnione w ogólnym schemacie procesu i musi się do nich odwoływać odpowiednia lokalizacja XPath w tym schemacie. Każdy typ przepływu procesu określa swój unikalny schemat w wyznaczonym odwzorowaniu interfejsu użytkownika.
Kod HTML odwzorowania interfejsu użytkownika powinien po prostu zawierać fragment odwzorowania interfejsu użytkownika Kontroler przepływu procesu (F1-ProcessController) i nic więcej. Ten ostatni jest zaprojektowany w celu renderowania interfejsu użytkownika na potrzeby przepływu procesu w oparciu o metadane zdefiniowane w jego typie przepływu procesu.
Skrypty panelu
W celu przygotowania danych przed prezentacją panelu użytkownikowi z panelem może być powiązany pojedynczy skrypt usługi przetwarzania wstępnego. System wywołuje skrypt za każdym razem, gdy użytkownik przechodzi do tego panelu w niezakończonym przepływie procesu.
W celu sprawdzenia poprawności danych wprowadzonych przez użytkownika w danym panelu z panelem może być powiązany pojedynczy skrypt usługi przetwarzania końcowego. System wywołuje skrypt za każdym razem, gdy użytkownik wychodzi z tego panelu w niezakończonym przepływie procesu.
Skrypty przepływu procesu
W celu przygotowania danych przed prezentacją użytkownikowi nowo zainicjowanego przepływu procesu, z przepływem procesu może być powiązany pojedynczy skrypt usługi rozpoczęcia przetwarzania.
Pojedynczy skrypt usługi zakończenia procesu jest wykonywany, gdy użytkownik kliknie przycisk Zakończ lub Anuluj proces w celu ukończenia przepływu procesu. Do tego skryptu usługi dostarczany jest cały zbiór danych zebranych przez schemat odwzorowania interfejsu użytkownika przepływu procesu na potrzeby przetwarzania końcowego.
Panel podsumowania
Domyślnie, kiedy użytkownik zakończy przepływ procesu, jak również kiedy wyświetli już zamknięty proces, portal przepływu procesu wyświetla ostatni panel, nad którym użytkownik pracował. W przypadku bardziej złożonych przepływów procesu można udostępnić panel zawierający podsumowanie informacji z całego procesu. Po jego określeniu w typie przepływu procesu system wyświetla ten panel podsumowania zamiast domyślnego widoku zamkniętego procesu. Użytkownik może w każdej chwili przełączać między widokiem podsumowania a widokiem szczegółów.
Panel podsumowania może zostać wdrożony jako fragment odwzorowania interfejsu użytkownika lub obszar danych, podobnie jak inne panele, ale nie może być powiązany z żadnym skryptem panelu.
Uruchamianie nowego przepływu procesu
-
Ustawić wysokość obszaru BPA na wartość zero.
-
Wypełnić zmienną tymczasową $processCode kodem określonego typu przepływu procesu.
-
Przenieść kontrolkę do wspólnego skryptu BPA Nawigacja przepływu procesu (F1-PROCEXEC).
Zakłada się, że uruchamianie przepływu procesu określonego typu odbywa się z poziomu określonej opcji menu lub w określonym kontekście mającym zastosowanie do tego typu pracy. W związku z tym pozycja ta musi być skonfigurowana specjalnie dla poszczególnych typów przepływu procesu. Opcja nawigacji powiązana z tą opcją uruchamiania powinna odwoływać się do skryptu BPA powiązanego z odpowiednim typem przepływu procesu.
Zapisywanie pracy na zewnątrz
W dowolnym momencie użytkownik może zapisać swoją pracę na zewnątrz w przepływie procesu. Jeżeli jest to włączone w typie przepływu procesu, system automatycznie zapisuje dane również wtedy, gdy użytkownik przechodzi do innego panelu lub opuszcza portal przepływu procesu.
Zarówno w przypadku ręcznej, jak i automatycznej operacji zapisu, wywoływany jest skrypt Menedżer procesu zdefiniowany w typie przepływu procesu celem zapisania całości danych przepływu procesu na zewnątrz w wyznaczonym rekordzie w bazie danych.
W produkcie bazowym dostępny jest ogólny obiekt obsługi Przepływ procesu, przeznaczony do obsługi przechowywania dowolnego typu przepływu procesu, jak również odpowiedni skrypt menedżera procesu. Jeżeli określone typy przepływów procesu mają być przechowywane w innym miejscu, należy wdrożyć i zastosować specjalny skrypt menedżera procesu.
Przegląd rekordów przepływu procesu
Rekord przepływu procesu jest tworzony w sytuacji, gdy użytkownik zapisał swoją pracę na zewnątrz lub gdy typ przepływu procesu umożliwia automatyczne zapisywanie. Gdy użytkownik zakończy przepływ procesu, rekord w zależności od konfiguracji typu przepływu procesu może zostać skasowany lub zachowany do celów audytu.
Zakłada się, że przeglądanie rekordów przepływu procesu określonego typu odbywa się z poziomu określonej opcji menu lub w określonym kontekście mającym zastosowanie do tego typu pracy. W związku z tym pozycja ta musi być skonfigurowana specjalnie dla poszczególnych typów przepływu procesu. Opcja nawigacji powiązana z tą pozycją powinna odwoływać się do portalu zapytań przeznaczonego do odpytywania rekordów przepływu procesu określonego typu i zarządzania nimi.
Poza standardowymi funkcjami zapytań portal zapytań powinien umożliwiać użytkownikowi wznawianie pracy nad niezakończonym przepływem procesu, jak również przeglądanie danych pobranych w ukończonym rekordzie. Podczas wdrażania tego rodzaju portalu zapytań należy zapoznać się z przykładowym portalem Zapytanie przepływu procesu (F1PRSTRQ), gdzie opisano najważniejsze cechy. Dany produkt może już zawierać portale zapytań dla obsługiwanych typów przepływów procesu. Dodatkowe informacje można znaleźć w dokumentacji produktu użytkownika.