Дизайнер бизнес-процессов > Шаблоны документов / Синтаксис шаблонов

Синтаксис шаблонов

Шаблон документа, загружаемый в  QuickBPM, может содержать любой текст, переменные, функции, условия и циклы. Добавляя шаблон в бизнес-процесс, вы сможете связать поля из вашего шаблона с контекстными переменными процесса.

Переменные

Все переменные в шаблоне должны выглядеть следующим образом: {$имя_переменной}. Имя переменной уникально и пишется латинскими буквами, например, {$kontragent}. Такая переменная позволит подставить наименование контрагента при создании договора в бизнес-процессе.

Функции

Функции для работы со строчным типом данных

Эти функции позволяют выводить текст в разном формате.

Для примера в качестве переменной $stroka1 будем использовать фразу «Заказ оформлен».

UpperCase(param1: строка) – переводит текст в верхний регистр.

начало примера

Пример: {UpperCase({$stroka1})} -> ЗАКАЗ ОФОРМЛЕН

конец примера

LowerCase(param1: строка) – переводит текст в нижний регистр.

начало примера

Пример: {LowerCase({$stroka1})}  -> заказ оформлен

конец примера

Capitalize(param1: строка) – переводит первую букву каждого слова в заглавную.

начало примера

Пример: {Capitalize({$stroka1})} -> Заказ Оформлен

конец примера

Substr(param1: строка, length: число, <from: число>) – обрезает текст в соответствии с указанным количеством символов.

начало примера

Пример:

{Substr({$stroka1}, 0, 3)} -> Зак

{Substr({$stroka1}, 4)} -> з оформлен

конец примера

Функция ToString()

Функция ToString() универсальна и позволяет выводить в документе следующие типы данных:

Подробно про типы данных, используемые в  QuickBPM, вы можете прочитать в статье Типы данных в системе.

Число

Для этого типа данных используется следующий синтаксис: ToString(param1: число, <format: строка>, <locale: строка>).

Для примера в качестве $int1 будем использовать целое число 546.

начало примера

Пример: {ToString({$int1})}  -> 546

конец примера

По умолчанию число выводится цифрами. Для того чтобы вывести число прописью, используйте формат astext.

начало примера

Пример: {ToString({$int1}, astext)} -> пятьсот сорок шесть

конец примера

Для того чтобы вывести число прописью на другом языке, необходимо указать локаль. На данный момент доступны локали ru-RU для русского языка и en-US для английского языка.

начало примера

Пример: {ToString({$int1}, astext, en-US)} -> five hundred forty-six

конец примера

Обратите внимание, что дробные числа вывести прописью нельзя.

Строка

Строка позволяет отобразить в документе текстовую информацию.

Для этого типа данных используется следующий синтаксис: ToString(param1: строка).

Для примера возьмем $str1 = «отправлено на согласование».

начало примера

Пример: {ToString({$str1})}  -> отправлено на согласование

конец примера

Категория

Тип данных Категория используется для того, чтобы выбирать определенное значение из списка. Например, при выборе способа оплаты можно указать, производится ли оплата картой или наличными.

Для этого типа данных используется следующий синтаксис: ToString(param1: категория).

При создании контекстной переменной этого типа в процессе указывается ее название и код. Укажите соответствующий код в функции ToString, чтобы в документе, формируемом по шаблону, отобразилось название переменной.

Для примера в качестве переменной $enum1 возьмем оплату картой: { «code»: «karta», «name»: «<Картой» }.

начало примера

Пример: Оплата производится {ToString({$enum1})} -> Оплата производится картой

конец примера

Выбор «да/нет»

У этого типа данных два варианта: Да и Нет. Вы можете их переименовать, например, Согласовано и Не согласовано.

Для примера возьмем $bool1 = true. Вариант Да (yesValue) определен как «Согласовано».

начало примера

Пример: {ToString({$bool1})} -> Согласовано

конец примера

Деньги

Вы можете вывести в документе денежную сумму в различном формате.

Для этого типа данных используется следующий синтаксис: ToString(param1: деньги, <format: string>, <locale: string>).

Доступны следующие значения format:

начало примера

Пример:

short -> 1005, 56 (разделитель тысячных и целой/дробной части соответствует локали)

sign -> 1005, 56 ₽

full -> 1005 рублей 56 копеек

astext -> Одна тысяча пять рублей 56 копеек

wildcard -> вы можете задать свой формат, например, {ToString({$money1}, «%i руб. %f коп.»)}. В этом случае сумма отобразится следующим образом: 1005 руб. 56 коп. (%i - целая часть, %f - дробная часть)

конец примера

Вы также можете указать локаль. На данный момент доступны локали ru-RU для русского языка и en-US для английского языка.

начало примера

Пример: {ToString({$money1}, full, en)} -> 1 005 rubles 56 kopecks

конец примера

ФИО

Вы можете указать в документе фамилию, имя и отчество в нужном формате и падеже.

Для этого типа данных используется следующий синтаксис: ToString(param1: ФИО, <format: строка>, <case: строка>.

 

начало примера

Доступны следующие значения format:

long – будет указана фамилия, имя и отчество полностью (Сергеев Сергей Николаевич)

short – будет указана фамилия и инициалы (Сергеев С. Н.)

конец примера

 

начало примера

Доступны следующие значения case:

nominative | именительный | И – именительный

genitive | родительный | Р – родительный

dative | дательный | Д – дательный

accusative | винительный | В – винительный

instrumental | творительный | Т – творительный

prepositional | предложный | П – предложный

конец примера

Обратите внимание, функция максимально правильно склоняет имя в том случае, если указано отчество.

начало примера

Пример:

{ToString({$fio1}) -> Сергеев Сергей Николаевич

{ToString({$fio1}, short)  -> Сергеев С.Н.

{ToString({$fio1}, short, Р) -> Сергеева Сергея Николаевича

конец примера

Телефон

Вы можете создать маску для ввода телефонного номера. Для этого используется следующий синтаксис: ToString({$phone1}, «+7-XXX-XXX-XX-XX»).

Телефонный номер заполняется цифрами слева направо. Для примера возьмем номер 89634998877.

начало примера

Пример:

{ToString({$phone1}, «+7-XXX-XXX-XX-XX»)} -> +7-963-499-88-77

{ToString({$phone1}, «X-XXX-XXX-XX-XX»)} -> 8-963-499-88-77

{ToString({$phone1}, «XX-XX-XX»)} -> 99-88-77

конец примера

Дата/Время

Вы можете указать в шаблоне дату и время, например, дату поставки оборудования по договору. Для этого используется следующий синтаксис: ToString(param1: дата/время, <format: строка>, <locale: строка>).

У типа данных Дата/Время есть разные подтипы: Дата/Время, Дата, Время.

При использовании функции без дополнительных аргументов {ToString({$date1})} и при использовании формата short в {ToString({$date1}, short)}, данные в документе будут выглядеть следующим образом:

начало примера

Пример:

Дата/время - 09.04.2019 19:18
Дата - 09.04.2019
Время - 15:18

конец примера

Если задан формат long в {ToString({$date1}, long)}, то данные будут выглядеть следующим образом:

начало примера

Пример:

Дата/время - 09.04.2019 19:18:43

Дата - 9 апреля 2019 г.

Время - 15:18:43

конец примера

Вы также можете указать локаль. На данный момент доступны локали ru для русского языка и en-US для английского языка.

начало примера

Пример:

{ToString({$date1}, short, en-US)} -> 4/11/19 7:15 am

конец примера

Обратите внимание, подтип Дата/Время учитывает временную зону компании и выводит дату с учетом этой зоны. Подтипы Дата и Время выводят абсолютные значения.

Функция Now

Для того чтобы подставить в шаблон текущую дату и время с учетом временной зоны, используйте функцию Now.

Синтаксис функции: Now(<format: строка>, <locale: строка>, <timezone: строка>).

С различными значениями format дата будет выводиться по-разному.

начало примера

Доступны следующие варианты:

date -> дата (13.04.2019)

time -> 15:34

timelong -> 15:34:22

datelong -> 13 апреля 2019 г.

short (по умолчанию) -> 13.04.2019 15:33

конец примера

Для locale доступны значения ru-RU для русского языка и en-US для английского языка.

Значение timezone задается в формате Europe/Samara, America/Toronto. Примерный список значений вы можете найти здесь.

Условия

В зависимости от условия, в документе можно вывести тот или иной текст.

Условие начинается с оператора {if <условие>} и заканчивается оператором {end}. <условие> –это любое условие, например, {$имя_переменной} = «true»}

Можно использовать условия двух видов:

начало примера

Пример 1

{if {$user_name} = «Петров Илья»} С уважением, Петров Илья {end}

конец примера

начало примера

Пример 2

2. {if {$week.day} = «Пятница»}

До свидания, хороших выходных!

{else}

До свидания!

{end}

конец примера

Условные операторы

При написании условий вы можете использовать следующие операторы:

= – равно

<> – неравно

> – больше

>= – больше или равно

< – меньше

<= – меньше или равно

Цикл for

Цикл for используется для того, чтобы отобразить в документе список, например, несколько товаров один за другим.

начало примера

Пример

{ for fr in {$tovar} }

заказан товар – {$fr}

{end}

конец примера

При загрузке шаблона в систему и извлечении цикла «for» из документа, поле для переменной будет определено как «список».

синт шабл 1

 

Пример

Таблицы

Если вам нужно выгрузить в документ данные из таблицы  QuickBPM, вы можете использовать шаблон в формате xlsx. Например, список товаров с указанием их количества и стоимости, заполненный в процессе обработки заказа.

Настраивая шаблон, используйте цикл for и укажите переменную процесса, в которой хранятся данные таблицы. Далее вам нужно указать в шаблоне коды соответствующих полей приложения. Например, для колонки, в которой будет отображаться стоимость, мы укажем {$row.data.item_price}, где item_price это код поля «Стоимость». row.data обращается к элементу в цикле и позволяет заполнить в документе столько строк, сколько заполнено в таблице в  QuickBPM.

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

1.PNG