Tworzenie obiegu (workflow)¶
Czym jest obieg?¶
Obieg to kluczowy element zarządzania dokumentami. Procedura obiegu to sformalizowana ścieżka, po której w firmie krążą pisma. Poszczególne kroki procedury odpowiadają działaniom, na przykład zatwierdzeniu przez przełożonego.
Ponadto, w NAVIGATOR365 działania mogą być użyte do realizowania prostych zadań, takich jak tworzenie dokumentu, kopiowanie lub ustawianie wartości pól dokumentu, generowanie pliku i wysyłanie go pocztą w ramach procedury obiegu. Po zaprojektowaniu obiegu można go przypiąć do atrybutu przycisku i uruchomić automatycznie podczas tworzenia dokumentu.
Obieg składa się z Aktywności (działań-kroków) oraz przejść między aktywnościami (ścieżkami). Aby stworzyć proces trzeba narysować graf działań i ścieżek, następnie skonfigurować każdy z nich za pomocą notacji BPMN.
Karta Ustawienia¶
Na tej karcie znajdziesz krótki formularz z kilkoma polami.
W polu Nazwa możesz wpisać, jak proces powinien się nazywać. Dobrze jest, jeśli tytuł jest krótki i wskazuje główny cel tworzonego procesu.
W polu Opis możesz wprowadzić dodatkowe informacje na temat procesu. Możesz tutaj napisać więcej na temat celów czy uczestników. Takie notatki są przydatne dla innych administratorów systemu, aby zrozumieć cel.
Pole Tagi służy do oznaczania dowolnych kategorii, porządkowania i filtrowania procesów w złożonych aplikacjach.
Można dodawać własne tagi oraz edytować ich nazwę, wygląd i opis klikając ikonę edycji. Dodane tagi są dostępne we wszystkich aplikacjach w ramach tej instancji systemu. Tagi wybrane w tym polu będą widoczne na liście procesów, w kolumnie Tagi.
Pole wyboru Wykonaj asynchronicznie pozwala zdeklarować, że proces będzie wykonywany w tle. Podczas wykonywania procesu będziesz mógł korzystać z systemu (nie pojawi się pasek oczekiwania).
W grupie Źródło danych znajdziesz rozwijaną listę Formularze, gdzie możesz połączyć swój proces z formularzem. Teraz możesz używać danych powiązanych z polami wybranego formularza do konfiguracji swojego procesu.
Dostępność elementu: w NAVIGATOR365 procesy są przypisane do aplikacji i domyślnie nie mogą być używane poza tą aplikacją. Jeśli istnieje potrzeba użycia procesu w innej aplikacji, musisz zmienić tę opcję.
Dostępne są trzy opcje:
Prywatny – proces może być używany tylko w tej aplikacji (domyślnie).
Publiczny – proces może być używany we wszystkich aplikacjach, nawet tych tworzonych w przyszłości.
Udostępniony aplikacjom – najczęstsza i zalecana opcja ze względów bezpieczeństwa. Możesz określić listę aplikacji, w których ten proces będzie dostępny. Zauważ, że jeśli później dodasz nową aplikację i chcesz użyć w niej tego procesu, musisz udostępnić go tej nowej aplikacji.
Konfiguracja wyzwalacza¶
Wyzwalacz określa, w jaki sposób i kiedy proces zostanie automatycznie uruchomiony. Dostępne typy wyzwalaczy zależą od tego, czy proces jest połączony z formularzem.
| Formularz | Dostępne wyzwalacze |
|---|---|
| Niepodpięty | Brak, Harmonogram, Webhook |
| Podpięty | Brak, Po utworzeniu dokumentu, Po aktualizacji dokumentu, Po utworzeniu lub aktualizacji dokumentu, Przed usunięciem dokumentu |
Brak¶
Domyślny typ wyzwalacza. Proces nie jest uruchamiany automatycznie — można go uruchomić:
- ręcznie z poziomu przycisku na formularzu
- z poziomu innego procesu
- z menu aplikacji
Wyzwalacze dokumentowe¶
Wyzwalacze dokumentowe pozwalają na automatyczne uruchomienie procesu w reakcji na operacje wykonywane na dokumentach w przypisanym formularzu.
Wymagania
Aby skorzystać z wyzwalacza dokumentowego, proces musi mieć przypisany formularz w sekcji Źródło danych.
Dostępne typy:
-
Po utworzeniu dokumentu — proces zostanie uruchomiony automatycznie po zapisaniu nowego dokumentu w przypisanym formularzu.
-
Po aktualizacji dokumentu — proces zostanie uruchomiony automatycznie po zapisaniu zmian w istniejącym dokumencie.
-
Po utworzeniu lub aktualizacji dokumentu — połączenie dwóch powyższych wyzwalaczy. Proces reaguje zarówno na utworzenie, jak i na aktualizację dokumentu — nie trzeba tworzyć dwóch oddzielnych procesów.
-
Przed usunięciem dokumentu — proces zostanie uruchomiony przed usunięciem dokumentu. Dotyczy to zarówno przeniesienia do kosza (soft delete), jak i trwałego usunięcia dokumentu, który nie był wcześniej w koszu.
Ograniczenia wyzwalacza „Przed usunięciem”
- Proces jest zawsze wykonywany synchronicznie — usunięcie dokumentu nastąpi dopiero po zakończeniu procesu.
- Opcja Wykonaj asynchronicznie nie może być włączona dla tego typu wyzwalacza.
- W przypadku wystąpienia błędu na procesie, dokument nie zostanie usunięty.
Ochrona przed duplikacją:
Jeśli dokument jest tworzony lub aktualizowany z jednoczesnym uruchomieniem procesu (np. przez przycisk z podpiętą procedurą), ten sam proces nie zostanie uruchomiony podwójnie — system automatycznie wykluczy duplikację.
Dodatkowo, jeśli dla danego dokumentu i procedury istnieje już aktywny obieg (w toku, oczekujący na użytkownika itp.), nowy obieg z wyzwalacza nie zostanie uruchomiony ponownie.
Dobre praktyki
- Na jednym formularzu można podpiąć wiele procesów z różnymi wyzwalaczami — system uruchomi wszystkie pasujące.
Ograniczenia wyzwalaczy
- Wyzwalacze dokumentowe reagują wyłącznie na operacje wykonywane przez użytkownika z poziomu interfejsu.
- Operacje wykonywane wewnątrz procesów (np. akcja „Zmień wartość pola" lub „Usuń dokument") nie uruchamiają wyzwalaczy — zapobiega to niechcianym reakcjom łańcuchowym.
Harmonogram¶
Harmonogram pozwala na cykliczne uruchamianie procesu w określonych odstępach czasu.
Wymagania
Aby skorzystać z harmonogramu, proces nie może mieć przypisanego formularza. Proces uruchomiony harmonogramem działa niezależnie od konkretnego dokumentu.
Po dodaniu zadania (możesz dodać więcej niż jedno zadanie dla każdego procesu), zobaczysz kilka pól potrzebnych do konfiguracji.
W polu Nazwa zadania możesz wpisać nazwę swojego zaplanowanego zdarzenia. Dobrze jest, jeśli tytuł wskazuje, dlaczego zostało utworzone zaplanowane zdarzenie i jaki proces jest z nim związany.
Jest to ważne, ponieważ informacje o aktywnych harmonogramach są dostępne gdzie indziej dla administratora systemu (System–>Dzienniki (logs)–>Aktywne zaplanowane procesy).
Zaznaczenie pola wyboru Aktywne oznacza, że zaplanowane zdarzenie powinno być włączone i działać lub wyłączone, gdy nie jest zaznaczone.
Tryb powtórzenia wraz z opcją „Powtórz zadanie co" definiuje cykle uruchamiania procesu. Obecnie możesz wybrać spośród sześciu dostępnych opcji:
| Tryb | Opis |
|---|---|
| MINUTOWO | Zadanie powtarza się co wybraną liczbę minut, rozpoczynając od godziny w polu Uruchom o. |
| GODZINOWO | Zadanie powtarza się co wybraną liczbę godzin, rozpoczynając od godziny w polu Uruchom o. |
| DZIENNIE | Zadanie uruchamiane co wybraną liczbę dni. |
| TYGODNIOWO | Zadanie uruchamiane w wybranych dniach tygodnia, w ustalonym cyklu tygodniowym. Np. cykl „2 tygodnie" + wtorek i czwartek → co dwa tygodnie we wtorki i czwartki. |
| MIESIĘCZNIE | Zadanie uruchamiane w wybrany dzień miesiąca, w ustalonym cyklu miesięcznym. Np. cykl „2 miesiące" + 10. dzień → co dwa miesiące, 10. dnia miesiąca. |
| ROCZNIE | Zadanie uruchamiane w wybrany dzień i miesiąc, w ustalonym cyklu rocznym. Np. cykl „2 lata" + 10 stycznia → co dwa lata, 10 stycznia. |
Pole typu Data i czas Uruchom o przechowuje informacje, kiedy rozpocznie się harmonogram.
Wybierając jedną z opcji na rozwijanej liście Zakończ, możesz zdecydować, czy proces ma być zatrzymany, a jeśli tak, to kiedy:
| Opcja | Opis |
|---|---|
| NIGDY | Cykl będzie powtarzany, dopóki nie zostanie wyłączony (odznaczenie pola Aktywny). |
| DATA I GODZINA | Harmonogram zostanie zatrzymany po osiągnięciu wybranej daty końcowej. |
| PO | Harmonogram zostanie zatrzymany po wybranej liczbie wykonanych zadań (pole Liczba powtórzeń). |
Jeśli musisz zaktualizować zaplanowane zdarzenie, po prostu zmień szczegóły i zapisz proces.
Webhook¶
Proces można uruchomić za pomocą zewnętrznego systemu dzięki webhookom. Umożliwia integrację Navigator365 z innymi aplikacjami bez konieczności bezpośredniego dostępu do interfejsu użytkownika.
Wymagania
Aby skorzystać z webhooka, proces nie może mieć przypisanego formularza.
Konfiguracja
Gdy typ zostanie wybrany jako Webhook, system wyświetli:
- Metoda HTTP:
POST(automatycznie ustawiona) - Webhook URL: Unikalny adres do wywołania procesu z systemów zewnętrznych
- Zmienna wejściowa webhooka (opcjonalnie): Wybór zmiennej, do której zostanie przypisana zawartość przesłana w ciele żądania
- Zmienna odpowiedzi webhooka (opcjonalnie, tylko dla webhooków synchronicznych): Wybór zmiennej, której wartość zostanie zwrócona jako odpowiedź
- Klucze API: Zarządzanie kluczami do uwierzytelniania żądań webhoka
Zmienna wejściowa webhooka
Określa zmienną procesu, w której zostaną zapisane dane odebrane w żądaniu webhooka.
Cała treść żądania HTTP (np. JSON) zostanie zapisana do wybranej zmiennej i będzie dostępna w kolejnych krokach procesu.
Przykład
Jeśli webhook otrzyma:
{
"userId": 15
}
dane zostaną zapisane do wskazanej zmiennej procesu.
Zmienna odpowiedzi webhooka
Określa zmienną procesu, której wartość zostanie zwrócona jako odpowiedź webhooka.
Proces może przetworzyć dane wejściowe, pobrać dodatkowe informacje lub przygotować wynik, a następnie zwrócić go w odpowiedzi HTTP.
Przykład
Proces może na podstawie userId pobrać dane użytkownika i zwrócić:
{
"firstName": "Jan",
"lastName": "Kowalski",
"email": "jan@example.com"
}
Jeśli zmienna odpowiedzi jest typem prostym (np. liczba całkowita, tekst lub wartość logiczna), jej wartość zostanie zwrócona bez dodatkowej struktury JSON.
Przykład dla liczby całkowitej:
260
Kody odpowiedzi
| Kod | Znaczenie |
|---|---|
200 OK |
Proces uruchomiony i zakończył się sukcesem. Jeśli skonfigurowana zmienna odpowiedzi webhooka, w ciele zawarta będzie jej wartość. |
400 Bad Request |
Żądanie zawiera błędy |
401 Unauthorized |
Klucz dostępu API jest nieprawidłowy lub go brakuje. |
404 Not Found |
Proces o podanym identyfikatorze nie istnieje. |
500 Internal Server Error |
Proces uruchomił się, ale zakończył się błędem. |
Klucze dostępu API
Webhooki można zabezpieczyć za pomocą kluczy dostępu API. Każdy klucz ma unikalną wartość, którą należy przesłać w nagłówku X-API-Key każdego żądania.
Retencja¶
Retencja pozwala na automatyczne usuwanie zakończonych instancji procesu po upływie zdefiniowanego okresu przechowywania.
Zasada domyślna
Retencja jest domyślnie wyłączona dla wszystkich procesów. Istniejące i nowe procesy działają dokładnie tak samo jak dotychczas — dopóki administrator świadomie jej nie włączy.
Kafelek Retencja znajduje się bezpośrednio pod kafelkiem Konfiguracja wyzwalacza w ustawieniach procesu i zawiera trzy pola:
- Włącz retencję — pole wyboru (domyślnie odznaczone). Po zaznaczeniu aktywuje mechanizm automatycznego usuwania i odkrywa pole okresu przechowywania.
- Okres przechowywania — widoczne tylko gdy retencja jest włączona. Określa, przez ile dni zakończona instancja jest przechowywana w systemie przed automatycznym usunięciem. Wartość domyślna: 30 dni. Minimalna dozwolona wartość: 1 dzień.
- Włącz ochronę najnowszych instancji — widoczne tylko gdy retencja jest włączona. Po zaznaczeniu odkrywa pole minimalnej liczby instancji.
- Minimalna liczba instancji — widoczne tylko gdy ochrona najnowszych instancji jest włączona. Określa ile najnowszych zakończonych instancji (licząc od najnowszego wykonania) zostanie ochronionych przed automatycznym usunięciem. Minimalna dozwolona wartość: 1.
Jak działa ochrona najnowszych instancji
Gdy minimalna liczba instancji jest ustawiona, mechanizm retencji zawsze zachowuje N najnowszych zakończonych instancji procesu — nawet jeśli przekroczyły już okres przechowywania. Starsze instancje ponad ten limit są usuwane normalnie zgodnie z okresem przechowywania.
Ograniczenia retencji
- Retencja działa wyłącznie na zakończonych instancjach procesu — instancje aktywne (w toku) nigdy nie są usuwane przez ten mechanizm.
- Włączenie retencji na istniejącym procesie nie usuwa natychmiast dotychczasowych instancji — mechanizm obejmuje tylko instancje, które wejdą w okres przechowywania od momentu aktywacji.
Dobre praktyki
- Przed ustawieniem krótkiego okresu przechowywania (np. 1–7 dni) upewnij się, że dane z instancji są archiwizowane innymi metodami, jeśli są wymagane dla celów raportowania lub zgodności z przepisami.
- Każdy proces ma niezależną konfigurację retencji — zmiana ustawień jednego procesu nie wpływa na pozostałe.
- Jeśli zależy ci na zachowaniu określonej liczby ostatnich wykonań dla celów audytowych, ustaw minimalną liczbę instancji jako dodatkowe zabezpieczenie.
**
Diagram¶
Na tej karcie możesz zaprojektować schemat procesu. W N365 używamy BPMN, więc jeśli znasz tę notację, diagram będzie wyglądał znajomo.
Aby zacząć dodawać kroki procesu, przeciągnij dowolny element jak zdarzenie początkowe, bramka logiczna lub zadanie. Po wstawieniu elementu na pole diagramu pojawi się automatycznie ekran wyboru rodzaju akcji do użycia na kroku. Wybór akcji jest skategoryzowany i posiada podstawowy opis, co ułatwia wybór odpowiedniej opcji.
Po dodaniu zadania do procesu możemy dalej zmienić jego funkcję np. z aktywności użytkownika na akcję zmiany pól. Aby stworzyć ciąg dalszy procesu kontynuujemy w sposób pokazany na gifie poniżej.
Najprostszy diagram składa się z zadania i ścieżki. Każde zadanie reprezentuje pojedyncze działanie. Jeśli potrzebujesz czegoś bardziej złożonego, możesz użyć specjalistycznych elementów takich jak:
- Zdarzenie początkowe – specjalne zadanie, które jest pierwszym wykonywanym w procesie. Możesz użyć tylko jednego zdarzenia początkowego. W N365 takie zdarzenie jest używane do konfiguracji odpowiedniego widoku formularza dla nowego dokumentu. Jeśli nie ma potrzeby zmiany widoku początkowego dokumentu, możliwe jest uruchomienie obiegu z zadaniem (wtedy zdarzenie początkowe jest opcjonalne).
- Zdarzenie końcowe – specjalne zadanie, które kończy proces. Możesz mieć tyle zdarzeń zakończenia, ile chcesz. W N365 jest używane do konfiguracji widoku dokumentu po zakończeniu procesu. Na przykład można skonfigurować widok dokumentu w taki sposób, że nikt nie będzie mógł go edytować po zakończeniu procesu.
- Zadanie – najważniejsze wydarzenie w projektowaniu obiegu. Zadanie tworzy główną logikę kroku obiegu. Zadanie może opierać się na akcji użytkownika, w którym rzeczywista osoba musi podjąć decyzję lub zaakceptować zdarzenie. Zadanie może być również automatyczną akcją wykonywaną przez system.
- Bramka logiczna – specjalne zadanie, które ocenia wartość logiczną i kieruje proces do określonej ścieżki.
- Tor – ten element służy do lepszego zobrazowania procesu. Każdy tor reprezentuje Uczestnika w Procesie i jest używany jako kontener graficzny dla zestawu procesów wykonywanych przez uczestnika.
Aby skonfigurować któryś element, trzeba dwukrotnie w niego kliknąć. Po prawej stronie pojawi się interfejs z konfiguracją.
Zmienne procesowe¶
Zmienne procesu są używane do przesyłania danych z jednego zadania do drugiego. Zazwyczaj są używane wraz z akcją Wywołaj REST API, by przygotować dane do wysłania do obcego interfejsu API lub do pobrania danych z odpowiedzi API. Istnieje specjalny typ zmiennej JSON, który można użyć do przygotowania bardziej skomplikowanych zbiorów danych. Zmienna może być również polem tekstowym, liczbą całkowitą, liczbą dziesiętną, datą, datą i czasem oraz plikiem.
Aby użyć zmiennej, musisz ją zadeklarować na tej karcie. Pamiętaj, aby wybrać odpowiedni typ zmiennej. Po zapisaniu procesu możesz użyć zmiennej za pomocą drzewa wzmianek.
Możesz wybrać typ danych spośród kilku dostępnych:
| Typ | Opis |
|---|---|
| POLE TEKSTOWE | Przechowuje dane tekstowe w postaci łańcucha (varchar). |
| LICZBA CAŁKOWITA | Przechowuje liczby całkowite (integer). |
| LICZBA DZIESIĘTNA | Przechowuje liczby zmiennoprzecinkowe. |
| DATA I CZAS | Przechowuje dane w formacie daty i czasu. |
| DATA | Przechowuje dane w formacie daty (bez czasu). |
| JSON | (JavaScript Object Notation) Przechowuje bardziej złożone dane w specjalnej notacji dla łatwej wymiany i transportu danych między instancjami. |
| PLIK | Przechowuje dane w strukturze plikowej. |
| PLIKI | Kolekcja plików. |
Historia¶
Na tej karcie znajdziesz dziennik (log) użycia procesu w indywidualnych obiegach dokumentów. Informacje zostały podzielone na 4 kolumny: Data rozpoczęcia (kiedy proces został rozpoczęty), rozpoczęte przez (kto rozpoczął proces), czas trwania (czas trwania procesu) i status (ostatni status obiegu).
Informacje te mogą być pomocne przy podejmowaniu decyzji o modyfikacji lub usunięciu procesu.
Jedną z opcji historii obiegu jest możliwość podglądu stanu zmiennych procesowych. Rozwijając krok procesu, możemy podejrzeć stan zmiennych procesowych po przejściu tego kroku.
Zależności¶
Na tej karcie znajdziesz informacje o tym, jakie elementy aplikacji wykorzystują proces. Na podstawie tych informacji aplikacja może zablokować intencjonalne lub przypadkowe usunięcie powiązanego elementu.
Klikając na jeden z elementów na liście, możesz przejść do powiązanego elementu. Jest to pomocne, gdy musisz dowiedzieć się, czy blokada, o której wspomniano wcześniej, jest konieczna, czy też odniesienie jest powiązane z aktywnym i używanym elementem.