W systemie można obliczać wartości wyrażeń w parametrach działań. Na przykład dodawanie, mnożenie, obliczanie procentów i nie tylko.
Aby wykonać obliczenia, musisz umieścić znak =
w polu przed operacjami.
=6^2 + {=Document:PROPERTY_NUM}/2
lub =if({Document:ID}=5, "texte1", "texte2")
. W każdym polu możesz użyć kilku różnych obliczeń. Jeśli chcesz nie tylko wykonać obliczenia, ale także wyświetlić dodatkowe dane (wartości zmiennych, tekst), to dostępne są dwie opcje zapisu:
- Obliczone wartości można po prostu umieścić w tekście umieszczając kalkulację w konstrukcji
{{=...}}
. - Możesz także użyć operatora konkatenacji
(& amp;)
i ująć tekst w cudzysłów(")
.
Musisz wypełnić dokumenty przed {{=DateAdd({=Document:CREATED}, '5d')}}
. Operatorzy
Podczas obliczania wartości wyrażeń możesz używać różnych operatorów i funkcji w parametrach dzaiłań.
Lista dostępnych operatorów
Operator | Opis |
---|---|
+
|
Dodawanie. |
-
|
Odejmowanie. |
*
|
Mnożenie. |
/
|
Dzielenie. |
=
|
Równa się. |
<>
|
Nie równa się. |
<
|
Mniejsze. |
>
|
Większe. |
<=
|
Nie większe. |
>=
|
Nie mniejsze. |
()
|
Kolejność wykonywania działań. |
&
|
Operator konkatenacji, który zwraca ciąg znaków reprezentujący konkatenację lewego i prawego argumentu. |
^
|
Potęgowanie. |
%
|
Obliczanie odsetek. |
true
|
Prawda. |
false
|
Fałsz. |
and
|
Operator logiczny And |
or
|
Operator logiczny Or.
Przykład:
=if(or({=Variable:aaa}>2, {=Variable:bbb}<10), "yes", "no") |
not
|
Negacja. |
Funkcje w działaniach
Podczas projektowania workflow można używać funkcji w działaniach. Można wybrać je z listy. Aby to zrobić, wpisz w polu znak =
, a otworzy się lista.
Lista funkcji z przykładami
Funkcja | Opis |
---|---|
abs
|
Obliczanie wartości bezwzględnej liczby. |
dateadd
|
Dodaje określoną liczbę dni, miesięcy, lat, godzin, minut i sekund do określonej daty.
Składnia: Opcje pisania i przykłady
Podczas pisania możesz używać wielkich lub małych liter. Przykłady:
=Dateadd({=Document:DATE_CREATE}, "-2d") , =Dateadd({=Document:DATE_CREATE}, "2 days 3 minutes") .
Jeśli liczba jednostek czasu wymaganych do dodania jest zawarta w polu, zmiennej itp., musisz użyć operatora konkatenacji Przykład:
=DateAdd({=Document:DATE_CREATE}, {=Variable:WHAT2ADD} & "y 10h")
|
datediff
|
Umożliwia obliczać różnicę między dwiema datami.
Składnia: Różnica może być wyświetlana w różnych jednostkach, w zależności od Twoich zadań. Przykłady:
=datediff({=Variable:Variable1}, {=Variable:Variable2},'%m month, %d days') |
date
|
Funkcja wyświetla datę w określonym formacie i działa podobnie do funkcji Date PHP.
Składnia: |
WorkDateAdd
|
Dodaje określoną liczbę dni roboczych, godzin i minut do określonej daty.
Składnia: Opcje pisania i przykłady
Przykład:
=WorkDateAdd({=Template:Parameter1}, "2d") - parametr zawiera datę28.04.2016 .
Wynik 02.05.2016 09:00:00, ponieważ 30.04 i 1.05 to dni wolne, zostaną pominięte. 09:00:00 - początek dnia roboczego. Możesz skonfigurować listę weekendów i początku dnia roboczego w Ustawieniach portalu.
|
AddWorkDays
|
Funkcja dodaje N dni roboczych do podanej daty.
Składnia: Przykłady:
{{=addworkdays('07.03.2016', 1)}} - wynik: 09.03.2016 00:00:00 , ponieważ w ustawieniach witryny 8 marca jest dniem wolnym od pracy.
|
isWorkDay
|
Sprawdza, czy data jest dniem roboczym (według kalendarza).
Składnia: Przykład:
{{=if(isWorkDay({=Template:Parameter1}), 'Tak', 'Nie')}} - parametr zawiera datę 28.04.2016 . Wynik to Tak, ponieważ to jest dzień roboczy. |
isWorkTime
|
Podobne jest do funkcji isWorkDay , jednak dla typów danych Data/Czas.
Przykład: Przykład:
{{=if(isWorkTime({=Template:Parameter1}), 'Tak', 'Nie')}} - parametr zawiera datę i godzinę 27.04.2016 15:00:00 .
Wynik jest Tak, ponieważ jest to czas roboczy.
|
toUserDate
|
Funkcja dopasowuje dowolny czas workflow do czasu pracownika (z uwzględnieniem jego strefy czasowej).
toUserDate(user,date=now)Parametry:
|
GetUserDateOffset
|
Funkcja zwraca wartość przesunięcia strefy czasowej użytkownika w sekundach (w stosunku do czasu serwera).
GetUserDateOffset(user)Parametr:
|
if
|
Operator warunkowy.
Składnia: Przykład:
=if ({=Variable:Variable1_printable}>0, "tak", "nie")
Przy porównywaniu wartości zmiennych możliwe jest również porównywanie zmiennych z różnymi typami danych. Porównywane zmienne muszą jednak odpowiadać tabeli konwersji typów (czytaj więcej w tym artykule). |
intval
|
Zwraca wartość całkowitą zmiennej.
Przykład:
=intval("234j4hv5jhv43v53jk4vt5hj4") wróci 234 |
floatval
|
Zwraca liczbę (zmiennoprzecinkową). |
numberformat
|
Formatuje liczbę z podziałem na grupy. |
min
|
Zwraca najmniejsza wartość. |
max
|
Zwraca największą wartość. |
rand
|
Zwraca losową liczbę.
Składnia:
Wymagane jest tylko określenie minimalnej wartości. Jeśli chcesz określić wartość maksymalną, możesz nie określać drugi parametr, na przykład Przykład:
=rand(0,10) - wybierz liczbę od 0 do 10.
|
round
|
Zaokrągla liczbę.
Składnia: Przykłady:
|
ceil
|
Zaokrągla ułamek w górę.
Przykład:
=ceil(5.5) otrzymujemy 6. |
floor
|
Zaokrągla ułamek w dół.
Przykład:
=floor(5.5) otrzymujemy 5. |
substr
|
Zwraca podciąg o określonej długości, zaczynając od określonego znaku. Ta funkcja jest podobna do istniejącej w php, więcej o jej możliwościach przeczytasz tutaj.
Składnia:
Pamiętaj, że ciąg zaczyna się od znaku numer Przykład:
{{=substr("0123456789", 3, 4)}} wróci 3456 .
Uwaga! Jeśli składnia wyrażenia jest nieprawidłowa, zostanie wyświetlona jako tekst.
|
strpos
|
Zwraca pierwsze wystąpienie podciągu. |
strlen
|
Zwraca długość linii. |
implode
|
Łączy elementy tablicy PHP w ciąg. Analog implode w PHP. Zwraca ciąg zawierający reprezentację wszystkich elementów tablicy PHP w określonej kolejności, z wartością glue pomiędzy każdym elementem.
implode(glue,pieces) Parametry:
|
explode
|
Funkcja dzieli ciąg za pomocą ogranicznika. Analog explode w PHP. Zwraca tablicę PHP ciągów otrzymanych przez podzielenie linii str przy użyciu delimiter jako separatora.
explode( delimiter, str) Parametry:
|
randstring
|
Zwraca losowy ciąg. |
merge
|
Pozwala na łączenie tablic PHP.
Składnia: Przykład:
= merge({=Document:FILES}, {=Variable:file}) . |
urlencode
|
ciąg znaków zakodowany w adresie URL. |
strtolower
|
Konwertuje ciąg na małe litery. |
strtoupper
|
Konwertuje ciąg na wielkie litery. |
ucwords
|
Konwertuje pierwszy znak każdego nowego słowa w ciągu na wielkie litery. |
firstvalue
|
Zwraca pierwszą wartość pola wielokrotnego. |
swirl
|
Przenosi pierwszą wartość pola wielokrotnego na koniec. |
shuffle
|
Miesza wartości pola wielokrotnego. Analog shuffle w PHP.
Przykład
Funkcje:
Workflow zawiera zmienną wielokrotną Użytkownicy, która przechowuje listę pracowników.
Najpierw przetasujmy listę użytkowników za pomocą
Następnie przesuniemy tę listę za pomocą
Następnie wypełnij parametry zadania.
Po uruchomieniu workflow do zadania zostaną dodani wybrani pracownicy jako odpowiedzialni i uczestnik.
|