Zmienne w tekście: Różnice pomiędzy wersjami

Z Planfix
Skocz do: nawigacja, szukaj
(Utworzono nową stronę "{{#seo: |title=Zmienne w tekście |titlemode=append |keywords=planfix, variables, task template, document template, using variables, variables in text, text with variables, for each, foreach, if, else, elseif, table |description=Używanie zmiennych w tekście }} <div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Ten artykuł pomocy nie dotyczy szablonów dokumentów. Przeczytaj jak używać zmiennych w szablonach dokumentów Zmienne w szablon…")
 
Nie podano opisu zmian
 
Linia 6: Linia 6:
}}
}}


<div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Ten artykuł pomocy nie dotyczy szablonów dokumentów. Przeczytaj jak używać zmiennych w szablonach dokumentów [[Zmienne w szablonach dokumentów|tutaj]].</div>
<div style="background:#ffbaba;padding:10px;border:1px solid #ff9b9b;">Ten artykuł pomocy nie dotyczy szablonów dokumentów. Przeczytaj, jak używać zmiennych w szablonach dokumentów [[Zmienne w szablonach dokumentów|tutaj]].</div>
== Nawigacja ==
== Nawigacja ==
*[[#Calculations with variables|Calculations with variables]]
*[[#Calculations with variables|Obliczenia ze zmiennymi]]
*[[#IF|IF]]
*[[#IF|IF]]
*[[#ELSE|ELSE]]
*[[#ELSE|ELSE]]
Linia 14: Linia 14:
*[[#FOREACH|FOREACH]]
*[[#FOREACH|FOREACH]]
*[[#TABLE|TABLE]]
*[[#TABLE|TABLE]]
*[[#FOREACH and TABLE with infoblocks|FOREACH and TABLE with infoblocks]]
*[[#FOREACH and TABLE with infoblocks|FOREACH i TABLE z infoblockami]]


Zmienne przechowują pewną wartość, taką jak liczba, ciąg znaków lub inny typ danych. Zmienne są używane w:
Zmienne przechowują pewną wartość, na przykład liczbę, ciąg znaków lub inny typ danych. Zmienne są używane w:
*Nazwa zadania (w szablonie zadania lub podczas tworzenia Zadania)
*Nazwie zadania (w szablonie zadania lub podczas tworzenia zadania)
*Opis zadania (w szablonie zadania lub podczas tworzenia Zadania)
*Opisie zadania (w szablonie zadania lub podczas tworzenia zadania)
*Szablony wiadomości e-mail
*Szablonach e-mail
*Akcje skryptów, przyciski, przychodzące webhooki, reguły e-mail dla zadań:
*Akcjach skryptów, przyciskach, przychodzących webhookach, regułach e-mail dla zadań:
**Send HTTP request
**Send HTTP request
**Send SMS
**Send SMS
**Write to WhatsApp
**Write to WhatsApp
**Write to Instagram
**Write to Instagram
*Operacje masowe, skrypty, przyciski, przychodzące webhooki, reguły e-mail dla zadań:
*Hurtowych akcjach, skryptach, przyciskach, przychodzących webhookach, regułach e-mail dla zadań:
**Change name
**Change name
**Change description
**Change description
Linia 32: Linia 32:




Aby dodać zmienną do tekstu, na przykład w opisie zadania, kliknij link "different variables" (1), utwórz zmienną i dodaj ją do tekstu wybranego pola w szablonie zadania (2):
Aby dodać zmienną do tekstu, na przykład w opisie zadania, kliknij link „różne zmienne” (1), utwórz zmienną i dodaj ją do tekstu odpowiedniego pola w szablonie zadania (2):
   
   
https://s.pfx.so/pf/FX/vBmUi1.jpg
https://s.pfx.so/pf/FX/vBmUi1.jpg
== '''Obliczenia ze zmiennymi''' ==
== '''Obliczenia ze zmiennymi''' ==
Czasami nie wystarczy wstawić wartość zmiennej do tekstu — trzeba także wykonać obliczenia na wartościach zmiennych lub przetworzyć otrzymany ciąg znaków. Do takich działań używa się następującej składni:
Czasami nie wystarczy wstawić wartości zmiennej do tekstu — trzeba wykonać obliczenia na wartościach zmiennych lub przetworzyć otrzymany ciąg. Do takich działań używa się następującej składni:


  %%%'''FORMULA TEXT'''%%%
  %%%'''FORMULA TEXT'''%%%
Linia 44: Linia 44:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>Work will be completed in %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%</nowiki></div>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>Work will be completed in %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%</nowiki></div>
=== Ważne ===
=== Ważne ===
*Tekst formuły musi być napisany w jednej linii i nie może być łamany. Innymi słowy, formuła nie może być przenoszona do następnego wiersza przez naciśnięcie Enter.
*Tekst formuły musi być zapisany w jednym wierszu i nie może być przerwany. Innymi słowy formuła nie może być przeniesiona do następnego wiersza przez naciśnięcie Enter.
*Zmienne wewnątrz formuły nie mogą być formatowane, np. pogrubione lub kursywą.
*Zmienne w formule nie mogą być formatowane, np. pogrubione lub kursywą.
*Jeśli chcesz wyróżnić wynik formuły pogrubieniem, zastosuj formatowanie do całej formuły wraz z wynikiem.
*Jeśli chcesz wyróżnić wynik formuły pogrubieniem, zastosuj formatowanie do całej formuły wraz z wynikiem.
== '''IF''' ==
== '''IF''' ==
Aby wstawić tekst zależny od wartości zmiennych (warunków), użyj następującej składni:
Aby wstawić tekst w zależności od wartości zmiennych (warunków), użyj następującej składni:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green">IF(</span><span style="color:blue">Logical formula</span><span style="color:green">)</span>$%%<br><span style="color:red">'''TEXT'''</span><br>%%$<span style="color:green">ENDBLOCK</span>$%%
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green">IF(</span><span style="color:blue">Logical formula</span><span style="color:green">)</span>$%%<br><span style="color:red">'''TEXT'''</span><br>%%$<span style="color:green">ENDBLOCK</span>$%%
Linia 64: Linia 64:


== '''ELSE''' ==
== '''ELSE''' ==
'''ELSE''' używa się wyłącznie razem z IF. Gdy warunek w IF nie jest spełniony, wyświetlany jest tekst z części ELSE bloku.
'''ELSE''' jest używany tylko razem z IF. Gdy warunek w IF nie jest prawdziwy, wyświetlana jest część z bloku ELSE.


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
Linia 76: Linia 76:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task. Invoice №}}=""</nowiki></span>)$%%<br>   
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task. Invoice №}}=""</nowiki></span>)$%%<br>   
<span style="color:red">The field [Invoice №] is not filled in</span><br>  
<span style="color:red">Pole [Invoice №] nie jest wypełnione</span><br>  
%%$<span style="color:#ef18c7">ELSE</span>$%%<br>   
%%$<span style="color:#ef18c7">ELSE</span>$%%<br>   
<span style="color:red">The required task field is filled in! :)</span><br>  
<span style="color:red">Wymagane pole zadania jest wypełnione! :)</span><br>  
%%$<span style="color:green">ENDBLOCK</span>$%%
%%$<span style="color:green">ENDBLOCK</span>$%%


Linia 84: Linia 84:
'''Wynik''':
'''Wynik''':


*Jeśli pole nie jest wypełnione, wyświetlony zostanie komunikat "The field [Invoice №] is not filled in".
*Jeśli pole nie jest wypełnione, wyświetlony zostanie komunikat „Pole [Invoice №] nie jest wypełnione”.
*Jeśli pole jest wypełnione, wyświetlony zostanie komunikat "The required task field is filled in! :)".
*Jeśli pole jest wypełnione, wyświetlony zostanie komunikat „Wymagane pole zadania jest wypełnione! :).
</div>
</div>


Linia 104: Linia 104:


'''Uwaga'''<br>
'''Uwaga'''<br>
*Ostatni fragment <span style="color:#ef18c7">ELSE</span> jest opcjonalny.
*Ostatni <span style="color:#ef18c7">ELSE</span> jest częścią opcjonalną bloku.
</div>
</div>
=== Przykład ===
=== Przykład ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task.Invoice Number}}=""</nowiki></span>)$%%<br>
%%$<span style="color:green">IF</span>(<span style="color:blue"><nowiki>{{Task.Invoice Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">The field [Invoice Number] is not filled in</span><br>
<span style="color:red">Pole [Invoice Number] nie jest wypełnione</span><br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.UPD Number}}=""</nowiki></span>)$%%<br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.UPD Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">The field [UPD Number] is not filled in</span><br>
<span style="color:red">Pole [UPD Number] nie jest wypełnione</span><br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.Contract Number}}=""</nowiki></span>)$%%<br>
%%$<span style="color:#ef18c7">ELSEIF</span>(<span style="color:blue"><nowiki>{{Task.Contract Number}}=""</nowiki></span>)$%%<br>
<span style="color:red">The field [Contract Number] is not filled in</span><br>
<span style="color:red">Pole [Contract Number] nie jest wypełnione</span><br>
%%$<span style="color:#ef18c7">ELSE</span>$%%<br>
%%$<span style="color:#ef18c7">ELSE</span>$%%<br>
<span style="color:red">All task fields are filled in, you're awesome! :)</span><br>
<span style="color:red">Wszystkie pola zadania są wypełnione, jesteś świetny! :)</span><br>
%%$<span style="color:green">ENDBLOCK</span>$%%
%%$<span style="color:green">ENDBLOCK</span>$%%


Linia 121: Linia 121:
'''Wynik''':
'''Wynik''':


*Jeśli wszystkie trzy pola nie wypełnione, wyświetlony zostanie tylko pierwszy komunikat "The field [Invoice Number] is not filled in", pozostałe zostaną pominięte.
*Jeśli wszystkie trzy pola są niewypełnione, zostanie wyświetlony tylko pierwszy komunikat „Pole [Invoice Number] nie jest wypełnione”, pozostałe zostaną pominięte.
*Jeśli pola "Invoice Number" i "UPD Number" są wypełnione, ale pole "Contract Number" nie jest, wyświetlony zostanie odpowiedni komunikat "The field [Contract Number] is not filled in".</div>
*Jeśli pola "Invoice Number" i "UPD Number" są wypełnione, ale pole "Contract Number" nie, zostanie wyświetlony odpowiedni komunikat „Pole [Contract Number] nie jest wypełnione”.</div>


== '''FOREACH''' ==
== '''FOREACH''' ==
Gdy zmienna reprezentuje listę wartości, np. <nowiki>{{Task.Subtasks}}</nowiki> lub <nowiki>{{Task.Assignee}}</nowiki>, i trzeba wyświetlić informacje dla każdej wartości, użyj następującej składni:
Gdy zmienna reprezentuje listę wartości, na przykład <nowiki>{{Task.Subtasks}}</nowiki> lub <nowiki>{{Task.Assignee}}</nowiki>, i trzeba wyświetlić informacje dla każdej wartości, użyj następującej składni:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%




'''Ważne''': w tej części wyrażenia — %%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%% — koniecznie podaj zmienną pierwszego poziomu, np. <nowiki>{{Task.Subtasks}}</nowiki> lub <nowiki>{{Task.Assignee}}</nowiki>, i nic więcej.</div>
'''Ważne''': w tej części wyrażenia — %%$<span style="color:green;">FOREACH(<span style="color:blue;">Variable</span>;<span style="color:blue;">Delimiter</span>)</span>$%% — koniecznie podaj zmienną pierwszego poziomu, tzn. <nowiki>{{Task.Subtasks}}</nowiki> lub <nowiki>{{Task.Assignee}}</nowiki>, i nic więcej.</div>
=== Przykład ===
=== Przykład ===
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$FOREACH({{Task.Assignee}};"<br>")$%%</nowiki><nowiki>{{Task.Assignee}} - {{Task.Assignee.Position}}</nowiki>%%$ENDBLOCK$%%
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;"><nowiki>%%$FOREACH({{Task.Assignee}};"<br>")$%%</nowiki><nowiki>{{Task.Assignee}} - {{Task.Assignee.Position}}</nowiki>%%$ENDBLOCK$%%
Linia 162: Linia 162:
'''Wynik'''
'''Wynik'''


Z całej listy kontrahentów zostaną wyświetlone tylko te, których kwota kontraktu jest większa niż 1000:
Z całej listy kontrahentów zostaną wyświetleni tylko ci, których kwota kontraktu jest większa niż 1000:


LLC Sunrise, 1500<br>
LLC Sunrise, 1500<br>
Linia 191: Linia 191:


== '''TABLE''' ==
== '''TABLE''' ==
Jeśli zmienna reprezentuje listę wartości i chcesz wyświetlić informacje dla każdej wartości w postaci tabeli, użyj następującej składni:
Jeśli zmienna reprezentuje listę wartości i potrzebujesz wyświetlić informacje dla każdej wartości w postaci tabeli, użyj następującej składni:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">TABLE(<span style="color:blue;">Variable</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%</div>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$<span style="color:green;">TABLE(<span style="color:blue;">Variable</span>)</span>$%%<br>'''<span style="color:red;">TEXT</span>'''<br>%%$<span style="color:green;">ENDBLOCK</span>$%%</div>
== Przykład ==
== Przykład ==
Przykład pokazuje, jak wyciągnąć tylko potrzebne bloki z dodanego Znacznika danych w zadaniu i wysłać te informacje do klienta jako tabelę. Tabelę dodaje się przy użyciu edytora Planfix:
Przykład pokazuje, jak wyciągnąć tylko potrzebne bloki z dodanego znacznika danych w zadaniu i wysłać tę informację klientowi jako tabelę. Tabelę dodano za pomocą edytora Planfix:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
Linia 229: Linia 229:
</div>
</div>
=== Przykład z nagłówkiem i sumą ===
=== Przykład z nagłówkiem i sumą ===
Aby dodać nagłówek lub wiersz z sumami do tabeli, użyj następujących parametrów w składni:
Aby dodać nagłówek lub wiersz sum do tabeli, użyj następujących parametrów w składni:


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$TABLE(Variable;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Tabela narysowana przy użyciu edytora Planfix<br>%%$ENDBLOCK$%%</div>
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">%%$TABLE(Variable;<span style="color:red;">0</span>;<span style="color:red;">0</span>)$%%<br>Tabela narysowana przy użyciu edytora Planfix<br>%%$ENDBLOCK$%%</div>
Linia 281: Linia 281:
</div>
</div>


Liczby zaznaczone na <span style="color:red;">czerwono</span> oznaczają, ile wierszy użyć w nagłówku i sumach.
Liczby wyróżnione na <span style="color:red;">czerwono</span> oznaczają, ile wierszy użyć w nagłówku i w sumie.


Na przykład, liczby (<span style="color:red;">1</span>;<span style="color:red;">1</span>) w powyższym przykładzie oznaczają, że jeden wiersz na początku będzie użyty jako nagłówek tabeli, a jeden wiersz na końcu będzie użyty jako suma tabeli.
Na przykład liczby (<span style="color:red;">1</span>;<span style="color:red;">1</span>) w powyższym przykładzie oznaczają, że jeden wiersz na początku będzie użyty jako nagłówek tabeli, a jeden wiersz na końcu będzie użyty jako suma.


Aby użyć dwóch wierszy w nagłówku tabeli, podaj to tak — (<span style="color:red;">2</span>;<span style="color:red;">1</span>).
Aby użyć dwóch wierszy w nagłówku tabeli, wpisz to tak — (<span style="color:red;">2</span>;<span style="color:red;">1</span>).


<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
Linia 385: Linia 385:




Aby dodać nagłówek do tabeli, kliknij prawym przyciskiem myszy na tabelę i wybierz '''Row''' - '''Insert Row Above''':
Aby dodać nagłówek do tabeli, kliknij prawym przyciskiem myszy na tabeli i wybierz '''Row''' - '''Insert Row Above''':


https://s.pfx.so/pf/WJ/Pvy4PR.jpg
https://s.pfx.so/pf/WJ/Pvy4PR.jpg


== '''FOREACH i TABLE z infoblockami''' ==
== '''FOREACH i TABLE z infoblockami''' ==
Podczas parsowania e-maila lub odpowiadania na żądanie HTTP otrzymujesz kilka linii danych i chcesz dodać je w postaci tekstu strukturalnego lub tabeli:
Podczas parsowania e-maila lub odpowiadania na żądanie HTTP otrzymujesz kilka linii danych i chcesz dodać je w postaci uporządkowanego tekstu lub tabeli:
*Wyodrębnij dane do infoblocków:
*Wyodrębnij dane do infoblocków:
**[[JSONPath|from JSON]]
**from JSON
**[[Wyodrębnianie danych z tabel w wiadomościach e-mail|from HTML table]]
**from HTML table
*Następnie użyj następującej składni:
*Następnie użyj następującej składni:
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">
<div style="display: block; padding: 1em; margin: 0 0 10px; font-size: 13px; line-height: 1.65; color: black; word-wrap: break-word; background-color: #f9f9f9; border: 1px solid #ddd; border-radius: 4px;">

Aktualna wersja na dzień 01:37, 7 gru 2025

Ten artykuł pomocy nie dotyczy szablonów dokumentów. Przeczytaj, jak używać zmiennych w szablonach dokumentów tutaj.

Nawigacja

Zmienne przechowują pewną wartość, na przykład liczbę, ciąg znaków lub inny typ danych. Zmienne są używane w:

  • Nazwie zadania (w szablonie zadania lub podczas tworzenia zadania)
  • Opisie zadania (w szablonie zadania lub podczas tworzenia zadania)
  • Szablonach e-mail
  • Akcjach skryptów, przyciskach, przychodzących webhookach, regułach e-mail dla zadań:
    • Send HTTP request
    • Send SMS
    • Write to WhatsApp
    • Write to Instagram
  • Hurtowych akcjach, skryptach, przyciskach, przychodzących webhookach, regułach e-mail dla zadań:
    • Change name
    • Change description
    • Add comment
    • Set field value (dla pól typu "Text")


Aby dodać zmienną do tekstu, na przykład w opisie zadania, kliknij link „różne zmienne” (1), utwórz zmienną i dodaj ją do tekstu odpowiedniego pola w szablonie zadania (2):

vBmUi1.jpg

Obliczenia ze zmiennymi

Czasami nie wystarczy wstawić wartości zmiennej do tekstu — trzeba wykonać obliczenia na wartościach zmiennych lub przetworzyć otrzymany ciąg. Do takich działań używa się następującej składni:

%%%FORMULA TEXT%%%

Przykłady

Discounted price: %%%{{Task.Price}}*0.8%%%
Work will be completed in %%%DATEDIF(NOW(); {{Task.Completion Date}}; "d")%%% %%%MULTIPLE(DATEDIF(NOW(); {{Task.Completion Date}}; "d");"day"; "days")%%%

Ważne

  • Tekst formuły musi być zapisany w jednym wierszu i nie może być przerwany. Innymi słowy formuła nie może być przeniesiona do następnego wiersza przez naciśnięcie Enter.
  • Zmienne w formule nie mogą być formatowane, np. pogrubione lub kursywą.
  • Jeśli chcesz wyróżnić wynik formuły pogrubieniem, zastosuj formatowanie do całej formuły wraz z wynikiem.

IF

Aby wstawić tekst w zależności od wartości zmiennych (warunków), użyj następującej składni:

%%$IF(Logical formula)$%%
TEXT
%%$ENDBLOCK$%%

Przykład

%%$IF({{Task.Order Amount}} > 100000)$%%
VIP CUSTOMER
%%$ENDBLOCK$%%


Wynik:

VIP CUSTOMER

ELSE

ELSE jest używany tylko razem z IF. Gdy warunek w IF nie jest prawdziwy, wyświetlana jest część z bloku ELSE.

%%$IF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%

Przykład

%%$IF({{Task. Invoice №}}="")$%%
Pole [Invoice №] nie jest wypełnione
%%$ELSE$%%
Wymagane pole zadania jest wypełnione! :)
%%$ENDBLOCK$%%


Wynik:

  • Jeśli pole nie jest wypełnione, wyświetlony zostanie komunikat „Pole [Invoice №] nie jest wypełnione”.
  • Jeśli pole jest wypełnione, wyświetlony zostanie komunikat „Wymagane pole zadania jest wypełnione! :)”.

ELSEIF

Pozwala stworzyć bardziej złożone wyrażenie z warunkami:

%%$IF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSEIF(Logical formula)$%%
TEXT
%%$ELSE$%%
TEXT
%%$ENDBLOCK$%%


Uwaga

  • Ostatni ELSE jest częścią opcjonalną bloku.

Przykład

%%$IF({{Task.Invoice Number}}="")$%%
Pole [Invoice Number] nie jest wypełnione
%%$ELSEIF({{Task.UPD Number}}="")$%%
Pole [UPD Number] nie jest wypełnione
%%$ELSEIF({{Task.Contract Number}}="")$%%
Pole [Contract Number] nie jest wypełnione
%%$ELSE$%%
Wszystkie pola zadania są wypełnione, jesteś świetny! :)
%%$ENDBLOCK$%%


Wynik:

  • Jeśli wszystkie trzy pola są niewypełnione, zostanie wyświetlony tylko pierwszy komunikat „Pole [Invoice Number] nie jest wypełnione”, pozostałe zostaną pominięte.
  • Jeśli pola "Invoice Number" i "UPD Number" są wypełnione, ale pole "Contract Number" nie, zostanie wyświetlony odpowiedni komunikat „Pole [Contract Number] nie jest wypełnione”.

FOREACH

Gdy zmienna reprezentuje listę wartości, na przykład {{Task.Subtasks}} lub {{Task.Assignee}}, i trzeba wyświetlić informacje dla każdej wartości, użyj następującej składni:

%%$FOREACH(Variable;Delimiter)$%%
TEXT
%%$ENDBLOCK$%%


Ważne: w tej części wyrażenia — %%$FOREACH(Variable;Delimiter)$%% — koniecznie podaj zmienną pierwszego poziomu, tzn. {{Task.Subtasks}} lub {{Task.Assignee}}, i nic więcej.

Przykład

%%$FOREACH({{Task.Assignee}};"<br>")$%%{{Task.Assignee}} - {{Task.Assignee.Position}}%%$ENDBLOCK$%%


Wynik:

linda Martinez - Designer
Jamse Davis - Developer
Mary Brown - CEO
%%$FOREACH({{Task.Subtasks}};"<br>")$%%{{Task.Subtasks.Number}} - {{Task.Subtasks.Name}}%%$ENDBLOCK$%%


Wynik:

2119 - Rough finish
2120 - Sub-final finishing
2121 - Final touches

Przykład z warunkiem

Składnia:

%%$FOREACH(Variable;Delimiter;Condition_WITHOUT_If)$%%
TEXT
%%$ENDBLOCK$%%

%%$FOREACH({{Task.Subtasks}};"";{{Task.Subtasks."Contract Amount ($)"}}>1000))$%%
{{Task.Subtasks.Counterparty}}, contract amount {{Task.Subtasks."Contract Amount ($)"}}
%%$ENDBLOCK$%%


Wynik

Z całej listy kontrahentów zostaną wyświetleni tylko ci, których kwota kontraktu jest większa niż 1000:

LLC Sunrise, 1500

LLC Sunset, 1700

LLC Dawn, 2500

Blok ELSE wewnątrz FOREACH

Składnia:

%%$FOREACH(Variable;Delimiter)$%%
TEXT
 %%$IF(Logical formula)$%%
TEXT
 %%$ENDBLOCK$%%
TEXT
%%$ENDBLOCK$%%

%%$FOREACH({{Task.Subtasks}})$%%%%$IF({{Task.Subtasks.Status}}="TKP added to calculation")$%%
{{Task.Subtasks.Counterparty}}, {{Task.Subtasks.Counterparty.TIN}}, contract amount {{Task.Subtasks."Contract Amount"}} {{Task.Subtasks.Currency.Symbol}}
%%$ENDBLOCK$%%%%$ENDBLOCK$%%


Wynik:

LLC Sunrise, 5689845987654, 1500 $
LLC Sunset, 5689845125699, 1700 $
LLC Dawn, 5689845589674, 2500 $
LLC Light, 5689845235689, 500 $

TABLE

Jeśli zmienna reprezentuje listę wartości i potrzebujesz wyświetlić informacje dla każdej wartości w postaci tabeli, użyj następującej składni:

%%$TABLE(Variable)$%%
TEXT
%%$ENDBLOCK$%%

Przykład

Przykład pokazuje, jak wyciągnąć tylko potrzebne bloki z dodanego znacznika danych w zadaniu i wysłać tę informację klientowi jako tabelę. Tabelę dodano za pomocą edytora Planfix:

Order №{{Task.Number}}

%%$TABLE({{Data tag.Service}})$%%

{{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}

%%$ENDBLOCK$%%

Total order amount: %%%TEXT(SUM({{Data tag.Service.Amount}});",.2f")+MULTIPLE(SUM({{Data tag.Service.Amount}}); " ruble"; " rubles")%%%


Wynik:

Order №2118

Graphic design 1 600.00
Programming 3 000.00
Development of TA 300.00

Total order amount: 4 900.00 dollars

Przykład z nagłówkiem i sumą

Aby dodać nagłówek lub wiersz sum do tabeli, użyj następujących parametrów w składni:

%%$TABLE(Variable;0;0)$%%
Tabela narysowana przy użyciu edytora Planfix
%%$ENDBLOCK$%%

Przykład: %%$TABLE({{Data Tag.Service}};1;1)$%%

# Name Price
{{Data tag.Service.Record Number}} {{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}
Total %%%SUM({{Data tag.Service.Amount}})%%%

%%$ENDBLOCK$%%


Wynik:

# Name Price
1 Development of TA 1 000.00
2 Programming 3 705.00
3 Graphic design 1 035.00
4 Testing 690.00
Total 6430

Liczby wyróżnione na czerwono oznaczają, ile wierszy użyć w nagłówku i w sumie.

Na przykład liczby (1;1) w powyższym przykładzie oznaczają, że jeden wiersz na początku będzie użyty jako nagłówek tabeli, a jeden wiersz na końcu będzie użyty jako suma.

Aby użyć dwóch wierszy w nagłówku tabeli, wpisz to tak — (2;1).

Przykład: %%$TABLE({{Data tag .Service}};2;1)$%%

Set of services
# Name Price
{{Data tag.Service.Record Number}} {{Data tag.Service.Service Name}} {{Data tag.Service.Amount}}
Total %%%SUM({{Data tag.Service.Amount}})%%%

%%$ENDBLOCK$%%


Wynik:

Set of services
# Name Price
1 Development of TA 1 000.00
2 Programming 3 705.00
3 Graphic design 1 035.00
4 Testing 690.00
Total 6430

Przykład z warunkiem

%%$TABLE(Variable;0;0;Condition_WITHOUT_If)$%%
Tabela narysowana przy użyciu edytora Planfix
%%$ENDBLOCK$%%


%%$TABLE({{Task.Subtasks}};1;0;{{Task.Subtasks.Status}}="TKP added to calculation")$%%

Counterparty TIN Contract amount
{{Task.Subtasks.Counterparty}} {{Task.Subtasks.Counterparty.TIN}} {{Task.Subtasks."Contract Amount"}}{{Task.Subtasks.Currency.Symbol}}

%%$ENDBLOCK$%%


Wynik:

Counterparty TIN Contract amount
LLC Sunrise 5689845987654 1500$
LLC Sunset 5689845125699 1700$
LLC Dawn 5689845589674 2500$
LLC Light 5689845235689 500$


Aby dodać nagłówek do tabeli, kliknij prawym przyciskiem myszy na tabeli i wybierz Row - Insert Row Above:

Pvy4PR.jpg

FOREACH i TABLE z infoblockami

Podczas parsowania e-maila lub odpowiadania na żądanie HTTP otrzymujesz kilka linii danych i chcesz dodać je w postaci uporządkowanego tekstu lub tabeli:

  • Wyodrębnij dane do infoblocków:
    • from JSON
    • from HTML table
  • Następnie użyj następującej składni:

%%$FOREACH({{Infoblock.!line}};Separator)$%%
{{Infoblock.!line.Infoblock name}}
%%$ENDBLOCK$%%

%%$TABLE({{Infoblock.!line}})$%%
{{Infoblock.!line.Infoblock name}}
%%$ENDBLOCK$%%


Przykład

Wyodrębnijmy dane do infoblocków "Product" i "Price" i dodajmy je do tabeli:

%%$TABLE({{Infoblock.!line}})$%%

{{Infoblock.!string.Product}} {{Infoblock.!string.Price}}

%%$ENDBLOCK$%%


Wynik:

Pencil 1,00
Pen 2,00
Notebook 10,00


Przejdź do