- Создатель Васильев Антон, отредактировано 15.01.2024
Описание часто используемых DoEL-выражений в шаблонах FreeMarker
Статус | ГОТОВО |
---|---|
Раздел | FreeMarker |
Почтовые уведомления
Функции
Часто используемые функции для взаимодействия с CMJ
Функции | Описание |
---|---|
crudService.find | Получение объекта по Id Пример От: <#if Sochi$Pkd.nameFrom()??> ${Sochi$Pkd.nameFrom()}<#else><#if Sochi$Pkd.beardFrom()??>${crudService.find(Sochi$Pkd.beardFrom()).getString("orig_shortname")}<#else></#if></#if> |
session.findByQuery | Выполнение запроса и возвращение значения из коллекции Пример <#assign formulaInitiator = ""select string_agg(tn_field_string.value, ', ') as value from tn_field <#assign initiator = session.findByQuery(formulaInitiator, document.getId())> <#if initiator.get(0).getString(""value"")??> <#assign initiatorName = initiator.get(0).getString(""value"")><#else></#if> |
urlFormer.getUrl | Ссылка на документ Пример Открыть документ: ${urlFormer.getUrl("cm-sochi", addressee.getId(), document.getId())} |
ПКД-уведомления
Обращение к данным объекта ПКД-уведомления происходит через Sochi$Pkd. Можно обратиться к следующим данным:
Свойство | Возращаемый тип | Описание |
---|---|---|
beardsTo | Set<Id> | Идентфикатор получателей Пример Для: <#list Sochi$Pkd.beardsTo() as beard>${crudService.find(beard).getString("orig_shortname")}<#if beard_has_next >, <#else></#if></#list> |
beardFrom | Id | Идентификатор отправителя Пример От: <#if Sochi$Pkd.nameFrom()??> ${Sochi$Pkd.nameFrom()}<#else><#if Sochi$Pkd.beardFrom()??>${crudService.find(Sochi$Pkd.beardFrom()).getString("orig_shortname")}<#else></#if></#if> |
nameFrom | String | Краткое имя отправителя Пример От: <#if Sochi$Pkd.nameFrom()??> ${Sochi$Pkd.nameFrom()}<#else><#if Sochi$Pkd.beardFrom()??>${crudService.find(Sochi$Pkd.beardFrom()).getString("orig_shortname")}<#else></#if></#if> |
dueDate | Date | Срок исполенения задачи Пример От: <#if Sochi$Pkd.dueDate()??> ${Sochi$Pkd.dueDate()?string[""dd.MM.yyyy""]}<#else>${'не указан'}</#if> |
eventSubject | String | Заголовок Пример От: <#if Sochi$Pkd.eventSubject()??> ${Sochi$Pkd.eventSubject()}<#else></#if> |
Доменные объекты
Обращение к данным доменного объекта происходит через document.get(DoEL-выражение) . Можно обратиться к следующим данным:
Свойство | Возращаемый тип | Описание |
---|---|---|
get(<Название поля из КДОП>) | String | |
get(<Название поля из ОДОП>) | String | Получение значения из поля ОДОП Пример. Авторы входящего документа Автор: ${document.get("F_DP_InputRkk_Author^Owner.Author.orig_shortname:join(', ')")} |
get(<Название поля из вышестоящего КДОП>) | String | Получение значения из вышестоящего КДОП Пример. Вид документа из резолюции 1-го уровня <#if document.get("HierParent.Type")??>${document.get("HierParent.Type")}<#else></#if> |
get(<Название поля из основного КДОП>) | String |
История
Функции
Часто используемые функции для взаимодействия с CMJ
ctx.getDomainEvent | Текущее событие (наследник FieldBase) |
ctx.getResourceEvent | Ресурс для события (наследник EventResource) |
ctx.getEntityByUNID | Объект, в котором произошло событие (наследник AFObject) |
<#assign isTaskPrefix = ctx.getDomainEvent().isTaskPrefix(ctx.getDomainEvent().getSelfId())>
<#assign selfEntityType = ctx.getDomainEvent().getSelfEntityType()>
<#if selfEntityType == "SUBTASK">Создан проект подчиненного ${ctx.getResourceEvent().make_RefResource("/resolutions/"+ctx.getDomainEvent().getSelfId(), "поручения")}
<#elseif selfEntityType == "RESOLUTION" && !isTaskPrefix>Создан проект ${ctx.getResourceEvent().make_RefResource("/resolutions/"+ctx.getDomainEvent().getSelfId(), "резолюции")}
<#elseif selfEntityType == "TASK" || isTaskPrefix>Создан проект ${ctx.getResourceEvent().make_RefResource("/resolutions/"+ctx.getDomainEvent().getSelfId(), "поручения")}
<#else>Создан проект ${ctx.getResourceEvent().make_RefResource("/resolutions/"+ctx.getDomainEvent().getSelfId(), "резолюции")}</#if>