Akcje zaawansowane Workplace to zupełnie nowy poziom wywoływania różnych zadań na instancjach dla użytkownika końcowego platformy Ferryt. To zarówno odrębne, dedykowane procesy, jak i funkcje Workflow pozwalające na przetwarzanie istniejących instancji procesów oraz rejestrów – zarówno indywidualnie, jak i zbiorowo.
W tym artykule przejdziemy krok po kroku od konfiguracji w aplikacji Architect, po wywołanie akcji w Workplace, co pozwoli na zapoznanie się z ogromnymi możliwościami kontroli dostępu – zarówno na poziomie profilu, jak i samego użytkownika końcowego Ferryt.
Czym są Akcje zaawansowane w Ferryt?
Moduł „Akcje zaawansowane” to narzędzie, które ułatwia zarządzanie zadaniami bezpośrednio z poziomu interfejsu. Umożliwia on tworzenie akcji, które automatycznie wykonują procesy lub funkcje workflow na instancjach procesów lub na rekordach danych. Jednym kliknięciem można przypisać wniosek do innego użytkownika lub wysłać serię dokumentów do akceptacji.
Dodatkowo, dla widżetu Lista wniosków, można tworzyć akcje oparte na już istniejących akcjach systemowych, np. Przypisz wniosek, Zwróć wniosek czy Odbierz. W ten sposób można spersonalizować ich nazwy i przypisać im unikalne ikony, by były łatwiejsze do znalezienia i użycia. Akcje zaawansowane są wszechstronne. Można je uruchamiać zarówno na pojedynczych elementach (z menu kontekstowego), jak i na całej grupie zaznaczonych pozycji jednocześnie (z dolnego paska widżetu).

Lokalizacja modułu i podstawowe elementy konfiguracji
Moduł „Akcje zaawansowane” znajduje się w aplikacji Architect w zakładce konfiguracji Workplace. Akcje zaawansowane są z założenia ogólne, niezależnie od typu instancji.
Poza podstawowymi elementami, takimi jak symbol, etykieta czy opis, akcja posiada swój rodzaj (dostępny szereg podstawowych typów systemowych oraz proces i funkcję workflow), sposób prezentacji dla procesu, ikonę oraz kolejność.
Umiejscowienie akcji to z kolei informacja skąd będzie można ją wywołać: z menu kontekstowego na liście dla pojedynczej instancji oraz ze stopki tabeli dla zaznaczonych wielu instancji. Formularz wierszowy został odpowiednio zabezpieczony i dynamicznie ulega modyfikacji, aby użytkownik zawsze miał dostępne te elementy, które są odpowiednie w zależności od wybranego rodzaju akcji.
Warto dodać, że platforma Ferryt dostarcza szereg wbudowanych akcji podstawowych, które – choć nie są widoczne w tym miejscu – pojawiają się w konfiguracji profilu czy widgetów w designerze paneli. Typy te są jednak dostępne i pozwalają na pełną modyfikację zmiany nazwy czy dodania ikony, tak aby mogły być dostosowane do wymagań użytkowników, dzięki czemu można stworzyć własne akcje zaawansowane nadpisujące akcje platformowe.
Akcje typu Proces i Funkcja Workflow
Dla akcji typu Proces oraz Funkcja Workflow należy wskazać odpowiednio stosowny proces lub element reużywalny, tj. funkcję workflow. Stosownie przygotowana logika procesu czy WF powinna uwzględniać przekazywany parametr instances w obiekcie Environment, w którym znajdować się będą identyfikatory instancji na, których dana akcja zaawansowana ma się wydarzyć.

Uprawnienia i zarządzanie dostępem
Konfiguracja akcji na poziomie profilu
Mając przygotowany szereg akcji, czas przejść do uprawnień. Ferryt to złożony system posiadający wielopoziomową konfigurację swoich elementów i tu również jest podobnie. W pierwszej kolejności akcje można dodawać na poziomie profilu. Przy migracji środowiska ze starszych wersji Ferryt dostęp do akcji podstawowych jest odpowiednio kompensowany do listy prostej, dzięki której w sposób jednoznaczny widać, które z nich są dostępne dla danego profilu. Akcje systemowe są tutaj określone jako Akcje podstawowe, zaś pozostałe skonfigurowane przez użytkownika jako Akcje zaawansowane.

Są one rozdzielone dla instancji procesów oraz rejestrów, gdzie dla tych drugich dodatkowo należy wskazać rejestr, do którego dana akcja ma się odnosić. Nie ma ograniczeń co do liczby podpiętych rejestrów, należy jednak pamiętać że samo dodanie akcji do profilu bez podpięcia jej pod rejestr będzie skutkowało brakiem zapisu relacji, a w konsekwencji akcja nie będzie dostępna.
Istotną różnicą w przypadku przypisywanych akcji zaawansowanych dla rejestrów jest brak warunków separacji. Ten obszar będzie możliwy w rozwoju dopiero po wprowadzeniu istotnych zmian w obsłudze cache warunków separacji.
Warunek dostępu
Poza podglądem podstawowych informacji istnieje jeszcze jeden bardzo ważny element konfiguracji, a jest nim Warunek dostępu. Pozwala on na pełniejszą kontrolę nad dostępnością akcji w kontekście wywoływania jej dla konkretnych statusów instancji, wartości rejestrów czy określonych użytkowników.
Należy przygotować odpowiedni Warunek separacji o typie Warunek dostępu dla Akcji workplace, gdyż tylko takie są tutaj widoczne.

Warto również podkreślić możliwość podpięcia dodatkowego warunku separacji dla akcji typu (Rodzaj wyzwalanej akcji) Przypisz wniosek, która nadpisuje domyślną akcję platformy, wyświetlającą listę wszystkich użytkowników mających dostęp do profilu, jak również z profili powiązanych.
W odpowiedzi na zgłaszaną konieczność uzyskania kontroli nad tą listą, dodana została obsługa warunku separacji o typie Ograniczenie listy użytkowników, poprzez podpięcie go w ustawieniach (menu kontekstowe) przypisanej akcji.

Należy zauważyć, że konfiguracja na poziomie profilu w połączeniu z warunkami separacji dla list wniosków daje niemal nieograniczone możliwości określania dostępu do akcji, a mimo to Ferryt wprowadził kolejny poziom kontroli dla widgetów układanych w Designerze paneli dla Workplace.
Każda lista wniosków czy rejestrów może posiadać oddzielny zestaw akcji zarówno podstawowych, jak i zaawansowanych. Określana jest jako whitelista, dla której zaznaczamy interesujące nas akcje, dzięki czemu można przygotować listy read-only, na których użytkownik końcowy nie będzie mógł nic wykonać, jak również wyspecjalizowane listy, gdzie dla poszczególnych statusów dostępne będą konkretne akcje.

Architekt systemu, mając pełną świadomość przepływu procesów i konstruowania stosownych akcji, przy odrobinie wysiłku konfiguracyjnego, może osiągnąć złożoną kontrolę nad tym, co i w jaki sposób ma być przetwarzane indywidualnie lub zbiorczo z poziomu list dostępnych instancji. Przyjrzyjmy się wobec tego, w jaki sposób wygląda wywołanie poszczególnych akcji w Workplace.

Wywoływanie akcji w Workplace
Powyżej widać panel z trzema listami. Pierwsza od góry nie posiada żadnych akcji. W konfiguracji została zapisana pusta lista i żadna akcja nie została dopuszczona do widgetu.
Warto zauważyć, że dostęp do różnych akcji wpływa na inne funkcjonalności, jak np. dostęp do wniosków archiwalnych (poprzez ich wyszukiwanie w panelu filtrującym) czy możliwość wchodzenia w szczegóły poprzez klikanie w numer wniosku lub tzw. pierwszą kolumnę (akcje podglądu i/lub szczegółów wniosku) widoczne na drugiej liście.
Dostępne akcje o podstawowych typach, oprócz automatycznego dodawania ich w menu kontekstowym czy stopce tabeli, można wywoływać bezpośrednio na ikonach instancji (podgląd załączników, zmiana flagi czy wyróżnionych).
Ostatnia lista zawiera dedykowane trzy akcje zaawansowane. Warto zauważyć, że zaznaczanie kolejnych instancji na listach powoduje dynamiczne wyliczanie dostępów do poszczególnych akcji, aby zagwarantować poprawne ich wywoływanie bez błędów wynikających ze specyfiki systemu (np. dostęp do statusu wniosku, czy posiadane uprawnienia użytkownika końcowego). W ramach wyliczanego dostępu do akcji, dla każdej instancji zwracanej z API, uwzględniane są wspomniane wcześniej warunki separacji, dzięki czemu zastosowane ograniczenia mają realny wpływ na możliwość wywołania każdej akcji na liście.
Pozostało przyjrzeć się dwóm najważniejszym akcjom o specjalnym przeznaczeniu, czyli wywołaniu Funkcji Workflow oraz Proces. Ta pierwsza, jeśli wywołana ze stopki dla większej liczby instancji, wyświetli podsumowanie o postępie wywołań oraz komunikat z informacją o jej pomyślnym zakończeniu.
Ze względu na specyfikę oraz możliwości Funkcji Workflow, jej wywołanie odbywa się poprzez Instance Storage, a komunikat jest wyłącznie podsumowaniem pomyślnego – bądź nie – efektu przetwarzania wniosków lub rekordu. Po uruchomieniu akcji, do Funkcji Workflow przekazywany jest identyfikator akcji oraz identyfikator instancji wniosku/rekordu, na którym ma zostać wykonana.
UWAGA: Aby proces/funkcja workflow została wykonana na wskazanych instancjach/rekordach,
konieczne jest użycie w edytorze BPMN obiektu ENV.Instances: IReadOnlyList<string>. Obiekt ten
wskazuje listę identyfikatorów wniosków/rekordów przetwarzanych przez akcje zaawansowane.
Jeśli w widgecie zaznaczymy kilka pozycji,zostanie ona wykonana na każdej z nich, umożliwiając masowe przetwarzanie wniosków. Dla rejestrów nie ma obsługi masowej ze względów bezpieczeństwa oraz ograniczenia losowych modyfikacji rekordów, co mogło by prowadzić do wprowadzania błędnych danych lub nawet ich utraty.

Akcja typu proces to możliwość wywołania dedykowanego procesu, którego celem jest przetworzenie większej liczby instancji procesów lub wybranych rekordów rejestrów. Nic nie stoi na przeszkodzie, aby bezpośrednio ładować dane rekordów do formularza procesu lub robić kalkulacje na podstawie danych dostarczonych z określonego w akcji rekordu rejestru.
Szeroki wachlarz konfiguracji procesu biznesowego BPMN, dostarczany w środowisku Ferryt, daje niemal nieograniczone możliwości przetwarzania danych w sposób szybki, wygodny i wizualnie przyjemny. Nawet wywołanie akcji zaawansowanej można określić – czy ma być przedstawione w formie określonej wielkości modala bezpośrednio nad obszarem roboczym, czy na oddzielnym panelu.

Podsumowanie
Świat cyfrowych procesów pełen jest kliknięć, statusów i decyzji. Akcje zaawansowane w platformie Ferryt to coś więcej niż kolejny przycisk – to inteligentny reżyser, który daje użytkownikowi moc sprawczą dokładnie tam, gdzie jest ona potrzebna. Jak wskazałem, podróż od konfiguracji w aplikacji Architect do finalnego kliknięcia w Workplace, jest drogą ku pełnej kontroli i elastyczności.
Z jednej strony mamy architekta systemu, który niczym rzemieślnik precyzyjnie rzeźbi dostępne narzędzia – od prostych, systemowych funkcji, po złożone procesy i funkcje workflow. Z drugiej, użytkownika końcowego, który otrzymuje interfejs skrojony na miarę, gdzie dynamicznie pojawiające się akcje prowadzą go za rękę, eliminując pomyłki i przyspieszając pracę.
Wielopoziomowy system uprawnień, łączący profile, warunki separacji i białe listy na poziomie widżetów, to gwarancja, że ta moc trafia we właściwe ręce i jest używana w odpowiednim kontekście. Niezależnie od tego, czy chodzi o masową modyfikację setek wniosków jednym kliknięciem, czy o uruchomienie dedykowanego procesu z interaktywnym formularzem – Akcje zaawansowane zamieniają statyczną listę zadań w żyjący, reagujący na potrzeby ekosystem.
Autor: Jan Jarożek – Programista Frontend, Obszar Workplace


