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

Примеры формул

Автонумерация записей с пересчётом при удалении

Содержание Введение Прикладная задача Исходные данные Настройка автонумерации связанных записей Тестирование Связанные статьи Введение В Comindware Platform каждой записи, пользовательской задаче, форме, экземпляру процесса и любому объекту присваиваются уникальный ID. В рамках одного экземпляра Comindware Platform... Подробнее


Автонумерация записей с помощью формулы, C#-скрипта или выражения N3

Содержание Введение Прикладная задача Автонумерация с помощью формулы Тестирование Автонумерация с помощью C#-скрипта в процессе Тестирование Автонумерация с помощью C#-скрипта в сценарии Тестировани... Подробнее


Атрибут типа «Список значений». Вычисление текстового значения и фильтрация с помощью N3 и формул

Содержание Введение Прикладная задача Исходные данные Настройка получения текстового значения атрибута типа «Список значений» на определённом языке Настройка распределения заявок по значению атрибута типа «Список значений» Фильтрация записе... Подробнее


Атрибут типа «Список значений». Фильтрация связанных записей по значению атрибута с помощью N3

Содержание Введение Прикладная задача Исходные данные Распределение заявок по значению атрибута список значений Тестирование Связанные статьи Введение В ряде случаев требуется отображать записи с определённым значением атрибута ... Подробнее


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

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


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

Для того, чтобы получить всех пользователей из определенной группы, включая пользователей подгрупп первого уровня, которые включены в состав указанной группы, введите следующее выражение: UNION(from a in (from b in db->_AccountGroup where b->groupName == "Менеджеры" select b->subGroups->id) select a->cmw.account.groupUsers, (from ... Подробнее


Вычисление гиперссылки на запись, задачу или экземпляр процесса с помощью формул

Содержание Введение Универсальная гиперссылка на запись, задачу или экземпляр процесса Гиперссылка на определённую форму конкретной записи Гиперссылка на экземпляр процесса Гиперссылка на пользовательскую задачу Пример: формирование гиперссылок на записи и экземпляры процесса Тестирование приложения Связанные статьи Введение Каждой записи, п... Подробнее


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

Для того чтобы вычислить срок выполнения задачи, учитывая выходные и праздничные дни (для этого в платформе должен быть создан справочник праздничных дней), введите следующее выражение: 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 Platform позволяет также писать подзапросы from, если, например, необходимо дополнительно сравнить определенный параметр с каким-то другим. Для ... Подробнее


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

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


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

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


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

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