Змінні в тексті

Матеріал з Planfix
Версія від 01:46, 1 грудня 2025, створена PlanfixBot (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до: навігація, пошук

Ця довідкова стаття не стосується шаблонів документів. Читайте, як використовувати змінні в шаблонах документів тут.

Навігація

Змінні зберігають деяке значення, наприклад число, рядок або інший тип даних. Змінні використовуються в:

  • Назві завдання (у шаблоні завдання або при створенні завдання)
  • Описі завдання (у шаблоні завдання або при створенні завдання)
  • Шаблонах електронної пошти
  • Діях сценаріїв, кнопках, вхідних вебхуках, правилах пошти для завдань:
    • Send HTTP request
    • Send SMS
    • Write to WhatsApp
    • Write to Instagram
  • Масових діях, сценаріях, кнопках, вхідних вебхуках, правилах пошти для завдань:
    • Change name
    • Change description
    • Add comment
    • Set field value (для полів типу "Text")


Щоб додати змінну в текст, наприклад, в опис завдання, натисніть на посилання «different variables» (1), створіть змінну і додайте її в текст потрібного поля в шаблоні завдання (2):

vBmUi1.jpg

Обчислення зі змінними

Іноді буває недостатньо просто вставити значення змінної в текст — потрібно ще й виконати обчислення зі значеннями змінних або обробити отриманий рядок. Для таких дій використовується наступний синтаксис:

%%%FORMULA TEXT%%%

Приклади

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

Важливо

  • Текст формули повинен бути записаний в одному рядку і не може бути розбитий. Іншими словами, формулу не можна перенести в наступний рядок клавішею Enter.
  • Змінні у формулі не можна форматувати (наприклад, зробити напівжирним або курсивом).
  • Якщо потрібно виділити результат формули напівжирним, застосуйте форматування до всієї формули разом із результатом.

IF

Щоб вставляти текст залежно від значень змінних (умов), використовуйте наступний синтаксис:

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

Приклад

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


Результат:

VIP CUSTOMER

ELSE

ELSE використовується тільки разом з IF. Коли умова в IF не виконується, відображається текст з частини ELSE блоку.

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

Приклад

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


Результат:

  • Якщо поле не заповнене, буде відображено повідомлення "The field [Invoice №] is not filled in".
  • Якщо поле заповнене, буде відображено повідомлення "The required task field is filled in! :)".

ELSEIF

Допомагає створити більш складний вираз з умовами:

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


Примітка

  • Останній блок ELSE є необов'язковою частиною блоку.

Приклад

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


Результат:

  • Якщо усі три поля не заповнені, буде відображено тільки перше повідомлення "The field [Invoice Number] is not filled in", решта пропуститься.
  • Якщо поля "Invoice Number" і "UPD Number" заповнені, але поле "Contract Number" не заповнене, тоді буде показано відповідне повідомлення "The field [Contract Number] is not filled in".

FOREACH

Коли змінна представляє список значень, наприклад {{Task.Subtasks}} або {{Task.Assignee}}, і потрібно відобразити інформацію для кожного значення, використовуйте наступний синтаксис:

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


Важливо: у цій частині виразу — %%$FOREACH(Variable;Delimiter)$%% — обов'язково вказуйте змінну першого рівня, тобто {{Task.Subtasks}} або {{Task.Assignee}}, і нічого більше.

Приклад

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


Результат:

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


Результат:

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

Приклад з умовою

Синтаксис:

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


Результат

З усього списку контрагентів будуть показані тільки ті, у яких сума контракту більше 1000:

LLC Sunrise, 1500

LLC Sunset, 1700

LLC Dawn, 2500

ELSE всередині FOREACH

Синтаксис:

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


Результат:

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

TABLE

Якщо змінна представляє список значень і потрібно показати інформацію для кожного значення у вигляді таблиці, використовуйте наступний синтаксис:

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

Приклад

Приклад показує, як витягти тільки потрібні блоки з доданого Аналітичного тегу (Data tag) у завданні і відправити цю інформацію клієнту у вигляді таблиці. Таблицю додають за допомогою редактора 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")%%%


Результат:

Order №2118

Graphic design 1 600.00
Programming 3 000.00
Development of TA 300.00

Total order amount: 4 900.00 dollars

Приклад із заголовком та підсумком

Щоб додати заголовок або рядок підсумків у таблицю, використовуйте такі параметри в синтаксисі:

%%$TABLE(Variable;0;0)$%%
Таблиця намальована за допомогою редактора Planfix
%%$ENDBLOCK$%%

Приклад: %%$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$%%


Результат:

# 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

Цифри, виділені червоним, показують, скільки рядків використовувати у заголовку та підсумках.

Наприклад, числа (1;1) у наведеному прикладі означають, що один рядок на початку буде використано для заголовка таблиці, а один рядок в кінці — для підсумків.

Щоб використовувати два рядки в заголовку таблиці, вкажіть так — (2;1).

Приклад: %%$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$%%


Результат:

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

Приклад з умовою

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


Результат:

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


Щоб додати заголовок до таблиці, клацніть по ній правою кнопкою миші і виберіть Row - Insert Row Above:

Pvy4PR.jpg

FOREACH та TABLE з інфоблоками

Коли ви парсите електронний лист або відповідаєте на HTTP-запит, отримуєте кілька рядків даних і хочете додати їх у вигляді структурованого тексту або таблиці:

  • Витягніть дані в інфоблоки:
  • Потім використайте наступний синтаксис:

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

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


Приклад

Давайте витягнемо дані в інфоблоки "Product" і "Price" та додамо їх у таблицю:

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

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

%%$ENDBLOCK$%%


Результат:

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


Перейти