2.2. Список функций
Таблица 1 Общий список функций
Название функции | Пример использования | Краткое описание | Обязательные параметры | Опциональные параметры | Принимаемые типы | Возвращаемые типы | Принимает множественные значения | Возвращает множественные значения |
---|---|---|---|---|---|---|---|---|
Status | Commission^parent:Status(Assigned,Executing).Job^parent.Assignee | Фильтрует доменные объекты по статусу | Допустимый статус | Допустимые статусы до 999 | REFERENCE | REFERENCE | Да | Да |
isEmpty | RegDate:isEmpty - не заполнено поле дата регистрации | Проверяет, что в поле нет значения (в колонке лежит null), для типов String/Text длина строки отлична равно 0 | Отсутствуют | Отсутствуют | Любой | BOOL | Нет | Нет |
isNotEmpty | RegDate:isNotEmpty - заполнено поле дата регистрации | Проверяет, есть ли значение (в поле не null), для типов String/Text длина строки отлична от 0 | Отсутствуют | Отсутствуют | Любой | BOOL | Нет | Нет |
format | HierRoot.createdDate:format("dd-MM-yyyy") - преобразует дату создания корневого объект в строку по формату "dd-MM-yyyy" sum:format("#.####") - ограничивает отображение 3-мя знаками после запятой | Выполняет форматирование числовых и временных значений. | 1 - шаблон форматирования | Отсутствуют | DATETIME DATETIMEWITHTIMEZONE TIMELESSDATE DECIMAL LONG | STRING | Да | Да |
split | Subject:split(";") - разбивает заголовок на массив строк по символу ";" | Производит разбиение строк по regex. Является обёрткой для java.lang.String#split(java.lang.String) | 1 - regex делимитер | Отсутствуют | STRING TEXT | LIST<STRING> | Да (в этом случае возвращает LIST<LIST<STRING> | Да |
get* | Subject:split(";"):getString("1") - разбивает заголовок на подстроки и берёт вторую из них | Получение из массива значений, значения под порядковым номером. Для каждого типа выделена отдельная функция, т.к. DOEL жестко типизирован и для дальнейшей работы необходимо однозначно знать, что вернулось из массива, на этапе построения цепочки вызовов. Функции по типам описаны в таблице 2 | 1 - номер элемента массива | Отсутствуют | LIST | Зависит от функции, подробно в таблице 2 | Да | Нет (в случае LIST<LIST> возвращается элемент LIST, который внутри себя содержит множественное значение) |
in | Module.Type.Alias:in("OutputDocs", "OutputDocsPrev") - проверяет, что в ss_moduletype, который получается стандартной цепочкой вызовов, лежит строка "OutputDocs" или "OutputDocsPrev" с учётом регистра | Проверяет, есть ли значение результат вычисления в переданном массиве параметров с учётом регистра. | от 1 до (Integer.MAX_VALUE-1) список допустимых значения для поля | Отсутствуют | STRING | BOOL | Да (если подходит хоть одно значение из массива, считаем что попадаем условие соблюдено) | Нет |
inIgnoreCase | Module.Type.Alias:inIgnoreCase("OUTPUTDOCS", "OutputDOcsPrev") - проверяет, что в ss_moduletype, который получается стандартной цепочкой вызовов, лежит строка "OUTPUTDOCS" или "OutputDocsPrev" без учёта регистра | Проверяет, есть ли значение результат вычисления в переданном массиве параметров без учёта регистра. | от 1 до (Integer.MAX_VALUE-1) список допустимых значения для поля | Отсутствуют | STRING | BOOL | Да (если подходит хоть одно значение из массива, считаем что попадаем условие соблюдено) | Нет |
max | F_DP_Rkk_SigningInfo^Owner.idx:max - возвращает максимальный порядковый номер подписанта (позволяет определить количество подписантов) | Определяет максимальное значение из предоставленного списка | Отсутствуют | Отсутствуют | DATETIME DATETIMEWITHTIMEZONE TIMELESSDATE DECIMAL LONG | Совпадает с переданным | Да | Нет |
min | Log_OpenEvent_Apr^owner.createdDate:min - возвращает время, в которое первый из раз ЛС был открыт пользователем | Определяет минимальное значение из предоставленного списка | Отсутствуют | Отсутствуют | DATETIME DATETIMEWITHTIMEZONE TIMELESSDATE DECIMAL LONG | Совпадает с переданным | Да | Нет |
not | active:not | Отрицание для bool значение | Отсутствуют | Отсутствуют | BOOL | BOOL | Нет | Нет |
qty | F_DP_Rkk_SigningInfo^Owner:qty - подсчёт количества подписантов | Возвращает количество значений в списке. Не имеет параметров. При подсчёте количества значений учитываются только значения, отличные от NULL (заполненные). | Отсутствуют | Отсутствуют | Любой | LONG | Да | Нет |
id | punid:split("FF"):getString("0"):id - получение id объекта из nunid2punid_map, по punid | Преобразует строковое представление platformId к Reference | Отсутствуют | Отсутствуют | STRING | REFERENCE | Да | Да |
join | F_DP_Rkk_SigningInfo^Owner.signer.orig_shortname:join(", ") - объединяет shortName подписантов через запятую | Объединяет массив строк в одну строку через сепаратор | 1- сепаратор, через который нужно объединить строки | Отсутствуют | LIST<STRING> | STRING | Да | Нет |
toString | volume:toString | Приводит значение к строке. Для REFERENCE - строит stringRepresentation, для LIST рекурсивно вызывает себя для для элементов массива. Для остальных типов вызывает java.lang.Object#toString, для value | Отсутствуют | Отсутствуют | Любой | STRING LIST<STRING> | Да | Нет |
Для каждого типа данных, выделена отдельная get функция, т.к. на момент построения цепочки вызовов, doel должен знать какой тип возвращает каждый элемент цепочки, что невозможно с общим методом get. Ниже представлена таблица соответствия, какую функцию необходимо использовать для каждого типа.
Таблица 2 Детализация get функций
Имя функции | Тип для обработки |
---|---|
getBool | BOOL |
getDateTime | DATETIME |
getDateTimeWithZone | DATETIMEWITHTIMEZONE |
getDecimal | DECIMAL |
getList | LIST |
getLong | LONG |
getRef | REFERENCE |
getString | STRING |
getTimelessDate | TIMELESSDATE |