Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 2 Следующий »

:func(arg1,arg2,...)

Вызов функции может быть добавлен после любого элемента DOEL-выражения. Аргументы необязательны, их число (и семантика) зависит от конкретной функции; некоторые функции могут поддерживать переменное число параметров. Строковые аргументы могут заключаться в кавычки.

Функция может менять тип полученного на входе значения, может фильтровать полученный набор значений или сводить этот набор к одному значению.

Имя функции используется для выбора класса, содержащего её реализацию.


Статус

В РАБОТЕ

Раздел


2.2. Список функций

Таблица 1 Общий список функций

Название функции

Пример использования

Краткое описание

Обязательные

параметры

Опциональные

параметры

Принимаемые типы

Возвращаемые типы

Принимает

множественные значения

Возвращает

множественные значения

StatusCommission^parent:Status(Assigned,Executing).Job^parent.AssigneeФильтрует доменные объекты по статусуДопустимый статусДопустимые статусы до 999REFERENCEREFERENCEДаДа
isEmptyRegDate:isEmpty - не заполнено поле дата регистрацииПроверяет, что в поле нет значения (в колонке лежит null), для типов String/Text длина строки отлична равно 0ОтсутствуютОтсутствуютЛюбойBOOLНетНет
isNotEmptyRegDate: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ДаДа
splitSubject:split(";") - разбивает заголовок на массив строк по символу ";"Производит разбиение строк по regex. Является обёрткой для java.lang.String#split(java.lang.String)1 - regex делимитерОтсутствуют

STRING

TEXT

LIST<STRING>Да (в этом случае возвращает LIST<LIST<STRING>Да
get*Subject:split(";"):getString("1") - разбивает заголовок на подстроки и берёт вторую из нихПолучение из массива значений, значения под порядковым номером. Для каждого типа выделена отдельная функция, т.к. DOEL жестко типизирован и для дальнейшей работы необходимо однозначно знать, что вернулось из массива, на этапе построения цепочки вызовов. Функции по типам описаны в таблице 21 - номер элемента массиваОтсутствуютLISTЗависит от функции, подробно в таблице 2ДаНет (в случае LIST<LIST> возвращается элемент LIST, который внутри себя содержит множественное значение)
inModule.Type.Alias:in("OutputDocs", "OutputDocsPrev") - проверяет, что в ss_moduletype, который получается стандартной цепочкой вызовов, лежит строка "OutputDocs" или "OutputDocsPrev" с учётом регистраПроверяет, есть ли значение результат вычисления в переданном массиве параметров с учётом регистра.от 1 до (Integer.MAX_VALUE-1) список допустимых значения для поляОтсутствуютSTRINGBOOLДа (если подходит хоть одно значение из массива, считаем что попадаем условие соблюдено)Нет
inIgnoreCaseModule.Type.Alias:inIgnoreCase("OUTPUTDOCS", "OutputDOcsPrev") - проверяет, что в ss_moduletype, который получается стандартной цепочкой вызовов, лежит строка "OUTPUTDOCS" или "OutputDocsPrev" без учёта регистраПроверяет, есть ли значение результат вычисления в переданном массиве параметров без учёта регистра.от 1 до (Integer.MAX_VALUE-1) список допустимых значения для поляОтсутствуютSTRINGBOOLДа (если подходит хоть одно значение из массива, считаем что попадаем условие соблюдено)Нет
max

F_DP_Rkk_SigningInfo^Owner.idx:max - возвращает максимальный порядковый номер подписанта (позволяет определить количество подписантов)

Определяет максимальное значение из предоставленного спискаОтсутствуютОтсутствуют

DATETIME

DATETIMEWITHTIMEZONE

TIMELESSDATE

DECIMAL

LONG

Совпадает с переданнымДаНет
minLog_OpenEvent_Apr^owner.createdDate:min - возвращает время, в которое первый из раз ЛС был открыт пользователемОпределяет минимальное значение из предоставленного спискаОтсутствуютОтсутствуют

DATETIME

DATETIMEWITHTIMEZONE

TIMELESSDATE

DECIMAL

LONG

Совпадает с переданнымДаНет
notactive:notОтрицание для bool значениеОтсутствуютОтсутствуютBOOLBOOLНетНет
qtyF_DP_Rkk_SigningInfo^Owner:qty - подсчёт количества подписантов

Возвращает количество значений в списке. Не имеет параметров. При подсчёте количества значений учитываются только значения, отличные от NULL (заполненные).

ОтсутствуютОтсутствуютЛюбойLONGДаНет
idpunid:split("FF"):getString("0"):id - получение id объекта из nunid2punid_map, по punidПреобразует строковое представление platformId к ReferenceОтсутствуютОтсутствуютSTRINGREFERENCEДаДа
joinF_DP_Rkk_SigningInfo^Owner.signer.orig_shortname:join(", ") - объединяет shortName подписантов через запятуюОбъединяет массив строк в одну строку через сепаратор1- сепаратор, через который нужно объединить строкиОтсутствуютLIST<STRING>STRINGДаНет
toStringvolume:toString

Приводит значение к строке. Для REFERENCE - строит stringRepresentation, для LIST рекурсивно вызывает себя для для элементов массива. Для остальных типов вызывает java.lang.Object#toString, для value

ОтсутствуютОтсутствуютЛюбой

STRING

LIST<STRING>

ДаНет


Для каждого типа данных, выделена отдельная get функция, т.к. на момент построения цепочки вызовов, doel должен знать какой тип возвращает каждый элемент цепочки, что невозможно с общим методом get. Ниже представлена таблица соответствия, какую функцию необходимо использовать для каждого типа.

Таблица 2 Детализация get функций

Имя функции

Тип для обработки

getBoolBOOL
getDateTimeDATETIME
getDateTimeWithZoneDATETIMEWITHTIMEZONE
getDecimalDECIMAL
getListLIST
getLongLONG
getRefREFERENCE
getStringSTRING
getTimelessDateTIMELESSDATE
  • Нет меток