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
![Zakładka ogólne](/assets/procedura_05-6mEuVspL.png)
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.
![Zakładka akcje](/assets/procedura_09-R8wIpUHf.png)
Przypisania
![Zakładka akcje](/assets/procedura_10-BFrWw5wL.png)
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:
![procedura 03](/assets/procedury_03-29TaJibU.png)
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).
![Zakładka akcje](/assets/procedura_14-QlceM7aL.png)
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[].
![procedura 02](/assets/procedury_02-rYVNEWzb.png)
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.