Variabile în text

De la Planfix
Salt la: navigare, căutare

Acest articol de ajutor nu se aplică șabloanelor de document. Citiți cum se folosesc variabilele în șabloanele de document aici.

Navigare

  • Calculations with variables
  • IF
  • ELSE
  • ELSEIF
  • FOREACH
  • TABLE
  • FOREACH and TABLE with infoblocks

Variabilele stochează o valoare, cum ar fi un număr, un șir de caractere sau alt tip de date. Variabilele se folosesc în:

  • Sarcină — nume (în șablon de sarcină sau la crearea unei sarcini)
  • Descrierea sarcinii (în șablon de sarcină sau la crearea unei sarcini)
  • Șabloane de email
  • Acțiuni script, butoane, webhook-uri inbound, reguli de email pentru sarcini:
    • Send HTTP request
    • Send SMS
    • Write to WhatsApp
    • Write to Instagram
  • Acțiuni în bloc, scripturi, butoane, webhook-uri inbound, reguli de email pentru sarcini:
    • Change name
    • Change description
    • Add comment
    • Set field value (pentru câmpuri de tip "Text")


Pentru a adăuga o variabilă în text, de exemplu în descrierea sarcinii, faceți clic pe linkul "different variables" (1), creați variabila și adăugați-o în textul câmpului dorit din șablonul de sarcină (2):

vBmUi1.jpg

Calculations with Variables

Uneori nu este suficient să inserezi valoarea unei variabile în text — mai trebuie să faci calcule cu valorile din variabile sau să procesezi șirul obținut. Pentru astfel de acțiuni se folosește următoarea sintaxă:

%%%FORMULA TEXT%%%

Exemple

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")%%%

Important

  • Textul formulei trebuie scris într-un singur șir și nu poate fi întrerupt. Cu alte cuvinte, formula nu poate fi mutată pe următorul rând prin apăsarea tastei Enter.
  • Variabilele din formulă nu pot fi formatate (de ex. îngroșare sau cursiv).
  • Dacă trebuie să evidențiați rezultatul formulei cu caractere îngroșate, aplicați formatarea întregii formule împreună cu rezultatul.

IF

Pentru a insera text în funcție de valorile variabilelor (condiții), folosiți următoarea sintaxă:

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

Exemplu

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


Rezultat:

VIP CUSTOMER

ELSE

ELSE se folosește doar împreună cu IF. Când condiția din IF nu este adevărată, se afișează textul din partea ELSE a blocului.

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

Exemplu

%%$IF({{Task. Invoice №}}="")$%%
The field [Invoice №] is not filled in
%%$ELSE$%%
The required task field is filled in! :)
%%$ENDBLOCK$%%


Rezultat:

  • Dacă câmpul nu este completat, va fi afișat mesajul "The field [Invoice №] is not filled in".
  • Dacă câmpul este completat, va fi afișat mesajul "The required task field is filled in! :)".

ELSEIF

Ajută la crearea unei expresii mai complexe cu condiții:

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


Notă

  • Ultimul ELSE este parte opțională a blocului.

Exemplu

%%$IF({{Task.Invoice Number}}="")$%%
The field [Invoice Number] is not filled in
%%$ELSEIF({{Task.UPD Number}}="")$%%
The field [UPD Number] is not filled in
%%$ELSEIF({{Task.Contract Number}}="")$%%
The field [Contract Number] is not filled in
%%$ELSE$%%
All task fields are filled in, you're awesome! :)
%%$ENDBLOCK$%%


Rezultat:

  • Dacă toate cele trei câmpuri nu sunt completate, va fi afișat doar primul mesaj "The field [Invoice Number] is not filled in", celelalte vor fi sărite.
  • Dacă câmpurile "Invoice Number" și "UPD Number" sunt completate, dar câmpul "Contract Number" nu este, atunci va fi afișat mesajul corespunzător "The field [Contract Number] is not filled in".

FOREACH

Când o variabilă reprezintă o listă de valori, cum ar fi {{Task.Subtasks}} sau {{Task.Assignee}}, și trebuie să afișați informații pentru fiecare valoare, folosiți următoarea sintaxă:

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


Important: în această parte a expresiei — %%$FOREACH(Variable;Delimiter)$%% — asigurați-vă că specificați variabila de prim nivel, adică {{Task.Subtasks}} sau {{Task.Assignee}}, și nimic altceva.

Exemplu

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


Rezultat:

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


Rezultat:

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

Exemplu cu condiție

Sintaxă:

%%$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$%%


Rezultat

Din întreaga listă de parteneri, vor fi afișați doar cei cu o sumă a contractului mai mare de 1000:

LLC Sunrise, 1500

LLC Sunset, 1700

LLC Dawn, 2500

Bloc ELSE în interiorul FOREACH

Sintaxă:

%%$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$%%


Rezultat:

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

TABLE

Dacă o variabilă reprezintă o listă de valori și trebuie să afișați informațiile pentru fiecare valoare sub forma unui tabel, folosiți următoarea sintaxă:

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

Exemplu

Exemplul arată cum să extrageți doar blocurile necesare dintr-o etichetă de date adăugată la sarcină și să trimiteți aceste informații clientului sub forma unui tabel. Tabelul este adăugat folosind editorul 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")%%%


Rezultat:

Order №2118

Graphic design 1 600.00
Programming 3 000.00
Development of TA 300.00

Total order amount: 4 900.00 dollars

Exemplu cu antet și total

Pentru a adăuga un antet sau un rând cu totaluri la tabel, folosiți următorii parametri în sintaxă:

%%$TABLE(Variable;0;0)$%%
Tabel desenat folosind editorul Planfix
%%$ENDBLOCK$%%

Exemplu: %%$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$%%


Rezultat:

# 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

Numerele evidențiate în roșu indică câte rânduri să folosiți în antet și în totaluri.

De exemplu, numerele (1;1) din exemplul de mai sus înseamnă că un rând la început va fi folosit pentru antetul tabelului și un rând la sfârșit va fi folosit pentru totaluri.

Pentru a folosi două rânduri în antetul tabelului, specificați astfel — (2;1).

Exemplu: %%$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$%%


Rezultat:

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

Exemplu cu condiție

%%$TABLE(Variable;0;0;Condition_WITHOUT_If)$%%
Table drawn using the Planfix editor
%%$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$%%


Rezultat:

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


Pentru a adăuga un antet la tabel, faceți clic dreapta pe acesta și selectați Row - Insert Row Above:

Pvy4PR.jpg

FOREACH and TABLE with infoblocks

Când parsați un email sau răspundeți la o cerere HTTP, primiți mai multe linii de date și doriți să le adăugați sub formă de text structurat sau tabel:

  • Extrageți datele în infoblocuri:
    • from JSON
    • from HTML table
  • Apoi folosiți următoarea sintaxă:

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

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


Exemplu

Să extragem date în infoblocurile "Product" și "Price" și să le adăugăm în tabel:

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

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

%%$ENDBLOCK$%%


Rezultat:

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


Mergeți la

  • Go to