Перейти к содержанию

Язык выражений

Введение в язык выражений Comindware Business Application Platform

Настройка рабочей среды и пользовательского интерфейса Comindware Business Application Platform производится простым перетаскиванием элементов и не требует программирования. В случае если ваш бизнес требует нетривиального подхода, воспользуйтесь возможностями языка выражений Comindware Business Application Platform, легкого, но эффективного языка п... Подробнее


Основные правила написания выражений

Работая с выражениями в Comindware Business Application Platform, придерживайтесь следующих правил: 1. В выражениях используйте только идентификаторы и системные имена, а не имена, отображаемые в продукте. 2. Идентификаторы и системные имена чувствительны к регистру. 3. Системные имена должны начинаться с буквы или подчеркивания (_). В самом систем... Подробнее


Список функций языка выражений Comindware

В данном разделе приведен синтаксис и использование функций в языке выражений Comindware.  ADD()   Описание Суммирует два значения. Конкатенация строк не поддерживается.  Синтаксис функции ADD(argument1, argument2)  Аргументы argument1: число, argument2: число argument1: длительность, argument2: длительность argument1: дата и время, argume... Подробнее


Список литералов языка выражений Comindware

DATE()   Описание Объявляет дату в ISO формате. Значения даты и времени расположены в порядке от наиболее значимых к наименее значимым: год, месяц (или неделя), день, час, минута, секунда, доля секунды. Формат Дата: ГГГГ-ММ-ДД  Время: чч:мм:сс  Синтаксис DATE(argument1)  Аргументы argument1: строка  Возвращает дата/время DURATION(... Подробнее


Список операторов языка выражений Comindware

В данной статье приведен синтаксис и использование операторов в языке выражений Comindware Business Application Platform. from   Описание Выражение запроса должно начинаться с оператора from. Выражение запроса также может содержать начинающиеся с from подзапросы. Оператор from состоит из следующих компонентов:  Источник данных, по которому вы... Подробнее


Вызов связанных данных

Для того чтобы вызвать данные связанного шаблона записи, используя ссылку на этот шаблон, присоедините постфикс «Ref» к системному имени ссылки, добавьте символ «->» и системное имя вызываемого атрибута связанного шаблона записи. В приведенном ниже примере показано, как использовать постфикс «Ref»: Шаблон записи Атрибуты Car (Машина) Driver... Подробнее


Вычисление всех пользователей группы/групп

Для вычисления пользователей, входящих в определённую/ые группу/ы без учета подгрупп и их участников (в случае, если в группе нет вложенности), введите следующее выражение: (from ag in db->_AccountGroup where OR (ag->groupName == "users",ag->groupName == "admins") select ag->groupUsers->id) где: "users", "admins" — назв... Подробнее


Вычисление гиперссылки на задачу

Для того чтобы вычислить ссылку на задачу (для передачи в сообщении, например), введите следующее выражение: FORMAT("<p><a href='https://comindware.com/#task/{0}'>Ссылка на задачу</a></p>",LIST($zadacha)) где: https://comindware.com – ссылка на текущий инстанс; zadacha – системное имя атрибута, где хранится... Подробнее


Вычисление гиперссылки на запись

Для того, чтобы вычислить ссылку на определенную запись, например, для отправки в уведомлении, введите следующее выражение: FORMAT("<a href=https://comindware.com/#form/oa.2/form.3/{0}>Ссылка на заявку</a>",LIST($id)) где: https://comindware.com/#form/oa.1/form.1 – ссылка на форму записи; Ссылка на заявку - отображаемый ... Подробнее


Вычисление гиперссылки на экземпляр процесса

Для того, чтобы вычислить ссылку на экземпляр процесса, который запущен по текущей записи (чтобы, например, перейти на схему и просмотреть историю процесса), введите следующее выражение: FORMAT("<a href=http://comindware.com/#process/{0}/map>Ссылка на экземпляр процесса</a>",LIST($processid)) где: http://comindware.com – с... Подробнее


Вычисление крайнего срока задачи с учетом выходных и праздничных дней

Для того чтобы вычислить срок выполнения задачи, учитывая выходные и праздничные дни (для этого в платформе должен быть создан справочник праздничных дней), введите следующее выражение: WORKHOURS(NOW(),18,DURATION("PT9H"),DURATION("PT9H"),LIST((from a in db->holliday_calendar select a->Data))) где: 18 – количество рабочих часов, данны... Подробнее


Вычисление текста сообщения в стиле системного уведомления о задаче

Для того, чтобы передать в тело сообщения текст в формате системного уведомления о задаче, введите следующее выражение: FORMAT(    '<p>&nbsp;</p><table border="0" width="100%" cellspacing="0" cellpadding="40" align="center" bgcolor="#eeeeee"><tbody><tr><td align="center" valign="top"><table border... Подробнее


Вычисление фото из профиля пользователя

Для того, чтобы получить фото из профиля определенного пользователя (например, для составления карточки сотрудника), введите следующее выражение: FORMAT("<img height='150' src = 'https://instance.net/api/GetProfilePhoto?id={0}&size=large'> </img>",LIST($Polzovatel)) где: https://instance.net — ссылк... Подробнее


Назначение исполнителя равного менеджеру текущего проекта

Для того чтобы назначить исполнителем менеджера проекта (руководителя, ответственного и т.п.), введите следующее выражение:  from a in db->Project where a->Work == $id  select a->Manager где: Project – шаблон записи с проектами; Work – ссылка на текущий Шаблон записи; Manager – атрибут типа пользователь, в котором хранится менеджер... Подробнее


Настройка отображения атрибута типа «Дата / Время»

Для того чтобы настроить отображение даты определенным образом (в данном примере это ««1» марта 2021г.»), введите следующее выражение: FORMAT("«{0}» {1} {2}г.", LIST( DAY($date), IF ( (MONTH($date) == 1), "января", IF ( (MONTH($date) == 2), "февраля", IF ( (MONTH($date) == 3), "марта", IF ( (MONTH($date) == 4), "апреля", IF ( (MONTH($date) == 5... Подробнее


Ограничение на проставление чекбокса в коллекции

Для того, чтобы можно было проставить только один чекбокс в коллекции (например, выбор только одного критерия из таблицы), нужно настроить правило на изменение типа доступа на «Только для чтения» для данного логического атрибута, и ввести следующее выражение:  EQUALS(COUNT((from a in db->Goals where AND(a->EPAF == $id,a->Boolean == tru... Подробнее


Ограничение отображения кнопки при пустом исполнителе

Для того, чтобы скрыть кнопку в Шаблоне процесса, если пустой исполнитель (например, для кнопки "Завершить задачу"), введите следующее выражение в условии:  AND(NOT(EMPTY($assignee)),$cmw.taskStatus == "cmw.taskStatus.inProgress") где: assignee – системное имя системного атрибута, хранящего исполнителя задачи; cmw.taskStatus – системное имя... Подробнее


Ограничение поля определенным количеством цифр

Для того, чтобы ограничить поле определенным количеством цифр (например, номер карты или ИНН), введите следующее выражение:  MATCHES($Nomerkarty, "^[0-9]{16}([0-9]{0})?$") где: Nomerkarty – системное имя текстового атрибута; {16} – нужное количество цифр. ... Подробнее


Ограничение проставления кириллицы в текстовом атрибуте

Для того, чтобы ограничить возможность ввода в текстовом поле букв кириллицы (например, при заполнении кода или названия записи на английском), введите следующее выражение: NOT(MATCHES($atribut,"[а-яА-ЯёЁ]")) где: atribut — системное имя текстового атрибута.... Подробнее



Ограничение срока выполнения определенным периодом

Для того, чтобы ограничить срок выполнения задачи/проекта определенным периодом (например, месяцем), введите следующее выражение в Правило на форме - Показать ошибку: AND(GREATEREQ($Srokvypolneniya,STARTOFMONTH($OtchetnyyperiodRef->Mesyats)),LESSEQ($Srokvypolneniya,ENDOFMONTH($OtchetnyyperiodRef->Mesyats))) где: Srokvypolneniya - атри... Подробнее


Отображение картинки во вложении

Для отображения картинки, загруженной во вложении, на форме, создайте атрибут типа Текст и введите следующее выражение: FORMAT("<p><img src='/DocumentContent?id=document.{0}'/></p>",LIST($Fotokarty)) где: Fotokarty  - системное имя атрибута типа "Документ", куда изначально загружается фото.... Подробнее


Отображение кнопки при пустом исполнителе

Для настройки отображения кнопки в Шаблоне процесса при условии отсутствия назначенного исполнителя, введите данное выражение: на языке выражений:  EMPTY($assignee) на языке N3 @prefix cmw: <http://comindware.com/logics#>.{not{?item cmw:assignee ?.}.true -> ?value.} ... Подробнее


Отображение поля, если текущий пользователь входит в определенную группу

Для того, чтобы установить условие на отображение поля, если текущий пользователь входит в определенную группу (например, для возможности редактирования определенных полей записи только некоторым группам пользователей), введите следующее выражение:  EQUALS(USER(),(from a in db->_AccountGroup where a->groupName == "Admins" select a->gro... Подробнее


Парсинг Email до знака @

Для того чтобы из электронной почты вывести все символы до знака @ (например, для генерации логина для личного кабинета), введите следующее выражение: SUBSTRING($Email,0,INDEXOF($Email,"@")) Подробнее


Парсинг ИД процесса из темы письма

Для того, чтобы получить ИД из темы письма (например, чтобы понять, какой из процессов запустить по полученному ответу), введите следующее выражение:  SUBSTRING(    $Tema,    INDEXOF($Tema,"[") + 1,    INDEXOF($Tema,"]") - INDEXOF($Tema,"[") - 1) где: Tema – атрибут, который хранит тему из полученного письма.... Подробнее


Подсчет количества записей без учета архивированных

Для того, чтобы подсчитать количество записей с определённым статусом (например, согласованных заявок, оплаченных счетов),  введите следующее выражение: COUNT( (from a in db->requests where AND(EQUALS(a->status, “Согласована”), EQUALS(a-> _isDisabled,false)) select a->id)       ) где: requests – шаблон записи с нужными записями ... Подробнее


Пример подзапроса from

Запрос типа from позволяет обращаться к любому Шаблону записи, связанному или несвязанному с текущим, и получать оттуда данные, или настраивать фильтр на основании определенных параметров where. Comindware Business Application Platform позволяет также писать подзапросы from, если, например, необходимо дополнительно сравнить определенный параметр с ... Подробнее


Проверка на пустое поле и статус

Для того, чтобы установить правило с условием на пустое поле и наличием определённого статуса, введите следующее выражение: AND(EMPTY($Fakticheskietrudozatraty), ($StatusRef->Title == "Ready for build" || $StatusRef->Title == "Acceptance" || $StatusRef->Title == "Closed" || $StatusRef->Title == "In Review")) где: Fakticheskietru... Подробнее


Системные имена атрибутов аккаунтов в Comindware Business Application Platform

Для того, чтобы вернуть какие-либо данные пользователя в системе (например, ФИО или E-mail), необходимо знать системные имена атрибутов пользовательских аккаунтов. Ниже приведён список основных атрибутов пользователя, которые могут быть использованы в различных выражениях и формулах: Системное имя Значение Тип атрибута cmw.account.fullName ФИО... Подробнее


Установка значения атрибута по условию

Для того, чтобы установить определённое значение атрибута (текст, число, дата, логический атрибут, пользователь и т.д.) в зависимости от какого-либо условия (статус, значение другого атрибута, логический атрибут и т.д.), введите следующее выражение:  IF( $StatusRef->Nazvanie == "In progress",        1,      IF($StatusRef->Nazvanie == "Can... Подробнее


Фильтр для отображения пустых записей и записей с определенным параметром в коллекции

Для того чтобы коллекция отображала записи с определенным параметром (например, с какой-либо категорией), но при этом можно было добавлять в коллекцию новые записи, введите следующее выражение: from a in db->KPI where OR(EMPTY(a->Kategoriya),a->Kategoriya == "Обучение") select a->id где: KPI – системное имя Шаблона записи, на ко... Подробнее