Naumen Service Desk v.3.8 Руководство по настройке печатных форм с примерами Руководство по настройке печатных форм с примерами Copyright© 2003-2014, NAUMEN. Все права защищены. Никакая часть этого документа не может быть воспроизведена или обработана в системах обработки данных, скопирована или использована в других документах без письменного уведомления компании NAUMEN. Информация, содержащаяся в этом документе, может быть изменена компанией NAUMEN без предварительного уведомления. Компания NAUMEN не гарантирует отсутствия ошибок или опечаток в этом документе. Naumen Service Desk является зарегистрированной торговой маркой компании NAUMEN. Остальные торговые марки являются зарегистрированными торговыми марками их владельцев. 2 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами АННОТАЦИЯ Настоящий документ представляет собой краткое руководство по настройке печатных форм в программном продукте Naumen Service Desk. Данный программный продукт предназначен для автоматизации работы службы поддержки. Руководство содержит инструкции по настройке печатных форм с примерами. Комментарии к документу: Версия документа 17.03.14 Релиз: 3.8.303 Для любых замечаний и предложений по содержанию документа, пожалуйста, используйте следующие реквизиты: NAUMEN 620028, Екатеринбург, ул. Татищева, 49а, 4 этаж Тел. (343) 378-42-87, (343) 253-52-87 Факс: (343) 310-30-88 E-mail: sddocs@naumen.ru По всем вопросам, связанным с эксплуатацией, обновлением версий и поддержкой Naumen Service Desk, пожалуйста, обращайтесь на адрес службы технической поддержки компании NAUMEN: E-mail: support@naumen.ru 3 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Оглавление 1 СОЗДАНИЕ ШАБЛОНОВ ПЕЧАТНЫХ ФОРМ .................................................... 6 1.1 1.2 1.3 1.4 2 СОЗДАНИЕ ШАБЛОНА ПЕЧАТНОЙ ФОРМЫ ................................................................... 6 РЕДАКТИРОВАНИЕ ШАБЛОНА ПЕЧАТНОЙ ФОРМЫ ....................................................... 7 УДАЛЕНИЕ ШАБЛОНА ПЕЧАТНОЙ ФОРМЫ ................................................................... 7 ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ.................................................................................. 8 ПРИМЕРЫ ШАБЛОНОВ ПЕЧАТНЫХ ФОРМ ..................................................... 9 ЗАПРОС: СПИСОК ФЛЕКСОВ ......................................................................................... 9 ЗАПРОС: ВРЕМЕННЫЕ ХАРАКТЕРИСТИКИ .................................................................... 9 ЗАПРОС: СПИСОК ЗАДАЧ ............................................................................................ 10 ЗАПРОС: СПИСОК РЕСУРСОВ ...................................................................................... 11 ЗАПРОС: СВЯЗИ ЗАПРОСА ........................................................................................... 12 ЗАПРОС: СПИСОК ФАЙЛОВ ......................................................................................... 13 ЗАПРОС: СПИСОК КОММЕНТАРИЕВ ............................................................................ 14 ЗАПРОС: СПИСОК СОБЫТИЙ ИСТОРИИ ....................................................................... 14 ЗАПРОС: ОТДЕЛЬНЫЙ ФЛЕКС ЗАПРОСА ...................................................................... 15 ЗАПРОС: ОТДЕЛЬНЫЙ ФЛЕКС ТИПА ЗАПРОСОВ .......................................................... 15 ЗАПРОС: ФЛЕКС КОНТРАГЕНТА, К КОТОРОМУ ПРИВЯЗАН ЗАПРОС ............................. 16 ЗАПРОС: ФЛЕКС «РОДИТЕЛЯ» КОНТРАГЕНТА ФИЗИЧЕСКОГО ЛИЦА (КОНТРАГЕНТ – ФИЗИЧЕСКОЕ ЛИЦО, А РОДИТЕЛЬ – ЮРИДИЧЕСКОЕ) ............................................................ 16 2.13 ЗАПРОС: НАЗВАНИЕ КОНТРАГЕНТА, НА КОТОРОГО ЗАРЕГИСТРИРОВАН ЗАПРОС ....... 17 2.14 ЗАПРОС: КОНТАКТНОЕ ЛИЦО ..................................................................................... 17 2.15 ЗАПРОС: КОНТАКТНЫЙ ТЕЛЕФОН .............................................................................. 18 2.16 ЗАПРОС: КОНТАКТНЫЙ E-MAIL .................................................................................. 18 2.17 ЗАДАЧА: ОПИСАНИЕ .................................................................................................. 18 2.18 ЗАДАЧА: КОНТАКТНАЯ ИНФОРМАЦИЯ ИЗ ЗАПРОСА, К КОТОРОМУ ПРИВЯЗАНА ЗАДАЧА 18 2.19 ЗАДАЧА: АТРИБУТЫ ТИПА И КЛАССА ЗАДАЧИ ........................................................... 19 2.20 ЗАДАЧА. ЗАПРОС: ПОСЛЕДНИЙ КОММЕНТАРИЙ ........................................................ 20 2.21 ЗАДАЧА. ЗАПРОС. ДРУГИЕ КЛАССЫ ОБЪЕКТОВ: ФОРМИРОВАНИЯ НАЗВАНИЯ ВЛОЖЕННОГО ФАЙЛА ПРИ ОТПРАВКЕ ПО ПОЧТЕ .................................................................. 21 2.22 ОБЪЕКТЫ СПЕЦИФИКАЦИИ: ВСЕ БЛИЖАЙШИЕ ДЕТИ ................................................ 21 2.23 ОБЪЕКТЫ СПЕЦИФИКАЦИИ: ВЕРСИИ ОБЪЕКТА .......................................................... 22 2.24 ОБЪЕКТЫ СПЕЦИФИКАЦИИ: ПРЯМЫЕ СВЯЗИ С ОБЪЕКТАМИ...................................... 22 2.25 ОБЪЕКТЫ СПЕЦИФИКАЦИИ: ОБРАТНЫЕ СВЯЗИ С ОБЪЕКТАМИ .................................. 23 2.26 СЕРВИС: СВЯЗАННЫЕ ПАКЕТЫ СОГЛАШЕНИЙ ........................................................... 23 2.27 СЕРВИС: СВЯЗАННЫЕ СОГЛАШЕНИЯ ......................................................................... 24 2.28 СЕРВИС: ПОЛУЧАТЕЛИ СЕРВИСА ............................................................................... 24 2.29 СЕРВИС: КУРАТОР СЕРВИСА ...................................................................................... 25 2.30 СЕРВИС: СВЯЗАННЫЕ ЗАПРОСЫ ................................................................................. 25 2.31 СОГЛАШЕНИЯ: СПИСОК ПАКЕТОВ ............................................................................. 26 2.32 СОГЛАШЕНИЯ: ПОЛУЧАТЕЛИ СЕРВИСОВ ПО СОГЛАШЕНИЮ ..................................... 26 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 4 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2.33 СОГЛАШЕНИЯ: СЕРВИСЫ, ПРЕДОСТАВЛЯЕМЫЕ ПО СОГЛАШЕНИЮ ........................... 27 2.34 ПАКЕТ СОГЛАШЕНИЙ: СЕРВИСЫ, ПРЕДОСТАВЛЯЕМЫЕ ПО СОГЛАШЕНИЯМ ИЗ ПАКЕТА 27 2.35 ПАКЕТ СОГЛАШЕНИЙ: СОГЛАШЕНИЯ, ВХОДЯЩИЕ В ПАКЕТ ...................................... 28 2.36 ПАКЕТ СОГЛАШЕНИЙ: ПОЛУЧАТЕЛИ ПАКЕТА СОГЛАШЕНИЙ .................................... 28 5 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 1 Создание шаблонов печатных форм Html-шаблоны печатных форм используются для генерации печатных форм (листовок, актов) в карточках запроса, задачи, сервисов и соглашений. Система Naumen Service Desk позволяет настраивать шаблоны печатных форм трех видов: шаблоны, используемые для всего класса объектов; шаблоны, используемые для определенного типа объектов; шаблоны, используемые в объектах спецификации. В карточках объектов хранится список html-шаблонов, которые могут использоваться для генерации печатных форм. Список открывается в отдельном окне при нажатии ссылки [печатные формы]. Печатные формы, созданные на основе шаблона, можно отправлять по электронной почте. 1.1 Создание шаблона печатной формы Шаблоны, используемые для всего класса объектов, настраиваются отдельно для каждого класса на вкладке в «Шаблоны печатных форм». Шаблоны, используемые для объектов определенного типа, настраиваются отдельно для каждого типа в справочнике типов объектов на вкладке «Шаблоны печатных форм». Чтобы создать новый шаблон печатной формы, выполните следующие действия: 1) откройте вкладку «Шаблоны печатных форм»: a. для класса объектов - в карточке компании перейдите на вкладку «Настройки» и в блоке «Настройки классов объектов» щелкните на названии класса объектов: «Запрос» или «Задача». Затем перейдите на вкладку «Шаблоны печатных форм»; b. для типов объектов откройте справочник «Типы запросов» / «Типы задач». Выберите тип объекта и перейдите на вкладку «Шаблоны печатных форм»; c. для объектов спецификации сервисов и соглашений откройте справочник «Спецификации» и выберите тип объектов. Перейдите на вкладку «Шаблоны печатных форм»; 2) на вкладке шаблон]; «Шаблоны печатных форм» щелкните на ссылке [добавить 3) в появившейся форме «Создание шаблона» заполните поля (Табл.1.1). Табл.1.1. Описание полей формы «Создание шаблона» Название поля Описание Название Название шаблона в системе Тема письма Тема письма, которая может использоваться при отправке печатной формы данного шаблона по e-mail (зависит от настройки конфигурации). При заполнении можно использовать стандартные переменные для объекта - источника Описание Краткое описание шаблона 6 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Название поля Условие использования Описание Установите значение переключателя: - «Без скрипта» - скрипт не используется; - «Существующий скрипт» - сценарий (скрипт), выбирается из справочника «Каталог скриптов». На форме появляется список «Скрипты»; - «Новый скрипт» - пишется новый сценарий (скрипт). На форме появляются поля ввода «Название» и «Тело скрипта» Скрипт инициализации Установите значение переключателя: - «Без скрипта» - скрипт не используется; - «Существующий скрипт» - сценарий (скрипт), выбирается из справочника «Каталог скриптов». На форме появляется список «Скрипты»; - «Новый скрипт» - пишется новый сценарий (скрипт). На форме появляются поля ввода «Название» и «Тело скрипта» Тип шаблона Установите значение переключателя: - «Текст», используется по умолчанию, на форме отображается поле «Текст шаблона»; - «Файл» - на форме отображается поле поиска «Файл шаблона» Текст шаблона При условии, что установлено значение переключателя «Тип шаблона» - «Текст». Создайте текст шаблона, используя теги html и глобальные переменные Файл шаблона При условии, что установлено значение переключателя «Тип шаблона» - «Файл». Выберите файл с шаблоном печатной формы с помощью кнопки «Обзор», путь к указанному файлу отобразится в поле При заполнении полей можно воспользоваться справкой, чтобы вызвать справку щелкните на пиктограмме в поле «Справка» 4) после заполнения полей формы нажмите кнопку Новый шаблон появится в списке на вкладке «Добавить». «Шаблоны печатных форм». 1.2 Редактирование шаблона печатной формы Для того чтобы изменить название и содержание шаблона, на вкладке « Шаблоны печатных форм» щелкните на пиктограмме («Редактировать») в строке с названием шаблона. В появившейся форме внесите изменения и сохраните их нажатием кнопки «Сохранить». 1.3 Удаление шаблона печатной формы Для того чтобы удалить шаблон, на вкладке «Шаблоны печатных форм» щелкните на пиктограмме («Удалить») в строке с названием шаблона. На экране появится диалоговое окно с вопросом «Удалить шаблон?», для подтверждения удаления нажмите кнопку «ОК». 7 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 1.4 Использование переменных В печатных формах можно выводить значения переменных (см.гл. 2 «Примеры шаблонов печатных форм»). В случае, если атрибут содержит пустое значение, то в печатную форму выводится строка «$<id-атрибута>». Чтобы при пустом значении атрибута в печатную форму выводить пустую строку, в тексте шаблона в конструкцию вида $<id-атрибута> следует прописывать знак «!», т.е. конструкция должна выглядеть следующим образом: $!<id-атрибута>. 8 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2 Примеры шаблонов печатных форм 2.1 Запрос: список флексов Форма «Создание шаблона» Поле Описание Название Запрос: список флексов Описание Краткое описание шаблона Текст шаблона <table> #foreach ( $flex in $flexattrs ) <tr><td>${flex.title}:</td> <td>${flex.getStringValue()}</td></tr> #end </table> Условия использования Скрипт инициализации import ru.naumen.core.flexattr.fakeflex.FakeFlexAttrInstanc eHibernateHandler; import ru.naumen. core.util.BOFlexAttrsHelper; import ru.naumen.core.hibernate.HibernateUtil; context["flexattrs"] = FakeFlexAttrInstanceHibernateHandler .createAndFillFakeFlexAttrInstances( BOFlexAttrsHelper.listAllFlexAttrInstances( subject, subject.getCase(), subject.getStage(), HibernateUtil.currentSession(), true)); 2.2 Запрос: временные характеристики Форма «Создание шаблона» Поле Описание Название Запрос: временные характеристики Описание Краткое описание шаблона Текст шаблона $startTime $registrationDate $deadLineTime $lastSolved $remainingTime 9 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание $elapsedTime Условия использования Скрипт инициализации ru.naumen.sd.ui.othercontrollers.ServiceCallTimingCa rd card =new ru.naumen.sd.ui.othercontrollers.ServiceCallTimingCa rd(); context["startTime"] = ru.naumen.guic.formatters.DateTimeFormatter.format (card.getStartTime(subject)); context["registrationDate"] = ru.naumen.guic.formatters.DateTimeFormatter.format (subject.getRegistrationDate()); context["deadLineTime"] = ru.naumen.guic.formatters.DateTimeFormatter.format (subject.getDeadLineTime()); context["lastSolved"] = ru.naumen.guic.formatters.DateTimeFormatter.format (subject.getLastSolved()); context["remainingTime"] = ru.naumen.guic.formatters.TimeIntervalFormatter.form at (card.getRemainingTime(subject)); context["elapsedTime"] = ru.naumen.guic.formatters.TimeIntervalFormatter.form at (card.getElapsedTime(subject)); Примечание. Для получения актуального регламентного вермени закрытия используется: actualDeadLineTime = new ru.naumen.sd.ui.othercontrollers.ServiceCallTimingCard().getDeadlineTime(call); 2.3 Запрос: список задач Форма «Создание шаблона» Поле Описание Название Запрос: список задач Описание Краткое описание шаблона Текст шаблона #foreach ( $task in $tasks ) <tr> <td>${task.taskDate}</td> <td>${task.taskCase.title}</td> <td>${task.sourceTitle}</td> <td>$!{task.resposible.title}</td> <td>$!{task.description}</td> 10 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание <td>${task.stage.title}</td> </tr> #end Условия использования Скрипт инициализации context["tasks"] = ru.naumen.core.bobjects.task.TaskHibernateHandler. listTasksBySource(subject); 2.4 Запрос: список ресурсов Форма «Создание шаблона» Поле Описание Название Запрос: список ресурсов Описание Краткое описание шаблона Текст шаблона <table align="center" style="text-align: center; width: 600px;" border="0" cellpadding="2" cellspacing="0"> <tbody> <tr> #foreach ( $res in $resources ) <tr> <td>$utils.format( ${res.inventoryNumber} )</td> <td>${res.title}</td> <td>${res.sidCase.title}</td> <td>$!{res.Stage.title}</td> </tr> #end </tr> </tbody> </table> Условия использования Скрипт инициализации def resourceUUIDs = call.getResourcesUUIDs(); resources = ru.naumen.core.CoreBOHibernateHandler. loadObjectsByUUIDsFromSession(session, ru.naumen.sid.bobject.sidobject.SidObject.class, resourceUUIDs); 11 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2.5 Запрос: связи запроса Форма «Создание шаблона» Поле Описание Название Запрос: связи запроса Описание Краткое описание шаблона Текст шаблона <table align="center"> <caption><b>Информация о связанных запросах:</b></caption> <tr> <td>Номер запроса</td> <td>Состояние</td> <td>Ответственный</td> <td>Тип связи</td> </tr> #foreach ( $call in $calls ) <tr> #if ( $call.rightBO == $subject ) <td>${call.leftBO.id}</td> <td>${call.leftBO.stage.title}</td> <td>$!{call.leftBO.responsibleTitle}</td> #else <td>${call.rightBO.id}</td> <td>${call.rightBO.stage.title}</td> <td>$!{call.rightBO.responsibleTitle}</td> #end <td> #if ( $call.typeKey == "sc_master_slave" ) Зависимость #else Ссылка #end </td> </tr> #end Условия использования Скрипт инициализации String[] SC_TYPES = new String[2]; SC_TYPES[0] = "sc_master_slave"; SC_TYPES[1] = "sc_reference"; 12 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание context["calls"] = ru.naumen.core.relations.CoreBORelationHibernateHand ler. findAllRelationsForBOTyped(subject,SC_TYPES); 2.6 Запрос: список файлов Форма «Создание шаблона» Поле Описание Название Запрос: список файлов Описание Краткое описание шаблона Текст шаблона <table align="center"> <caption><b>Информация о файлах запроса:</b></caption> <tr> <td>Название</td> <td>Описание</td> <td>Размер в байтах</td> <td>Дата</td> <td>Автор</td> </tr> #foreach ( $file in $files ) <tr> <td>$!file.fileName</td> <td>$!file.description</td> <td>$!file.fileSize</td> <td>$!file.creationDate</td> <td>$!file.author.title</td> </tr> #end Условия использования Скрипт инициализации context["files"] = ru.naumen.core.CoreBOHibernateHandler.listSubObjects ByClass (subject,ru.naumen.core.files.DBFile); 13 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2.7 Запрос: список комментариев Форма «Создание шаблона» Поле Описание Название Запрос: список комментариев Описание Краткое описание шаблона Текст шаблона #<table align="center"> <caption><b>Комментарии запроса:</b></caption> <tr> <td>Дата</td> <td>Комментарий</td> <td>Автор</td> </tr> #foreach ( $comment in $comments ) <tr> <td>${comment.creationDate}</td> <td>${comment.text}</td> <td>${comment.person.title}</td> </tr> #end </table> Условия использования Скрипт инициализации context["comments"] = ru.naumen.sd.sdcomment.SDCommentHibernateHandler. listSDComment(subject); 2.8 Запрос: список событий истории Форма «Создание шаблона» Поле Описание Название Запрос: список событий истории Описание Краткое описание шаблона Текст шаблона <table align="center"> <caption><b>История событий запроса:</b></caption> <tr> <td>Дата</td> <td>Событие</td> <td>Автор</td> </tr> 14 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание #foreach ( $hi in $history ) <tr> <td>${hi.date}</td> <td>${hi.message}</td> <td>${hi.sender.title}</td> </tr> #end </table> Условия использования Скрипт инициализации context["history"] = ru.naumen.sd.util.log4j.ServiceCallLogEventHibernat eHandler.listServiceCallHistory(subject.getUUID()); 2.9 Запрос: отдельный флекс запроса Форма «Создание шаблона» Поле Описание Название Запрос: отдельный флекс запроса Описание Краткое описание шаблона Текст шаблона $<attr> Условия использования Скрипт инициализации import org.hibernate.Session; import ru.naumen.core.hibernate.HibernateUtil; session = HibernateUtil.currentSession(); context["<attr>"]=utils.format(utils.getCallCardFle xAttribute(subject, "<attr>", session).getValue()); здесь attr - это идентификатор пользовательского атрибута класса «Запрос». 2.10 Запрос: отдельный флекс типа запросов Форма «Создание шаблона» Поле Описание Название Запрос: отдельный флекс типа запроса Описание Краткое описание шаблона Текст шаблона $<attr> Условия использования 15 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание Скрипт инициализации import org.hibernate.Session; import ru.naumen.core.hibernate.HibernateUtil; session = HibernateUtil.currentSession(); <atrr> = ""; if (null != utils.getCallCaseFlexAttribute (subject, "<atrr>", session)) { <atrr> = utils.getCallCaseFlexAttribute (subject, "<atrr>", session).getValue() } context["<atrr>"]=utils.format(atrr); здесь attr - это идентификатор пользовательского атрибута типа запроса 2.11 Запрос: флекс контрагента, к которому привязан запрос Форма «Создание шаблона» Поле Описание Название Запрос: флекс контрагента, к которому привязан запрос Описание Краткое описание шаблона Текст шаблона $<id-атрибута> Условия использования Скрипт инициализации def client = subject.getClient(); context["qw"] = ru.naumen.core.util.BOFlexAttrsHelper.getFlexAttrIns tanceById(client, null, "qw").getStringValue(); 2.12 Запрос: флекс «родителя» контрагента физического лица (контрагент – физическое лицо, а родитель – юридическое) Форма «Создание шаблона» Поле Описание Название Запрос: флекс «родителя» контрагента физического лица (контрагент – физическое лицо, а родитель – юридическое) Описание Краткое описание шаблона Текст шаблона $<id-атрибута> Условия использования Скрипт инициализации def client = subject.getClient(); if (client instanceof ru.naumen.sd.crmlite.bobjects.client.CrmLiteNatural Client) { 16 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание client = client.getParent(); } if (client instanceof ru.naumen.sd.crmlite.bobjects.client.CrmLiteJuridica l Client) { //Название context["<id-атрибута>"] = ru.naumen.core.util.BOFlexAttrsHelper.getFlexAttr InstanceById(client, null, "<idатрибута>").getStringValue(); } 2.13 Запрос: название контрагента, на которого зарегистрирован запрос Форма «Создание шаблона» Поле Описание Название Запрос: флекс контрагента, к которому привязан запрос Описание Краткое описание шаблона Текст шаблона $!client Условия использования Скрипт инициализации context["client"] = subject.getClient().getTitle(); 2.14 Запрос: контактное лицо Форма «Создание шаблона» Поле Описание Название Запрос: контактное лицо Описание Краткое описание шаблона Текст шаблона $!contactPerson Условия использования Скрипт инициализации context["contactPerson"] = subject.getClientName(); 17 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2.15 Запрос: контактный телефон Форма «Создание шаблона» Поле Описание Название Запрос: контактный телефон Описание Краткое описание шаблона Текст шаблона $!contactTel Условия использования Скрипт инициализации context["contactTel"] = subject.getClientPhone(); 2.16 Запрос: контактный e-mail Форма «Создание шаблона» Поле Описание Название Запрос: контактный e-mail Описание Краткое описание шаблона Текст шаблона $!contactMail Условия использования Скрипт инициализации context["contactMail"] = subject.getClientEmail(); 2.17 Задача: описание Форма «Создание шаблона» Поле Описание Название Задача: описание Описание Краткое описание шаблона Текст шаблона $!descr Условия использования Скрипт инициализации context["descr"] = subject.getComment(); 2.18 Задача: контактная информация из запроса, к которому привязана задача Форма «Создание шаблона» Поле Описание Название Задача: контактная информация из запроса, к которому привязана задача Описание Краткое описание шаблона Текст шаблона $!contactPerson $!contactTel 18 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание $!contactMail Условия использования Скрипт инициализации ru.naumen.sd.bobjects.servicecall.ServiceCall call = subject.getSource(); context["contactPerson"] = call.getClientName(); context["contactTel"] = call.getClientPhone(); context["contactMail"] = call.getClientEmail(); 2.19 Задача: атрибуты типа и класса задачи Форма «Создание шаблона» Поле Описание Название Задача: атрибуты типа и класса задачи в одной печатной форме Описание Краткое описание шаблона Текст шаблона ${taskResp1} - атрибут класса Задача ${taskResp33} - атрибут типа задачи Условия использования Скрипт инициализации import ru.naumen.guic.formatters.DateFormatter; import ru.naumen.sd.bobjects.task.SDTask; import ru.naumen.sd.bobjects.servicecall.ServiceCall; import ru.naumen.core.flexattr.FlexAttrCardInstance; import ru.naumen.core.flexattr.FlexAttrCardTemplate; import ru.naumen.core.flexattr.FlexAttrTemplate; import ru.naumen.core.flexattr.FlexAttrInstance; import ru.naumen.core.catalogsengine.CoreCatalogItem; ru.naumen.sd.bobjects.servicecall.ServiceCall call = subject.getSource(); import ru.naumen.sd.bobjects.task.SDTaskHibernateHandler; //def SDTask task = (SDTask)subject; //def FlexAttrCardTemplate def taskFlexCardTemplate = task.getFlexAttrCardTemplateByCoreClass(); //переменная Template для класса def taskCaseFlexCardTemplate = 19 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание task.getBOCase().getFlexAttrCardTemplate(); //переменная Template для типа //def FlexAttrCardInstance def taskFlexCardInstance = task.getFlexAttrCardInstance(taskFlexCardTemplate); //переменная Instance для класса def taskCaseFlexCardInstance = task.getFlexAttrCardInstance(taskCaseFlexCardTempla te); //переменная Instance для типа //def FlexAttrTemplate //получаем атрибут класса Задача, в (" ") указывается идентификатор атрибута taskResp1 = null == taskFlexCardTemplate.getFlexAttrTemplateById("1") ? "" : taskFlexCardInstance.getAttribute(taskFlexCardTempl ate.getFlexAttrTemplateById("1")).getValue(); //получаем атрибут типа задачи, в (" ") указывается идентификатор атрибута taskResp33 = null == taskCaseFlexCardTemplate.getFlexAttrTemplateById("3 3") ? "" : taskCaseFlexCardInstance.getAttribute(taskCaseFlexC ardTemplate.getFlexAttrTemplateById("33")).getValue (); 2.20 Задача. Запрос: последний комментарий Форма «Создание шаблона» Поле Описание Название Задача. Запрос: последний комментарий Описание Краткое описание шаблона Текст шаблона $lastComment Условия использования Скрипт инициализации if (ru.naumen.sd.sdcomment.SDCommentHibernateHandler . getLastSDComment(subject) == null) { context["lastComment"] = "no comments"; } else { 20 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание context["lastComment"] = ru.naumen.sd.sdcomment.SDCommentHibernateHandler. getLastSDComment(subject).getText(); } 2.21 Задача. Запрос. Другие классы объектов: формирования названия вложенного файла при отправке по почте Шаблон применяется для любого класса объектов, для которого можно сгенерировать печатную форму. Скрипт берет из поля «Название» имя объекта и создает печатную форму с заголовком <Название объекта>.html Форма «Создание шаблона» Поле Описание Название Задача. Запрос: формирования названия вложенного файла при отправке по почте (оно же является заголовком печатной формы) Описание Краткое описание шаблона Текст шаблона Условия использования Скрипт инициализации template.setTitle(subject.getTitle() + ".html"); 2.22 Объекты спецификации: все ближайшие дети Шаблон применяется для любых объектов из справочника «Спецификация». Форма «Создание шаблона» Поле Описание Название Вывести всех ближайших детей Описание Краткое описание шаблона Текст шаблона <body> #set( $children = $sidProvider.getChildren() ) <ul> #foreach( $key in $children.keySet() ) <li>Child UUID: $key -> Value: $children.get($key).title</li> #end </ul> </body> Условия использования Скрипт инициализации 21 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами 2.23 Объекты спецификации: версии объекта Шаблон применяется для любых объектов из справочника «Спецификация». Форма «Создание шаблона» Поле Описание Название Версии объекта Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $versions = $sidProvider.getVersions() ) #foreach( $ver in $versions ) <li> $ver.versionNumber : $ver.title </li> #end </ul> </body> Условия использования Скрипт инициализации 2.24 Объекты спецификации: прямые связи с объектами Шаблон применяется для любых объектов из справочника «Спецификация». Форма «Создание шаблона» Поле Описание Название Прямые связи с объектами Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $directRelations = $sidProvider.listDirectRelations() ) #foreach( $rel in $directRelations ) <li> $rel.template.title: $rel.getRightBO().title </li> #end </ul> </body> Условия использования 22 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание Скрипт инициализации 2.25 Объекты спецификации: обратные связи с объектами Шаблон применяется для любых объектов из справочника «Спецификация». Форма «Создание шаблона» Поле Описание Название Обратные связи с объектами Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $inverseRelations = $sidProvider.listInverseRelations() ) #foreach( $rel in $inverseRelations ) <li> $rel.template.title: $rel.getLeftBO().title </li> #end </ul> </body> Условия использования Скрипт инициализации 2.26 Сервис: связанные пакеты соглашений Форма «Создание шаблона» Поле Описание Название Сервис: связанные пакеты соглашений Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $serviceProvider.listAgreementPacks() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> 23 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание Условия использования Скрипт инициализации 2.27 Сервис: связанные соглашения Форма «Создание шаблона» Поле Описание Название Сервис: связанные соглашения Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $serviceProvider.listAgreements() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> Условия использования Скрипт инициализации 2.28 Сервис: получатели сервиса Форма «Создание шаблона» Поле Описание Название Сервис: получатели сервиса Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $serviceProvider.listCustomers() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> Условия использования 24 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание Скрипт инициализации 2.29 Сервис: куратор сервиса Форма «Создание шаблона» Поле Описание Название Сервис: куратор сервиса Описание Краткое описание шаблона Текст шаблона <body> $utils.format(${service_responsible}) <body> Условия использования Скрипт инициализации import ru.naumen.common.utils.StringUtilities; import ru.naumen.fx.objectloader.PrefixObjectLoaderFacade; def service = null; if (!StringUtilities.isEmpty(call.serviceUUID)) service = PrefixObjectLoaderFacade.getObjectByUUID(call.service UUID); if (service != null) { service_responsible = service.getResponsible(); } 2.30 Сервис: связанные запросы Форма «Создание шаблона» Поле Описание Название Сервис: связанные запросы Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $calls = $serviceProvider.listServiceCalls() ) #foreach( $call in $calls ) <li> $call.title : $call.callDescription </li> 25 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание #end </ul> </body> Условия использования Скрипт инициализации 2.31 Соглашения: список пакетов Форма «Создание шаблона» Поле Описание Название Соглашения: список пакетов Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agreementProvider.listPackets() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> Условия использования Скрипт инициализации 2.32 Соглашения: получатели сервисов по соглашению Форма «Создание шаблона» Поле Описание Название Соглашения: получатели сервисов по соглашению Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agreementProvider.listCustomers() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> 26 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание </body> Условия использования Скрипт инициализации 2.33 Соглашения: сервисы, предоставляемые по соглашению Форма «Создание шаблона» Поле Описание Название Соглашения: сервисы, предоставляемые по соглашению Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agreementProvider.listServices() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> Условия использования Скрипт инициализации 2.34 Пакет соглашений: сервисы, предоставляемые по соглашениям из пакета Форма «Создание шаблона» Поле Описание Название Пакет соглашений: сервисы, предоставляемые по соглашениям из пакета Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agrPackProvider.listServices() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> 27 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание </body> Условия использования Скрипт инициализации 2.35 Пакет соглашений: соглашения, входящие в пакет Форма «Создание шаблона» Поле Описание Название Пакет соглашений: соглашения, входящие в пакет Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agrPackProvider.listAgreements() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> Условия использования Скрипт инициализации 2.36 Пакет соглашений: получатели пакета соглашений Форма «Создание шаблона» Поле Описание Название Пакет соглашений: получатели пакета соглашений Описание Краткое описание шаблона Текст шаблона <body> <ul> #set( $objects = $agrPackProvider.listCustomers() ) #foreach( $obj in $objects ) <li>$obj.title</li> #end </ul> </body> 28 NAUMEN, 2003 – 2014 гг. Руководство по настройке печатных форм с примерами Форма «Создание шаблона» Поле Описание Условия использования Скрипт инициализации 29 NAUMEN, 2003 – 2014 гг.