Bloczek typu czynność, zadanie
Bloczek typu czynność, zadanie
Bloczek ten składa się z następujących zakładek:
- Ogólne
- Akcje
- Właściwości (deprecated Jeżeli potrzebujesz właściwości użyj globalnych właściwości procedury)
- Przypisania
- Dane wejściowe
Ogólne
Uzupełniamy pola:
- Stanowisko – opcjonalne pole wyboru pracownika / stanowiska odpowiedzialnego za dany etap procedury (Możliwe do wykonania również poprzez Przypisania, o czym będzie mowa później).
- Nazwa – nazwa etapu wyświetlana na szarfie procedury.
- Typ – typ elementu: USER – do wykonania przez użytkownika, SYS – do wykonania przez system.
- Czas trwania – Czas trwania danego etapu. Po przekroczeniu czasu, dany etap koloruje się na czerwono w podglądzie procedury.
- Komentarz – opis / komentarz widoczny jedynie na danym etapie w panelu konfiguracji procedury.
- Ograniczona możliwość wykonania – powoduje zablokowanie etapu do wykonania jedynie osoby wyznaczonej (nawet w przypadku ustawienia zastępstwa)
- Podproces – wybór procedur możliwych do użycia jako pod proces
- Pętla – typu multi-instance, która pozwala na wykonanie danego etapu dopiero wtedy, gdy wszystkie osoby wskazane Potwierdzą załatwienie lub gdy zostanie wykonany warunek zakończenia pętli. Więcej informacji
- Następnik – przypisanie kolejnego etapu (można wykonać poprzez graficzne utworzenie strzałek pomiędzy etapami)
Zmiany zapisujemy za pomocą przycisku OK.
Akcje
Aby dodać nową akcję, wybieramy z listy dostępnych komend taką, która nas interesuje, a następnie po wybraniu klikamy w zielony znak plusa. Uzupełniamy opis, w którym piszemy jakie zadanie wykonuje komenda. Następnie uzupełniamy parametry zgodnie z dokumentacją umieszczoną po najechaniu na daną etykietę parametru.
Opis wszystkich komend wraz z przykładami użycia znajduje się w dokumentacji
Opis tworzenia własnej komendy znajduje się tutaj
Akcje / Komendy mogą być wykonywane na początku lub zakończeniu etapu.
Przypisania
Przypisania służą nadaniu wartości dla zmiennych procedury, jak również nadaniu wartości atrybutom etapu, którego dotyczą. Najczęściej wykorzystuje się przypisanie stanowisk wykonujących etap poprzez przypisanie do własności {stages.orgarr}
tablicy (UWAGA! Dane muszą być typem tablicowym, w kwerendach należy pamiętać o rzutowaniu).
Przykład:
Tak więc dane wejściowe typu array o nazwie "Akceptant" zostały przypisane do własności {stages.orgarr} (czyli tablicy wykonujących zadanie workflow).
Przypisanie też możemy użyć bez konieczności pobierania danych od użytkownika, możemy je pobrać z bazy danych. Dla tego przykładu, gdybyśmy chcieli pobrać Opiekuna klienta
, którego dotyczy sprzedaż (ze sprawy) dodalibyśmy Przypisanie własności {stages.orgarr} wartości wyrażenia SQL:
SELECT ARRAY[o.orunid]
FROM contacts c
JOIN processes USING(contid) JOIN orgtree_view o ON o.usr_id = c.macrtk
WHERE prc_id = {processes.prc_id}
Przy przypisywaniu danej z danych wejściowych pobranych w etapie należy zwrócić uwagę, żeby ustawić czas przypisania na KONIEC.
Przypisania również można stosować do ustawienia:
- własności (globalne zmienne procedury)
- obiektów, których dotyczy workflow. Np. aby ustawić własność dokumentu, sprawy czy zapotrzebowania. Odwołanie ma postać {nazwa_tabeli.nazwa_pola_z_bazy} np:
{documents.dscrpt} - opis dokumentu
{processes.fxtrid} - termin sprawy
{demand.acorid} - jednostka rozliczeniowa w zapotrzebowaniu
- danych wejściowych (pola na szarfie procedury jako inicjowanie ich wartości) Czas przypisania na START.
- właściwości etapu
Przydatne wyrażenia SQL znajdziesz tutaj.
Przypisania mogą być wykonywane na początku lub zakończeniu etapu.
Dane wejściowe
W tej zakładce możemy definiować pola, które będą widoczne na szarfę workflow tego etapu.
Dane wejściowe służą tym samym czym odczyt standardowego wejścia w konsoli czy programie (czyli pobraniu od użytkownika znaków). Można je pobierać z różnych formantów (pól tekstowych, list wyboru, list pracowników). Najciekawszą opcją jest opcja SELECT
, która pozwala zdefiniować dowolną kwerendę SQL zwracającą potrzebną nam w danym etapie listę (np. kierowników, księgowych, zasobów itp).
Przykładowa lista dla atrybutu CZŁONEK ZARZĄDU potrzebna do wyboru osoby podpisującej umowę:
{"sql":"SELECT orunid as value, fullnm || ' - ' || ndenam as caption FROM orgtree_view WHERE orunid IN (3,14,15,16)"}
Inny przykład to pobranie identyfikatora stanowiska wystarczy w tym celu wybrać opcję orunid[].
Rodzaje danych wejściowych
Dane wejściowe mogą przyjmować różne typy, między innymi: listę. Wówczas w polu Typ należy wybrać select
, a w polu parametry należy wpisać kwerendę zwracającą dwie kolumny:
{
"sql":"SELECT povcid AS value, place_ || ' ' || dscrpt AS caption FROM places_of_vcosts WHERE year__ = (EXTRACT(year FROM CURRENT_DATE))::int AND is_del IS FALSE ORDER BY caption ASC"
}
jeśli lista jest na tyle długa, że spowalniałaby działanie przeglądarki przy ładowaniu danych, lepiej zastosować pole typu lookup. Poniżej przykład pola dla wyboru projektów:
Multi-Select
{
"sql": "select usr_id, usrnam, 'USER' as clsnam FROM users WHERE not is_del AND usr_id > 1",
"valueField": "usr_id",
"labelField": "usrnam",
"multiselect": true,
"searchMinLength": 4 // po ilu wpisanych znakach ma rozpocząć wyszukiwaniem - domyślnie 2
}
UWAGA
Dane wejściowe, jeśli nie są wypełnione, zwracają zawsze ciąg znaków 'NULL'
oprócz listy wartości, która zwraca pusty string. W przypisaniach i parametrach do komend należy więc używać konstrukcji NULLIF (param1, param2), która zwraca wartość NULL (bazodanową), jeśli param1 jest równe param2. Przykładowo:
-- na formatce pobierane są parametry z listy i pola tekstowego.
-- aby użyć to w przypisaniu do komendy "Ustaw wartość cechy" należy wpisać:
SQL::SELECT COALESCE(NULLIF('{$LISTA2}',''), NULLIF('{$TEXT}','NULL'))
Przydatne wyrażenia znajdziesz tutaj.