Przejdź do treści

Pozostałe akcje

Budując proces potrzebujemy na poszczególnych krokach wstawić odpowiednie akcje procesowe. Są to zarówno akcje automatyczne wykonywane przez system jak i akcje polegające na integracji z użytkownikiem. Dodawania akcji lub jej wybór przebiega jak na gifie poniżej.


Każdy proces zawiera Zadania (kroki obiegu), Bramki i Ścieżki. Dla każdego Zadania i Bramki należy skonfigurować działanie. Jest to wbudowana czynność, która ma być wykonywana podczas wykonywania etapu procesu. Mamy do wyboru zestaw typów aktywności. Każdy z nich musi być skonfigurowany w rozwijanym menu Ustawienia aktywności znajdującym się w zakładce Ogólne.

Aktywności zostały pogrupowane w zakładki dla łatwiejszej nawigacji.

Przekieruj do URL

Docelowy adres URL po wykonaniu akcji przekierowania. Aby przekierować do innego miejsca w ramach naszego systemu Navigator365 zaczynamy adres url od /app/ jak na obrazku poniżej. Definiujemy ID aplikacji oraz ID formularza używając @mentions (dostępne w Zmiennych środowiskowych). Na końcu wstawiamy albo view (widok podglądu) lub od razu edit (widok edycji). Przykład linku: /app/​ID aplikacji​/form/​ID dokumentu​/edit Wstawienie w tej sytuacji całego adresu url środowiska spowoduje niepotrzebne ponowne załadowanie całej strony.

Aby przekierować na zewnętrzny adres URL wstawiamy cały adres w formacie: https://archman.pl/ i akcja przeniesie nas z systemu Navigator365 do zewnętrzenego adresu.

Wywołaj REST API

To jedna z najtrudniejszych do skonfigurowania akcji. Jeśli zamierzasz jej używać, musisz zrozumieć, jaka stoi za nią technologia. W skrócie, REST API to styl architektury oprogramowania, który opisuje interfejs czyli połączenie między systemami w architekturze klient-serwer przez Internet.

Aby użyć tej akcji, musisz skonfigurować metodę, adres URL usługi i autoryzację. Ponadto, musisz przygotować format JSON (JavaScript Object Notation) z parametrami wywołania usługi. Dane, które uzyskasz lub zmienisz po wywołaniu, zależą od konkretnego interfejsu API.

W ustawieniach aktywności mamy 2 karty do konfiguracji:

Konfiguracja żądania

Metoda żądania HTTP – wybierz metodę spośród PUT, POST, DELETE, PATCH lub GET.

GET – ta metoda służy do żądania (pobierania) danych z określonego źródła. Po wybraniu tej metody wprowadź adres URL usługi API w polu, które pojawi się poniżej ( Adres URL ). Możesz użyć wzmianek (@mentions), aby wybrać wartości dynamiczne dla swojego linku. Jest to przydatne, gdy adres URL usługi API wymaga określonego identyfikatora obiektu. Wynik zapytania API można zapisać w zmiennej procesowej. Można ją wybrać z listy Zapisz rezultat jako zmienną. Domyślnie ta lista jest pusta. Aby pojawiły się na niej wartości, należy utworzyć zmienną w zakładce Zmienne procesowe i wybrać odpowiedni typ danych. Więcej informacji na temat zmiennych globalnych można znaleźć w tym artykule .

DELETE – ta metoda służy do usuwania określonego zasobu. Konfiguracja dla tej metody jest podobna do metody GET, wyjaśnionej powyżej.

POST – ta metoda służy do wysyłania danych do serwera w celu utworzenia/aktualizacji zasobu. Po wybraniu tej metody wprowadź adres URL usługi API w polu, które pojawi się poniżej ( Adres URL ). Możesz użyć wzmianek (@) do wyboru dynamicznych wartości dla swojego łącza. Następnie możesz wybrać między dwoma sposobami dostarczenia treści (lista typów zawartości).

Pierwsza opcja to Json (tekst). Gdy wybierzesz tę opcję, możesz wprowadzić żądanie w formacie JSON w polu Zawartość JSON, które pojawi się poniżej. Możesz użyć @mentions do wyboru dynamicznych wartości dla swojego żądania JSON. Druga opcja Json (twórca) aktywuje pole Szablon do wypełnienia. Gdy raz wprowadzisz szablon (przykładową odpowiedź dla naszego zapytania z adresu URL usługi), użytkownik może nacisnąć przycisk Pobierz z szablonu. Spowoduje to utworzenie wzmianek do pól obiektów i wartości wymaganych do przygotowania żądania JSON. Muszą one pasować do danych, których oczekuje interfejs API. Wynik zapytania API można przechować w zmiennej procesowej. Możesz ją wybrać z listy Zapisz rezultat jako zmienną. Domyślnie lista jest pusta. Aby wartości pojawiły się w niej, musisz utworzyć zmienną w zakładce Zmienne procesowe i wybrać odpowiedni typ danych.

PUT – ta metoda służy do wysyłania danych do serwera w celu utworzenia/aktualizacji zasobu. Różnica między metodami POST a PUT polega na tym, że żądania PUT są idempotentne. Oznacza to, że wielokrotne wywołanie tego samego żądania PUT zawsze da ten sam wynik. W przeciwieństwie do tego, wielokrotne wywołanie żądania POST ma skutek uboczny polegający na wielokrotnym utworzeniu tego samego zasobu. Konfiguracja dla tej metody jest podobna do metody POST, wyjaśnionej powyżej.

PATCH – ta metoda służy do stosowania częściowych modyfikacji zasobu. Konfiguracja dla tej metody jest podobna do metody POST, wyjaśnionej powyżej.


Autoryzacja

Niezależnie od wybranej metody, ta karta będzie dostępna po prawej stronie karty Konfiguracja zapytania. Domyślnie pole Typ autoryzacji jest ustawione na BRAK.

Typ autoryzacji:

BRAK – ten typ autoryzacji powinien być wybrany, gdy wybrane API nie wymaga poświadczeń do pomyślnego wykonania.

Podstawowy/Basic – ten typ autoryzacji powinien być wybrany, gdy wybrane API wymaga nazwy użytkownika i hasła do pomyślnego wykonania.

Token – to najbardziej zaawansowana forma poświadczeń. Możesz albo wprowadzić token ręcznie, albo wzmiankować go z innego miejsca w systemie, gdzie jest bezpiecznie przechowywany pod atrybutem typu Hasło API (po wybraniu Pobierz z API). Jeśli wybierzesz drugą opcję, dodatkowe pola pojawią się w formularzu. Niezależnie od metody użytkownik musi zażądać lub wygenerować token ze źródłowej usługi API.

Klucz API – konfiguracja zawiera nazwę klucza Api i wartość. Należy też wybrać sposób dodawania tego klucza w zapytaniu do Nagłówka lub jako Parametry zapytania.

Informacje jaki typ autoryzacji jest wymagany po drugiej stronie i jakie wartości należy przesyłać należy znaleźć w dokumentacji serwisu API, z którym się chcemy połączyć.

Zapytaj AI

Akcja pozwala wysłać zapytania do wybranego modelu LLM

Parametry akcji:

Model AI : Wybór predefiniowanego modelu AI. Można podpiąć system do ogólnodostępnych modeli typu ChatGPT lub do lokalnych instalacji.

Instrukcja systemowa : Instrukcje dla AI określające, jak powinno się zachować odpowiadając na zapytanie użytkownika. Te instrukcje kształtują styl, format i podejście odpowiedzi AI.

Zapytanie użytkownika : Pytanie, które zostanie wysłana do AI.

Pliki do analizy : W tym miejscu można wskazać załączniki do uwzględnienia w analizie AI. AI będzie w stanie przetworzyć i odwołać się do informacji z tych plików podczas generowania odpowiedzi.

Wzorzec odpowiedzi : Określenie struktury JSON, w której odpowiedź AI powinna zostać zapisana do wykorzystania w kolejnych akcjach.

Loguj informacje

Akcja pozwala na zapisanie informacji o wykonaniu procesu do logu

Wykonaj SQL

Akcja umożliwia wykonanie zapytania SQL do bazy danych i wykorzystanie wyników w kolejnych krokach procesu. Obsługuje wbudowaną bazę Navigatora (tylko odczyt) oraz zewnętrzne bazy PostgreSQL i MSSQL. Wspiera zapytania parametryzowane oraz tryb testowy do podglądu wyników i generowania schematu kolumn.

Typ połączenia

Wybierz typ bazy danych, z którą chcesz się połączyć:

  • Baza Navigatora — wbudowana baza systemu. Nie wymaga dodatkowej konfiguracji — connection string jest pobierany automatycznie z ustawień aplikacji.
  • PostgreSQL — zewnętrzna baza PostgreSQL. Wymaga podania connection stringa.
  • MSSQL — zewnętrzna baza Microsoft SQL Server. Wymaga podania connection stringa.

Ważne

Akcja Wykonaj SQL nie ogranicza typu wykonywanych zapytań. Możliwe jest wykonanie dowolnego polecenia SQL (SELECT, INSERT, UPDATE, DELETE), na jakie pozwalają uprawnienia użytkownika bazy danych skonfigurowanego w connection stringu. Upewnij się, że konto bazodanowe ma wyłącznie niezbędne uprawnienia — szczególnie w przypadku bazy Navigatora, gdzie nieautoryzowane modyfikacje mogą uszkodzić dane systemowe.

Connection string

Widoczny tylko dla PostgreSQL i MSSQL. Podaj parametry połączenia do bazy danych. Możesz używać zmiennych procesowych (mentionsów), aby bezpiecznie przekazywać dane logowania.

Przykład dla PostgreSQL:

Host=myserver;Port=5432;Database=mydb;Username=myuser;Password=mypassword;

Przykład dla MSSQL:

Data Source=myserver;Initial Catalog=mydb;User ID=myuser;Password=mypassword;TrustServerCertificate=true;

Zapytanie SQL

Wpisz zapytanie SQL do wykonania. Używaj @nazwaParametru dla parametrów zapytania — składnia jest taka sama zarówno dla PostgreSQL, jak i MSSQL. Parametry są automatycznie wykrywane i dodawane do tabeli parametrów poniżej.

Przykład:

SELECT * FROM users WHERE surname = @surname AND age > @minAge

Uwaga

Dla bazy Navigatora dozwolone są wyłącznie zapytania odczytujące (SELECT). Próba wykonania INSERT, UPDATE lub DELETE zakończy się błędem.

Tabela parametrów

Lista parametrów wykrytych automatycznie w zapytaniu SQL. Dla każdego parametru możesz ustawić:

Kolumna Opis
Nazwa Nazwa parametru wykryta z zapytania (np. surname z @surname). Pole tylko do odczytu.
Zmienna procesowa Zmienna z procesu, której wartość zostanie podstawiona w trakcie wykonania.
Typ danych Typ danych parametru. Określa konwersję na typ bazodanowy (patrz tabela poniżej).
Wartość domyślna Wartość używana podczas testowego uruchomienia zapytania.

Mapowanie typów danych na typy bazodanowe:

Typ parametru PostgreSQL MSSQL
Text text nvarchar
Integer integer int
Big Integer bigint bigint
Decimal numeric decimal
Boolean boolean bit
DateTime timestamptz datetime2
Date date date
Time time time
UUID uuid uniqueidentifier
JSON jsonb nvarchar

Tryb wyniku

Określa sposób zwracania i przechowywania wyniku zapytania:

  • Wartość skalarna — zwraca pojedynczą wartość z pierwszej kolumny pierwszego wiersza (np. SELECT COUNT(*)).
  • Pojedynczy wiersz — zwraca pojedynczy obiekt z pierwszego wiersza. Użyj dla zapytań zwracających zawsze jeden wiersz (np. SELECT ... WHERE id = @id).
  • Wiele wierszy — zwraca tablicę obiektów. Użyj, gdy zapytanie może zwrócić wiele wierszy (np. SELECT * FROM users). Wynik można iterować w akcji Pętla.

Limit czasu zapytania

Maksymalny czas w sekundach na wykonanie zapytania. Po przekroczeniu zapytanie zostanie anulowane, a akcja zakończy się błędem. Domyślnie: 30 sekund. Pozostaw puste, aby użyć wartości domyślnej.

Testowanie zapytania

Sekcja testowa pozwala na uruchomienie zapytania z wartościami domyślnymi z tabeli parametrów przed wdrożeniem procesu.

Po kliknięciu Uruchom zapytanie testowe:

  • Zapytanie zostanie wykonane z wartościami domyślnymi
  • Wygenerowany zostanie schemat kolumn — dzięki niemu kolumny wynikowe będą dostępne jako zmienne w kolejnych krokach procesu

Schemat kolumn

Aby zmienne wynikowe były dostępne w kolejnych akcjach, konieczne jest przynajmniej jednokrotne pomyślne uruchomienie zapytania testowego. Data ostatniego pomyślnego testu jest wyświetlana w sekcji testowej.

Pobierz dane z bazy danych

Ta akcja może pobierać określone dane z bazy danych SQL i zapisywać je jako zmienną procesową. Aby z niej skorzystać, najpierw musisz uzyskać ciąg połączenia do wymaganej bazy danych. Poproś administratorów systemu serwerowego o te szczegóły. Ponieważ jest to opcja Low-Code, użytkownik/administrator musi mieć dostęp do SQL Server Management Studio. Wartości takie jak Nazwa serwera i Nazwa bazy danych można znaleźć w eksploratorze obiektów bazy danych w zakładce Właściwości i Połączenie. Możesz użyć tych danych do utworzenia ciągu połączenia. Można również uzyskać wymagany ciąg połączenia z pliku web.config w katalogu głównym Twojej aplikacji internetowej.

Ciągi połączeń składają się z kilku par klucz-wartość, które dostarczają informacji o sposobie połączenia z bazą danych SQL. Najczęstsze to Serwer, Baza danych, ID użytkownika i Hasło w przypadku standardowego połączenia zabezpieczeń. Jednak nie zaleca się przechowywania haseł bezpośrednio we właściwościach akcji. Dla zaufanych połączeń, takich jak Twoja baza danych Navigator365 oparta na Twoim serwerze, używamy DataSource, Database, Integrated Security i TrustServerCertificate. Przykład połączenia z własną bazą danych: Data Source=.;Database=fructon_nav_365;Integrated Security=True;TrustServerCertificate=True.

W poleceniu SQL musimy wprowadzić zapytanie napisane w języku SQL. Dobrą praktyką jest najpierw przetestowanie go w SQL Server Management Studio. Na koniec wybieramy zmienną, do której mają być zapisane dane dla przyszłego wykorzystania.

Utwórz JSONA

Akcja służy do tworzenia JSON-a. Dzięki niej możemy zbudować strukturę którą potem możemy wykorzystać w innych akcjach.

Parametry akcji:

Metoda tworzenia : Do wyboru mamy Brak, JSON (tekst) JSON (kreator)

Zawartość : Pole pojawia się jeżeli wybrana została opcja JSON (tekst). Możemy tu wkleić szablon JSONA i uzupełnić pola mentionsami. Warto zaznaczyć, że przy tej metodzie mamy problem z tabelami czy listami, nie ma mechanizmu który pozwoli na dodanie ich do JSON-aw tej metodzie.

Szablon : Pole pojawia się jeżeli wybierzemy opcję JSON (kreator). Na podstawie szablonu system może zbudować kreator JSON-a poprzez wskazanie kluczy i wartości

Pola : Struktura pojawia się gdy wybierzemy opcję JSON (kreator). Wystarczy wskazać pola formularza do klucza by przypisać wartość. Tu możemy bez problemu obsłużyć listy i

Zapisz wynik jako globalną zmienną : Wskazanie zmiennej, w której zostanie

Połącz JSON

Ta akcja umożliwia manipulowanie plikami JSON. Gdy korzystasz z wywołania REST API do integracji dwóch systemów, często otrzymujesz dane w formacie JSON z jednego systemu i zmieniasz je w drugim systemie. Na przykład dodaj wpis do listy i zwróć go do pierwszego systemu.

Ta akcja pozwala na scalenie dwóch JSON-ów, dzięki czemu możesz przygotować dane w Navigator365, połączyć je z danymi pobranymi z innego systemu, a następnie przesłać z powrotem.

Akcja ma 4 opcje łączenia JSON z różnymi rezultatami:

Dołącz WSZYSTKIE wartości – łączy tablice. Tworzy nowy JSON zawierający wszystkie elementy z obu plików w kolejności ich pojawienia się.

Dołącz wartości, pomijając zduplikowane – łącze tablice, pomijając istniejące elementy, aby uniknąć duplikatów.

Zamień wszystkie wartości – całkowicie zastępuje wszystkie elementy tablicy nowymi wartościami.

Zamień wartości z zachowaniem kolejności – łączy elementy tablicy na podstawie indeksu. Stosuje niestandardową logikę opartą na określonym kluczu lub właściwości.

Generuj kod QR

Akcja służy do generowania kodów QR. Konfiguracja:

Dane

Zawartość kodu QR jest oparta na zawartości pola z formularza.

Szerokość

Określa szerokość obrazu kodu QR w pikselach (Jeśli jest pusta, użyta zostanie wartość domyślna)

Format wyjściowy

Użytkownik wybiera format pliku do generowanego kodu (JPG, PNG, SVG, WEBP)

Logo

Użytkownik ma możliwość personalizowania kodu poprzez dodanie logo do QR. Po odznaczeniu pola pojawia się pole wyboru pliku z dysku.

Na koniec definiujemy gdzie ma zostać zapisany powstały kod. Możliwe jest zapisanie go w określonej lokalizacji w formularzu (pole typu załączniki) lub w zmiennych procesowych, które mogą zostać wykorzystane później.

Generuj kod kreskowy

Akcja służy do generowania kodów kreskowych. Konfiguracja:

Rodzaj kodu kreskowego

Użytkownik ma do wyboru listę najczęściej stosowanych kodów kreskowych: UPC-A, UPC-E, EAN-8, EAN-13, Codabar, Code 39, Code 93, Code 128, ITF (Przeplatany 2 z 5), RSS-14, RSS Expanded, Plessey.

Dane

Zawartość kodu kreskowego jest oparta na zawartości pola z formularza.

Drukuj dane

Użytkownik decyduje, czy wyświetlić zakodowane dane poniżej kodu kreskowego na wydruku.

Szerokość

Określa szerokość kodu w pikselach (Jeśli jest pusta, użyta zostanie wartość domyślna).

Wysokość

Określa wysokość kodu w pikselach (Jeśli jest pusta, użyta zostanie wartość domyślna).

Margines

Ustawia poziomy margines (w pikselach) dla kodu kreskowego. To przestrzeń po obu stronach kodu kreskowego.

Format wyjściowy

Użytkownik wybiera format pliku do generowanego kodu (JPG, PNG, SVG, WEBP).

Na koniec definiujemy gdzie ma zostać zapisany powstały kod. Możliwe jest zapisanie go w określonej lokalizacji w formularzu (pole typu załączniki) lub w zmiennych procesowych, które mogą zostać wykorzystane później.