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

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

Автонумерация записей с помощью формулы, 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 Business Application 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 – системное имя Шаблона записи, на ко... Подробнее