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

Описание часто используемых 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
join tn_field_string on tn_field.access_object_id = tn_field_string.id
where tn_field.cmjfield = 'Initiator' and tn_field.owner = {0}"">

<#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

Получение значения из поля КДОП

Пример. Вид документа

<#if document.get("Type")??>${document.get("Type")}<#else></#if>

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

Получение значения из основного КДОП

Пример. Вид документа из отчета

<#if document.get("HierRoot.Type")??>${document.get("HierRoot.Type")}<#else></#if>

История

Функции

Часто используемые функции для взаимодействия с 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>