Настройка рабочей среды и пользовательского интерфейса Comindware Business Application Platform производится простым перетаскиванием элементов и не требует программирования. В случае если ваш бизнес требует нетривиального подхода, воспользуйтесь возможностями языка выражений Comindware Business Application Platform, легкого, но эффективного языка п... Подробнее
Язык выражений
Работая с выражениями в Comindware Business Application Platform, придерживайтесь следующих правил: 1. В выражениях используйте только идентификаторы и системные имена, а не имена, отображаемые в продукте. 2. Идентификаторы и системные имена чувствительны к регистру. 3. Системные имена должны начинаться с буквы или подчеркивания (_). В самом систем... Подробнее
В данном разделе приведен синтаксис и использование функций в языке выражений Comindware. ADD() Описание Суммирует два значения. Конкатенация строк не поддерживается. Синтаксис функции ADD(argument1, argument2) Аргументы argument1: число, argument2: число argument1: длительность, argument2: длительность argument1: дата и время, argume... Подробнее
DATE() Описание Объявляет дату в ISO формате. Значения даты и времени расположены в порядке от наиболее значимых к наименее значимым: год, месяц (или неделя), день, час, минута, секунда, доля секунды. Формат Дата: ГГГГ-ММ-ДД Время: чч:мм:сс Синтаксис DATE(argument1) Аргументы argument1: строка Возвращает дата/время DURATION(... Подробнее
В данной статье приведен синтаксис и использование операторов в языке выражений Comindware Business Application Platform. from Описание Выражение запроса должно начинаться с оператора from. Выражение запроса также может содержать начинающиеся с from подзапросы. Оператор from состоит из следующих компонентов: Источник данных, по которому вы... Подробнее
Для того чтобы вызвать данные связанного шаблона записи, используя ссылку на этот шаблон, присоедините постфикс «Ref» к системному имени ссылки, добавьте символ «->» и системное имя вызываемого атрибута связанного шаблона записи. В приведенном ниже примере показано, как использовать постфикс «Ref»: Шаблон записи Атрибуты Car (Машина) Driver... Подробнее
Для того чтобы вычислить ссылку на задачу (для передачи в сообщении, например), введите следующее выражение: 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> </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 — ссылк... Подробнее
Для того, чтобы вернуть какие-либо данные пользователя в системе (например, ФИО или E-mail), необходимо знать системные имена атрибутов пользовательских аккаунтов. Ниже приведён список основных атрибутов пользователя, которые могут быть использованы в различных выражениях и формулах: Системное имя Значение Тип атрибута cmw.account.fullName ФИО... Подробнее
Для того чтобы назначить исполнителем менеджера проекта (руководителя, ответственного и т.п.), введите следующее выражение: 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 — системное имя текстового атрибута.... Подробнее
Для того, чтобы ограничить возможность ввода в текстовом поле пробелов (например, при заполнении имени), введите следующее выражение: 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... Подробнее
Для того чтобы из электронной почты вывести все символы до знака @ (например, для генерации логина для личного кабинета), введите следующее выражение: 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 ag in db->_AccountGroup where OR (ag->groupName == "users",ag->groupName == "admins") select ag->groupUsers->id) где: _AccountGroup - имя системной категории Группы; "users", "admins" - названия Групп пользователей.... Подробнее
Запрос типа 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 == "Can... Подробнее
Для того чтобы коллекция отображала записи с определенным параметром (например, с какой-либо категорией), но при этом можно было добавлять в коллекцию новые записи, введите следующее выражение: from a in db->KPI where OR(EMPTY(a->Kategoriya),a->Kategoriya == "Обучение") select a->id где: KPI – системное имя Шаблона записи, на ко... Подробнее