Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Подсказка
iconfalse

Описание часто используемых DoEL-выражений в шаблонах FreeMarker

Свойства страницы
Статус

Статус
colourYellowGreen
titleВ РАБОТЕГОТОВО

Раздел

FreeMarker

Почтовые уведомления

Получение данных из ПКД-уведомления

Обращение к объекту ПКД-уведомления происходит через Sochi$Pkd. Можно получить следующие данные:

  • beardsTo - Set<Id> - получатели
  • beardFrom - Id - отправитель
  • nameFrom - String - краткое имя
  • dueDate - Date - срок
  • eventSubject - String - заголовок

Получение данных из доменных объектов

Получение данных из НР-ых полей

Функции

Часто используемые функции для взаимодействия с CMJ

ФункцииОписание

crudService.find

Получение объекта по Id

панель
titleПример

От: <#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

Выполнение запроса и возвращение значения из коллекции

панель
titleПример

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

Ссылка на документ

панель
titleПример

Открыть документ: ${urlFormer.getUrl("cm-sochi", addressee.getId(), document.getId())}

ПКД-уведомления

Обращение к данным объекта ПКД-уведомления происходит через Sochi$Pkd. Можно обратиться к следующим данным:

СвойствоВозращаемый типОписание

beardsTo

Set<Id>

Идентфикатор получателей

панель
titleПример

Для: <#list Sochi$Pkd.beardsTo() as beard>${crudService.find(beard).getString("orig_shortname")}<#if beard_has_next >, <#else></#if></#list>

Краткое содержание:

ДОКУМЕНТ: <#if document.get("Type")??>${document.get("Type")}<#else></#if> № <#if document.get("regnumprist"

beardFrom

Id

Идентификатор отправителя

панель
titleПример

От: <#if Sochi$Pkd.nameFrom()??> ${Sochi$Pkd.nameFrom()}<#else><#if Sochi$Pkd.beardFrom()??>${

document.get("regnumprist

crudService.find(Sochi$Pkd.beardFrom()).getString("orig_shortname")}<#else><

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

/#if></#if>

nameFrom

String

Краткое имя отправителя

панель
titleПример

От: <#if Sochi$Pkd.nameFrom()??> ${Sochi$Pkd.nameFrom()}<#else><#if Sochi$Pkd.beardFrom()??>${

document.get("regnumfin

crudService.find(Sochi$Pkd.beardFrom()).getString("orig_shortname")}<#else></

#if> от <#if document.get("regdate")??><#assign d2 = document.get("regdate")?index_of("-")> <#assign d0 = document.get("regdate")?last_index_of("-")> <#assign dy = document.get("regdate")?substring(0,d2)> <#assign dd = document.get("regdate")?substring(d0+1)> <#assign dm = document.get("regdate")?substring(d2+1,d0)> <#assign ddl = dd?length> <#assign dml = dm?length> <#if ddl??><#if ddl==2>${dd}<#else>0${dd}</#if><#else></#if>.<#if dml??><#if dml==2>${dm}<#else>0${dm}</#if><#else></#if>.<#if dy??>${dy}<#else></#if><#else></#if>

Тематика: ${document.get("F_DP_RkkBase_Theme^Owner.Theme:join(', ')")}

Корреспондент: ${document.get("FromId.orig_shortname")}

#if></#if>

dueDate

Date

Срок исполенения задачи

панель
titleПример

От: <#if Sochi$Pkd.dueDate()??> ${Sochi$Pkd.dueDate()?string[""dd.MM.yyyy""]}<#else>${'не указан'}</#if>

eventSubject

String

Заголовок

панель
titleПример

От: <#if Sochi$Pkd.eventSubject()??> ${Sochi$Pkd.eventSubject()}<#else></#if>

Доменные объекты

Обращение к данным доменного объекта происходит через document.get(DoEL-выражение) . Можно обратиться к следующим данным:

СвойствоВозращаемый типОписание

get(<Название поля из КДОП>)

String

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

панель
titleПример. Вид документа

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

get(<Название поля из ОДОП>)

String

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

панель
titleПример. Авторы входящего документа

Автор: ${document.get("F_DP_InputRkk_

Author^OwnerИсполнители: ${Заголовок:

get(<Название поля из вышестоящего КДОП>)

String

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

панель
titleПример. Вид документа из резолюции 1-го уровня

<#if document.get("

F_DP_InputRkk_Executor^Owner.Executor.orig_shortname:join(', ')")}

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

get(<Название поля из основного КДОП>)

String

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

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

<#if document.get("

Subject

HierRoot.Type")??>${document.get("

Subject

HierRoot.Type")}<#else></#if>

Открыть документ: ${urlFormer.getUrl("cm-sochi", addressee.getId(), document.getId())}]

История

Функции

Часто используемые функции для взаимодействия с CMJ



ctx.getDomainEvent

Текущее событие (наследник FieldBase)

ctx.getResourceEvent

Ресурс для события (наследник EventResource)

ctx.getEntityByUNID

Объект, в котором произошло событие (наследник AFObject)
панель
titleПример

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

панель

Оглавление