Справка по системе Платформа ELMA BPM
×
Меню

Функции в запросах

Функции, участвующие в запросах, можно условно разделить на два вида: пользовательские и системные.

Пользовательские функции

Пользовательские функции бывают двух видов:
К виду QueryFunctionResult относятся следующие функции:
    Now – текущая дата и время с точностью до секунды;
   Today – текущая дата и время в формате <дд:мм:гг>, где дд – число месяца, мм – месяц, гг – 2 последние цифры года (00:00:00);
    MinValue – минимально допустимое значение переменной для типа "Дата/время";
    MaxValue – максимально допустимое значение переменной для типа "Дата/время".
CreationDate <= DateTime(2014, 12, 17, 11, 15) – поиск контрагентов, дата создания которых меньше или равна 17.12.2014 года 11 часов 15 минут.
Uid = Guid('27E70DFE-2A76-4F1D-A99A-CDF31C62D618') – поиск контрагентов с указанным идентификатором.
TypeUid = TypeReference('ContractorLegal') – поиск всех юридических лиц.
ZapolnenyDogovory = Reference('298b2c71-619f-463c-95b2-8e029085680d', 15) – поиск ответов на вопрос по указанным идентификаторам.
SpisokFilialov = DropDownItem('Новосибирский филиал') – поиск по указанному филиалу.
Interval > WorkTime(1, 0, 00) – поиск всех объектов, в которых указан интервал более 1 рабочего дня.
К виду QueryInFunction относятся следующие функции:
CreationAuthor IN (CurrentUser(), 2) - найти контрагентов, которые были созданы текущим пользователем или пользователем с идентификатором 2.
Contacts IN (Priority IN (Enum('High'), Enum('Low'))) – поиск контрагентов, контактные лица которых имеют высокий и низкий приоритет.
В том случае, если первый параметр (дата начала периода) пустой, то интервал времени будет задан от минус бесконечности (минимально допустимого значения переменной) до второго параметра (конца периода). Если второй параметр (дата конца периода) пустой, то интервал времени будет задан от первого параметра (даты начала периода) до текущей даты:
CreationDate IN RelativeDateTime('-1м', '-1м') – поиск всех контрагентов, созданных в прошлом месяце.
TypeUid in SubTypes('ContractorIndividual') – поиск всех физических лиц.
Responsible in GetChiefByUser(1) – поиск всех контрагентов, ответственными за которых являются вышестоящие руководители пользователя с id=1.
Responsible in GetUserSubordinate(101) – поиск всех контрагентов, ответственными за которых являются подчиненные пользователя с id=101.
Responsible in GroupUsers(109) – поиск всех контрагентов, ответственными за которых являются участники группы с id=109.
Id in UserGroups(102) – поиск всех групп пользователей, участником которых является пользователь с id=102.
CreationAuthor in (FROM User SELECT Id WHERE OrganizationItems in UserOrganisationItems(1)) – поиск всех контрагентов, автором создания которых является пользователь определенной должности (с id=1).

Системные функции

COUNT() – функция для построения сложных подзапросов, результатом которой является целое число. Правила построения системной функции:
     property – поле типа "Список".
COUNT(Contacts) > 0 – поиск контрагентов, у которых есть контактные лица.
     FROM entity WHERE expression, где:
     entity – объект, с которым работает подзапрос;
      expression – выражение для фильтрации записей объекта, также может представлять из себя вложенный запрос.
COUNT(FROM Contact WHERE NOT Skype IS NULL AND Contractor = PARENT.Id) >= 1 – поиск контрагентов, количество контактов которых не менее 1, при условии, что поле "Skype" у контактов заполнено и контрагент контакта совпадает с текущим.
COUNT(GroupUsers(1)) – количество пользователей группы с id=1.
Подробнее о работе с языком EQL см. в статье Базы знаний.

См. также: