Zmienne w tekście

Z Planfix
Skocz do: nawigacja, szukaj

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

Nawigacja

Zmienne przechowują pewne wartości, takie jak liczba, ciąg znaków lub inny typ danych. Zmienne są używane w:

  • Nazwie zadania (w szablonie zadania lub przy tworzeniu zadania)
  • Opisie zadania (w szablonie zadania lub przy tworzeniu zadania)
  • Szablonach e-mail
  • Akcjach skryptu, przyciskach, webhookach przychodzących, regułach e-mail dla zadań:
    • Wyślij żądanie HTTP
    • Wyślij SMS
    • Napisz do WhatsApp
    • Napisz do Instagram
  • Hurtowych akcjach, skryptach, przyciskach, webhookach przychodzących, regułach e-mail dla zadań:
    • Zmień nazwę
    • Zmień opis
    • Dodaj komentarz
    • Ustaw wartość pola (dla pól „Text”)


Aby dodać zmienną do tekstu, np. w opisie zadania, kliknij łącze „różne zmienne” (1), utwórz zmienną i dodaj ją do tekstu żądanego pola w szablonie zadania (2):

vBmUi1.jpg

Obliczenia ze zmiennymi

Czasami nie wystarczy wstawić wartość zmiennej do tekstu — trzeba także wykonać obliczenia na wartościach w zmiennych lub przetworzyć otrzymany ciąg znaków. 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ć dzielony. Innymi słowy, formuły nie wolno przenosić do następnego wiersza przez naciśnięcie klawisza Enter.
  • Zmienne wewnątrz formuły nie mogą być formatowane, np. pogrubione lub pochylone.
  • Jeśli chcesz wyróżnić wynik formuły pogrubieniem, zastosuj formatowanie do całej formuły wraz z wynikiem.

IF

Aby wstawić tekst zależnie 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 używane jest tylko razem z IF. Gdy warunek w IF jest nieprawdziwy, wyświetlany jest tekst z części ELSE bloku.

%%$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, zostanie wyświetlony komunikat "Pole [Invoice №] nie jest wypełnione".
  • Jeśli pole jest wypełnione, zostanie wyświetlony komunikat "Wymagane pole zadania jest wypełnione! :)".

ELSEIF

Pozwala utworzyć bardziej złożony wyraz z warunkami:

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


Uwaga

  • Ostatni element 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ś wspaniały! :)
%%$ENDBLOCK$%%


Wynik:

  • Jeśli wszystkie trzy pola nie są wypeł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 "Pole [Contract Number] nie jest wypełnione".

FOREACH

Gdy zmienna reprezentuje listę wartości, np. {{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, tj. {{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świetlone tylko te, które mają kwotę kontraktu większą 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, a trzeba wyświetlić informacje dla każdej wartości w formie tabeli, użyj następującej składni:

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

Przykład

Przykład pokazuje, jak wyodrębnić tylko potrzebne bloki z dodanego Znacznika danych w zadaniu i wysłać te informacje do klienta jako tabelę. Tabela jest dodana 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 sumy do tabeli, użyj następujących parametrów w składni:

%%$TABLE(Variable;0;0)$%%
Tabela narysowana za pomocą 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 wskazują, 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 tabeli.

Aby użyć dwóch wierszy w nagłówku tabeli, podaj to w ten sposób — (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 za pomocą 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 infoblokami

Gdy parsujesz e-mail lub odpowiadasz na żądanie HTTP, otrzymujesz kilka linii danych i chcesz dodać je w postaci ustrukturyzowanego tekstu lub tabeli:

  • Wyodrębnij dane do infobloków:
  • Następnie użyj następującej składni:

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

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


Przykład

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

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

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

%%$ENDBLOCK$%%


Wynik:

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


Przejdź do