РУКОВОДСТВО СИСТЕМНОГО АДМИНИСТРАТОРА

УНИВЕРСАЛЬНОЙ ПРОГРАММНОЙ ПЛАТОРМЫ ДЛЯ СОЗДАНИЯ

ИНФОРМАЦИОННЫХ СИСТЕМ «ТЕХНОПЛАТФОРМА»

 

 

 

                                                       

 

 

 

 

 

 

Москва

2025

 

 

Оглавление

1.  Введение........................................................................................ 5

1.1  Области применения........................................................... 5

1.2  Уровень подготовки системного администратора........... 5

2.  Интерфейс системного администратора..................................... 6

2.1  Вход в систему..................................................................... 6

2.2  Интерфейс рабочей области............................................... 7

2.2.1  Информационная панель..................................................... 7

2.2.2  Панель инструментов........................................................... 8

2.2.3  Панель фильтрации данных................................................ 9

2.2.4  Панель навигации и меню................................................. 10

2.2.5  Панель отображения данных............................................. 10

3.  Административные средства..................................................... 11

3.1  Средство администрирования «Консоль»....................... 11

3.2  Средство администрирования «Заблокированные объекты».................................................................................... 11

3.3  Средство администрирования «Активные сессии»........ 12

3.4  Средство администрирования «Обновить настройки».. 13

4.  Настройка рабочих столов Системы......................................... 13

4.1  Средство настройки объектной модели данных «Редактор классов»..................................................................................... 14

4.1.1  Описание класса................................................................. 14

4.1.2  Описание свойства класса................................................. 15

4.1.3  Удаление классов и свойств.............................................. 21

4.1.4  Фильтрация по дереву классов и свойств........................ 22

4.1.5  Создание конфигурационных настроек для класса........ 22

4.2  Подраздел «Пользователи».................................................. 23

4.3  Подраздел «Хранилища файлов»........................................ 24

4.4  Подраздел «Поиски»............................................................. 25

4.4.1  Формирование данных конфигурационной настройки.. 26

4.4.2  Управление шаблонами поиска........................................ 30

4.5  Подраздел «Группы папок».................................................. 31

4.6  Подраздел «Папки»............................................................... 32

4.7  Подраздел «Отображения папок»........................................ 33

4.8  Подраздел «Карточки».......................................................... 38

4.9  Подраздел «Скрипты»........................................................... 43

Описание конфигурационного скрипта закладок................. 44

Описание конфигурационного скрипта инструментов......... 45

Описание конфигурационного скрипта отображения карточек объектов.................................................................... 50

Описание конфигурационного скрипта отображения табличных представлений....................................................... 53

Описание конфигурационного скрипта по работе с бизнес процессами................................................................................ 53

4.10  Подраздел «Пользовательская конфигурация»................ 54

Описание конфигурационного скрипта обновления справочников по расписанию.................................................. 55

Описание конфигурационного скрипта обновления справочников по событиям...................................................... 56

Описание конфигурационного скрипта описания справочников............................................................................ 57

Описание конфигурационного скрипта описания вкладок.. 63

Описание конфигурационного скрипта описания инструментов............................................................................ 69

Стандартные контроллеры для инструментов.............................. 71

Контроллеры общего назначения................................................... 72

Контролеры для работы с бизнес-процессом................................ 77

Контролеры для работы с отчетами............................................... 79

Контролеры административного назначения............................... 81

4.11  Подраздел «Интернационализация».................................. 82

4.12  Подраздел «Правила доступа»........................................... 84

4.13  Подраздел «Поиски безопасности»................................... 84

 

 

1.  Введение

Настоящее Руководство предназначено для ознакомления с устройством, конструкцией, работой и техническими возможностями продукта «ТехноПлатформа».

Целью настоящего Руководства является обеспечение заинтересованных лиц информацией по установке, настройке (внешнего вида, папок, форм, поисков и таблиц и др.) и использованию продукта «ТехноПлатформа» в режиме системного администратора.

- редактирование модели данных; - настройку папок, форм, поисков и табличных представлений папок; - настройку внешнего вида и др.

 «ТехноПлатформа» - универсальная платформа для построения информационных систем и бизнес-приложений различного профиля для решения задач, связанных с управлением, хранением, обработкой и интеграцией данных. Входящие в состав платформы технологические решения направлены на поддержку работы с данными различных типов и форматов с использованием единых механизмов представления, поиска и организации доступа к данным из внешних систем.

1.1 Области применения

             Электронные архивы и реестры документации

             Документоориентированные процессы

             Системы повышения квалификации и обучения

             Управление активами

             Управление производством

             Корпоративные поисковые системы и базы знаний

             ТОиР

1.2 Уровень подготовки системного администратора

Системный администратор должен иметь опыт работы с персональным компьютером на базе операционных систем Microsoft Windows, базовые знания ООП, Java, JSON, Groovy, а также иметь представление о нотации BPMN для настройки бизнеспроцессов.

2. Интерфейс системного администратора

2.1 Вход в систему

Пользователь получает доступ к Системе при вводе имени пользователя (логина) и пароля, при условии успешно заведенной учетной записи пользователя в Системе. 

Для входа в программу необходимо ввести имя пользователя (логин) и пароль, далее кликнуть на кнопке «Войти».

При правильно введенных сведениях пользователь автоматически проходит идентификацию и авторизацию с соблюдением настроенных прав доступа пользователя в Системе.

Компоненты системы обеспечивают:

             идентификацию пользователя;

             разграничение прав доступа в системе; 

             проверку полномочий пользователя в системе.

Если были допущены ошибки при вводе имени и/или пароля программа отреагирует на это сообщением с ошибкой о неверном вводе имени и/или пароля.

После успешного входа пользователя в систему осуществляется переход на его рабочий стол.

Система поддерживает несколько системных ролей:

             «Пользователь»;

             «Прикладной администратор»;  «Системный администратор».

Пользователю может быть установлена одна или несколько системных ролей. При наличии нескольких системных ролей происходит совмещение полномочий для разных системных ролей с возможностью переключения рабочих столов. 

Система позволяет пользователю просмотреть установленные ему системные роли и переходить на соответствующие рабочие столы при смене роли в специальном меню на информационной панели. 

Для успешного входа в систему пользователю требуется наличие хотя бы одной установленной системной роли. 

Для того чтобы перейти на рабочий стол «Системный администратор» и открыть соответствующий интерфейс необходимо на информационной панели кликнуть на инструмент «Сменить интерфейс» и выбрать «Рабочий стол системного администратора».

2.2 Интерфейс рабочей области

Интерфейс рабочей области системного администратора поделён на несколько функциональных панелей:

             Информационная панель – позволяет быстро перейти к общей рабочей области и показывает данные о текущим пользователе;

             Панель инструментов – меню инструментов доступных пользователю для выполнения различные действия с объектами, содержание инструментов может меняться в зависимости от раздела или прав и ролей пользователя;

             Панель фильтрации данных – панели представляет собой поля с различными критериями для фильтрации данных в панели отображения данных по разделу;

             Панель навигации и меню – содержит разделы доступные пользователю, при необходимости панель сворачивается;

             Панель отображения данных – отображает список элементов выбранного раздела в панели навигации и меню.

                                    2.2.1         Информационная панель

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

Информационная панель имеет следующие инструменты:

             Отличительный знак Системы или логотип организации. При клике на отличительный знак Системы или логотип производится переход на главную страницу. 

             Наименование Системы. При клике на наименование Системы производится переход на главную страницу.

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

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

             Инструмент “Выход”. При клике на инструмент производится завершение рабочей сессии и выход из Системы. Пользователю отображается страница входа для нового ввода логина и пароля.

                                    2.2.2        Панель инструментов

Панель инструментов содержит доступные пользователю инструменты для выполнения различные действия с объектами, содержание инструментов может меняться в зависимости от раздела или прав и ролей пользователя. 

Инструменты доступные системному администратору на рабочем столе «Системный администратор» строго заданы и не могут быть изменены.

Система позволяет системному администратору настраивать панель инструментов для других рабочих столов и объектов Системы (за исключением системных объектов) в зависимости от направленности Системы и требующегося функционала.

Стандартные инструменты доступные в разделах:

             Инструмент «Новый объект»;

             Инструмент «Фильтр»;

             Инструменты переключения страниц.

Инструмент «Новый объект»

Инструмент предназначен для создания нового объекта, в выбранном разделе Системы. Для выполнения действия следует кликнуть на инструмент «Новый объект», подтвердить создание нового объекта в выбранном разделе (либо отказаться). 

При подтверждении создания нового объекта в выбранном разделе системы будет открыта форма для заполнения атрибутов нового объекта. После заполнения обязательных атрибутов объекта и клике на инструмент «Сохранить» новый объект будет создан в Системе для выбранного раздела. 

При отказе выполнять действие новый объект в системе создан не будет и пользователь вернется к текущему разделу, где был нажат инструмент «Новый объект». 

Инструмент «Фильтр»

Инструмент присутствует только если для раздела настроена панель фильтрации. Инструмент «Фильтр» случит для сворачивания и разворачивания панели фильтрации данных. Система запоминает последнюю выбранную настройку отображения панели фильтрации данных (свернута/развернута) для разделов. 

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

Инструменты переключения страниц

Инструменты доступны при наличии в панели отображения данных большого количества объектов. Кол-во объектов на странице может регулировать и задается настройками для раздела системным администратором.

Если в панели отображения данных 2 и более страниц, инструменты переключения позволяют переходить по всем имеющимся страницам с данными в разделе.

                                    2.2.3         Панель фильтрации данных

В Системе реализован алгоритм поиска и фильтрации данных, состоящий из 3 этапов, представленных ниже:

             Отбор объектов – отбор выполняется по всем объектам системы соответствующего типа, согласно объектной модели приложения;

             Предустановленный фильтр – из предыдущего этапа производится выбор тех объектов, которые удовлетворяют обязательным критериям поиска;

             Пользовательский фильтр – выбор объектов из результатов предыдущего этапа, которые удовлетворяют пользовательским критериям поиска.

Механизм поиска поддерживает два основных способа фильтрации данных:

1.    логическое «И» (используется между критериями поиска);

2.    логическое «ИЛИ» (используется между значениями критериев поиска).

Поиск записей в разделе осуществляется с помощью панели фильтрации данных.

Панель представляет собой настроенные поля для поиска объектов. Поля содержат наименование атрибутов для объектов выбранного раздела, где задан критерий (содержит, равен, между и т.д. более подробно критерии будут рассмотрены в разделе по настройке поисков объектов) по которому будет идти отбор данных и содержатся соответствующие строки для ввода условий поиска.

На панели фильтрации имеются следующие инструменты:

             Инструмент «Найти» - после клика на инструмент происходит поиск среди объектов текущего раздела в соответствии с заданными критериями поиска;

             Инструмент «Очистить» - позволяет очистить ранее заданные критерии поиска на панели фильтрации данных;

             Инструмент «Сменить режим» - при клике на инструмент пользователь Системы переключается в режим редактирования фильтра и появляется возможность настроить свой персональный фильтр. Для этого в режим редактирования фильтра необходимо оставить галочки только у нужных атрибутов, определить тип фильтра для выбранных параметров, и сохранить пользовательский фильтр под уникальным именем;

             Инструмент «Выбрать шаблон» - сохраненные уникальным именем фильтры доступны для выбора в списке при клике на инструмент «Выбор шаблона». Пользователь может выбрать любой ранее сохраненный фильтр и применить его. Удалить шаблон фильтра можно кликнув на инструмент удалить в списке с наименованиями шаблонов напротив нужного наименования шаблона.

                                    2.2.4         Панель навигации и меню

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

                                    2.2.5         Панель отображения данных

В панели отображения данных раздела пользователь может увидеть список объектов раздела с учетом привязок своей системной роли и наличия прав доступа.

С помощью панели пользователь может перейти на другую страницу данных и увидеть все объекты на последующих страницах (каждая страница содержит определенное количество объектов раздела).

На панели отображения данных доступна возможность сортировки объектов по возрастанию или убыванию.  Изменить сортировку списка объектов можно по всем его атрибутам при наличии соответствующей настройки для атрибута.

 

3. Административные средства 

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

Раздел «Административные средства» содержит следующие средства:

             Консоль;

             Заблокированные объекты;

             Активные сессии;

             Обновить настройки.

3.1 Средство администрирования «Консоль»

При клике на средство администрирования «Консоль» Система позволяет перейти в Grails Debug Console, написать код на языке groovy и выполнить его применительно к объектам Системы. 

Средство администрирования «Консоль» может использоваться с широкой направленностью (например, администратор может получить информацию по объектам, создать новые объекты, обновить информацию по объектам, перечитать справочники и т.п.) 

3.2 Средство администрирования «Заблокированные объекты»

Средство администрирования «Заблокированные объекты» позволяет системному администратору управлять заблокированными пользователями объектами Системы. При клике на средство администрирования «Заблокированные объекты открывается страница, где в табличном виде представлена информация с детализацией по заблокированным объектам, а также информация об использующихся серверах и их количестве и общая сумма всех заблокированных объектов. 

Блокировка объектов Системы производится по идентификатору объекта.

В деланой информации по заблокированным объектам содержится следующая информация:


Идентификатор заблокированного объекта; 

             Логин пользователя, заблокировавшего объект;

             Имя пользователя, заблокировавшего объект;

             Время блокировки объекта системы;

             Идентификатор сессии пользователя, заблокировавшего объект;           Сервер, с которого пользователем был заблокирован объект.

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

Системный администратор может выборочно при необходимости разблокировать один из объектов, кликнув на инструмент «Удалить» для выбранного заблокированного объекта. Также имеется возможность разблокировать все объекты, представленные в таблице кликнув по соответствующему инструменту «Разблокировать все объекты».

В Системе предусмотрена автоматическая разблокировка объектов, если объект определенное время не используется.

3.3 Средство администрирования «Активные сессии»

Средство администрирования «Активные сессии» позволяет администратору получить информацию о пользователях, которые в настоящий момент вошли в Систему и используют систему для работы. Информация по активным сессиям представлена в табличном виде и содержит детальную информацию по сессиям, а также информацию об использующихся серверах и их количестве и общую сумму всех активных сессий.

Системному администратору доступна следующая детальная информация по активным сессиям в Системе:

             Логин пользователя;

             Имя пользователя; 

             IP адрес пользователя;

             Время входа в систему;

             Сервер, с которого пользователем вошел в Систему;

Идентификатор сессии пользователя.

Системный администратор может выборочно при необходимости удалить одну или несколько активных сессий, кликнув на инструмент «Удалить» для необходимых строк с сессиями в табличном виде. Также имеется возможность принудительно удалить все активные сессии, представленные в таблице, кликнув по соответствующему инструменту «Удалить все активные сессии».

В Системе предусмотрено автоматическое удаление сессий, если пользователь не использует систему определенное кол-во времени.

3.4 Средство администрирования «Обновить настройки»

Средство администрирования «Обновить настройки» применяется для обновления мета-информации в кэше после обновления модели данных либо конфигурационных настроек.

4. Настройка рабочих столов Системы

Настройка рабочих столов Системы (групп папок, папок, формы объектов, панели фильтрации) производится в разделе «Конфигурация приложения», который состоит из следующих подразделов:

             Редактор классов

             Пользователи;

             Хранилища файлов;

             Поиски;

             Карточки;

             Скрипты;

             Папки;

             Группы папок;

             Отображения папок;

             Пользовательская конфигурация;              Интернационализация.

             Бины

Шаблоны атрибутов

             Правила доступа

             Поиски безопасности

             DataSetConfig

             Асинхронные задачи

4.1 Средство настройки объектной модели данных «Редактор классов»

Инструмент «Редактор классов» представляет собой дерево логически разделенных групп классов объектов с базовым набором свойств, которые наследуются всеми дочерними классами. Подраздел используется для создания и редактирования объектной модели данных Системы.

Дерево родительских классов объектов состоит из следующих основных классов:

       Версионируемый объект – предназначен для создания классов объектов с поддержки версионирования. 

       Базовый объект – предназначен для создания классов объектов без поддержки версионирования.

       Задача – предназначен для создания дополнительных классов объектов с типом хранилища РE и использованием объектов данных классов на бизнеспроцессах. 

       Ссылка – предназначен для создания классов объектов для связи.

       Контент – предназначен для создания классов с свойствами по работе с контентом.

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

                                    4.1.1        Описание класса

Для создания нового класса необходимо в дереве родительских классов выбрать родительский класс, в котором будет создан новый класс, и кликнуть на инструмент “Создать класс”. Заполнить информацию о классе и нажать инструмент “Сохранить класс”.


 

Описание реквизитов класса:

                Системное имя - имя таблицы в базе данных;

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

                Тип - тип класса (не доступно для редактирования). Значение подставляется автоматически          (CONTENT,   LINK, TASK_OBJECT, VALUE_OBJECT, VERSIONABLE_OBJECT) при создании класса к одному из родительских классов. 

                Тип хранилища - определяет базу данных, используемую для хранения объектов. Доступно одно из следующих значений: − CE – Content Engine (хранится в объектном хранилище);

PE – Process Engine (хранится на бизнес-процессе).

                Является виртуальным – установка данного флага в момент создания класса, говорит, что класс не создается и не хранится в базе данных;

                Идентификатор - внутренний идентификатор класса в базе данных;

Если сущность хранит состояние процесса, то необходимо использовать тип хранилища РЕ. Объекты с типом хранилища РЕ создаются при запуске бизнес-процесса и существуют до завершения бизнес-процесса. В остальных случаях необходимо использовать тип хранилища CE.

Смена класса

Система предоставляет возможность переноса дочерних классов из одно родительского класса к другому родительскому классу. Для этого необходимо выбрать класс, которому требуется сменить родительский класс, кликнуть по инструменту «Сменить класс», выбрать из выпадающего списка (содержит все классы дерева модели данных) новый родительский класс и подтвердить действие. Выбранный ранее класс будет успешно перенесен к новому родительскому классу.

                                    4.1.2         Описание свойства класса

Для создания нового свойства класса необходимо в дереве родительских классов выбрать родительский класс, в котором будет создано новое свойство, и кликнуть на инструмент “Создать свойство”. Экран будет разделен на две части: слева отображено дерево с классами и свойствами, а справа реквизиты выбранного в дереве класса или свойства. Затем требуется заполнить информацию о свойстве класса и нажать инструмент “Сохранить свойство”.

Описание реквизитов свойства класса:

                Системное имя - имя столбца таблицы в базе данных;

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

                Тип данных - тип данных свойства. Доступно одно из следующих значений:

                                          − BOOLEAN –    логический     тип     данных                                        (значения          true/false);

− FLOATRANGE – тип вещественного числа с плавающей запятой;

− DATE – тип данных дата;

− STRING – строковый тип данных;

− JSON – тип используется для доп. настройки полей;

− POINT – тип данных точка. Используется для полей с геоданными; − LINE –тип данных линия. Используется для полей с геоданными; − POLYGON – тип данных полигон. Используется для полей с геоданными;

− GUID – глобальный идентификатор;

− DATERANGE – тип используется для работы с диапазонами дат;

− TEXT – тип текст, большая колонка.

− TIME –тип данных время;

− DOUBLE – тип данных для чисел с плавающей запятой

− LONGRANGE – тип данных используется для работы  с диапазоном чисел 8 байт.

− LONG – тип данных число 8 байт.

− PASSWORD – тип используется для хранения пароля в зашифрованном виде;

− TSVECTOR – тип используется для полнотекстового поиска

(FullTextSearch).

Метод отображения - тип отображения данных. Метод отображения данных можно указать редакторе классов в поле “Метод отображения” для свойства объекта или переопределив параметр “templateName” в карточке объекта, указав необходимый метод отображения.

Доступно одно из следующих значений:

− dateTimePicker – вывод даты в формате «dd.MM.yyyy HH:mm:ss»;

− datePicker – дата в формате «dd.MM.yyyy». Значение по умолчанию для полей с типом дата;

− textarea – многострочное текстовое значение (соответствует установленному чек-боксу “Большая колонка” в редакторе классов для свойства класса);

− currency – отображение валют. Разделитель тысяч - пробел, разделитель дробной части - запятая, отображение 2-х знаков после запятой (для типа данных FLOAT, DOUBLE).

− select – выбор одного значения из справочника;

− multiselect – выбор одного или нескольких значений из справочника. Для свойства в редакторе классов должен быть установлен чек-бокс “Является множественным”;

− input – однострочное текстовое значение. Значение по умолчанию для большинства полей;

− choiceIcon – отображение иконки, рядом с полем, соответствующая выбранному значению в справочнике;

− password - поле для ввода пароля, вводимые символы отображаются звездочками, точками или другими знаками (в зависимости от используемого браузера);

− checkbox – поле типа «флаг», значение установлено/значение не установлено. Значение по умолчанию для полей типа Boolean;

− currency – отображение валют. Разделитель тысяч - пробел, разделитель дробной части - запятая, отображение 2-х знаков после запятой (для типа данных FLOAT, DOUBLE).

Дополнительный параметр “null_value” - который позволяет задать значение по умолчанию, если поле пусто (например: -, 0).

При этом в поле «Пользовательская конфигурация поля (JSON)» необходимо указать:

{

    "currency" :  

        {

              "null_value": "-"

         }

}

− loadData - быстрый поиск значений справочника. В основном используется для справочников, которые содержат большое количество данных. Для реализации необходимо добавить в редакторе классов для свойства в поле «Пользовательская конфигурация поля (JSON)» следующий код:

{

  "dataController":"ChoiceLiveSearch",

  "dataService":"choiceLiveSearchService"

}

Примечание: Если требуется добавить быстрый поиск по справочнику в фильтр в папке, то необходимо в конфигурацию (Поиски) добавить параметр “renderer”: “loadData”.

− attachmentList - отображение списка вложений (для свойства ‘Files’) в карточке объект

Пример конфигурации:

{    "panels": [

     

       { "legend": "Значения параметра templateName в карточке объекта",

        "componentsRows": [

          {"components": [ {"cssClass": "span6", "propName":    

"DocumentStatus","label":"choiceIcon","templateName":

"choiceIcon"},

          {"cssClass": "span4", "propName": "checkbox",

"templateName":"checkbox"}]},

          {"components": [ {"cssClass": "span6", "propName":

"Test","label":"password", "templateName": "password"},

{"cssClass": "span3", "propName": "currency",

"templateName":"currency"}]}

        ]

      },

      { "legend": "Отображение параметра attachmentList в templateName",

        "componentsRows": [

         {"components": [ {"cssClass": "span8", "propName":

"Files", "templateName": "attachmentList","required": true}]}            

 

        ]

      }

    ]

  }

−  staticText - отображение статического текста с сообщением пользователю. Дополнительный параметр params: messageCode - сообщение, с поддержкой интернационализации.

Пример конфигурации:

{"components": [{"cssClass": "span6", "propName": "Code", 

"templateName": "staticText",  

                                                                        "params": {"messageCode": "Штрих код не

распознан, повторите сканирование"}}]}

−  hidden – скрытое поле, на карточке не отображается;

−  code – отображение конфигурационных скриптов. Дополнительный параметр “mode”, который отвечает за подсветку синтаксиса для кода скриптов. Доступны два значения: groovy или json; Пример конфигурации:

"components": [ {"cssClass": "span8", "propName": "TestCode",

"templateName": "code", "params":{"mode":"json"}}]}

       Справочник - имя справочника, из которого необходимо отобрать значения. Используется для полей, содержащих список значений для выбора;

       Шаблон атрибута - имя шаблона атрибут. Данный параметр добавляется только для свойств с типом данным STRING. Шаблон атрибутов позволяет выполнять арифметические операции (тип данных свойств объекта должен совпадать), а также указывать различные условия (if).; 

       Сортируемое - в табличном отображении папки для столбца с данными добавляется кнопка, позволяющая сортировать значения по возрастанию/убыванию, если флаг установлен;

       Обязательно для заполнения - при установленном флаге, поле в карточке объекта помечается как обязательное для заполнения;

       Только для чтения - установленный флаг означает, что поле доступно только для чтения;

       Является множественным - установленный флаг означает, что в поле доступно введение нескольких значений установленного типа;

       Является уникальным – установленный флаг говорит, что в поле будут содержаться только уникальные данные;

       Является скрытым - установленный флаг означает, что поле не будет отображаться в карточке объекта;

       Подсказка – введенное строковое значение будет отображено пользователю Системы при взаимодействии со свойством. 

       Значение по умолчанию - значение, которое будет отображаться в поле при создании карточки объекта;

−  Можно передавать значение справочника, указав значение свойства, по которому настроен поиск в справочнике (напр.: 789).

−  Можно передавать массив значений справочника, в формате: [5,10,12] - числовые значения (ID) или ["appAdmin", "user"] - строковые значения.

Примечание: Свойство должно являться множественным (чек-бокс установлен) и метод отображения указан - multiselect.

       Максимальная длина - максимальное количество символов допустимых в поле;

       Пользовательская конфигурация поля (JSON) - поддерживает json-скрипт, определяет поведение поля (например, задается правило, по которому вычисляется поле);

       Является системным – свойство недоступно для редактирования и используется для выполнения системных операций;

       Является виртуальным – обозначает, что свойство класса не создается и не хранится в базе данных;

       Родительский класс – автоматически заполняется названием родительского класса для которого создается свойство;

       Идентификатор - внутренний ID свойства класса в базе данных;

Система поддерживает наследование свойств классов. Дочерний класс наследует все свойства родительского класса. 

Переопределение свойств классов

              Система     предоставляет     возможность переопределения           поведения         свойств

родительского класса для дочерних классов. Например, изменить шаблон атрибута, значение по умолчанию, метод отображения, справочник, но нельзя переопределять системное имя и

название свойства.

                                    4.1.3         Удаление классов и свойств

Для удаления класса или свойства класса необходимо установить флаг напротив нужного элемента модели данных и нажать инструмент «Удалить свойство»/«Удалить класс».

Доступны следующие варианты удаления:

               частичное удаление класса или свойства класса - удаление из дерева модели данных;

               полное удаление класса или свойства класса - удаление из дерева модели данных и в базе данных.

Для полного удаления по умолчанию установлен флаг “Удалить все связанные данные”.

                                    4.1.4        Фильтрация по дереву классов и свойств  

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

                                    4.1.5             Создание конфигурационных настроек для класса

Системному администратору доступен инструмент создания автоматически конфигурационных настроек для класса, созданного в редакторе классов. 

Данный инструмент автоматически генерирует соответствующие конфигурации в подразделах «Папки», «Карточки», «Отображения папок», «Поиски» для выбранного класса объектов, а также устанавливает расположение папки для объектов класса в соответствующей конфигурационной настройке в подразделе «Группы папок».

 

Для запуска генератора необходимо кликнуть на инструмент «Мета-генератор» и заполнить следующие атрибуты:

       Для атрибута «Тип документа» необходимо указать из выпадающего списка доступных классов имя класса для объектов которого будут созданы конфигурационные настройки на одном из рабочих столов.

       Для атрибута «Папка» требуется указать название папки для объектов класса, которое будет использоваться в системе и отображено для пользователей системы, если наименование отлично от названия класса в «Редакторе классов». Если атрибут «Папка» оставить пустым, то Система использует наименование выбранного класса в «Редакторе классов» в качестве наименования папки.

       Для атрибута «Название рабочего стола» выбрать необходимый рабочий стол, на котором будет создана папка с объектами настраиваемого класса.

       Для атрибута «Группа папок» необходимо выбрать из списка одну из имеющихся групп папок в Системе, к которой будет добавлена новая папка объектов.

       Установить флаги «Папка», Фильтр, Карточка для создания конфигурационных настроек в соответствующих подразделах «Папки», «Поиски», «Карточки». Если данные конфигурационные настройки для настраиваемого класса будут созданы вручную или уже имеются в Системе, то флаги устанавливать не нужно. В этом случае будут созданы дубли конфигурационных настроек. 

 

4.2 Подраздел «Пользователи»

В подразделе “Пользователи” содержаться пользователи, заведенные в Системе. 

База пользователей напрямую в системе ведутся при использовании метода аутентификации с использованием типа репозитория «LOCAL».

Системная роль определяет вид пользовательского интерфейса при работе c Системой. Каждому пользователю присваивается хотя бы одна системная роль. Доступ в соответствующий интерфейс пользователя, осуществляется на основе установленной системной роли.

Система поддерживает три вида системных ролей:

               «Системный администратор» отвечает за настройку платформы;

               «Прикладной администратор» отвечает за настройку и работу со справочниками системы;

               «Пользователь» работает в системе.

Создание нового пользователя

Для создания нового пользователя, требуется в подразделе «Пользователи» кликнуть на инструмент «Новый документ», подтвердить создание нового объекта класса «Пользователи», заполнить обязательные поля (в том числе: установить логин, пароль, ФИО, роли пользователя, рабочие столы пользователя и правила доступа) и нажать инструмент «Сохранить».

 

 

В результате новый пользователь будет создан.

Для редактирования информации о пользователе требуется в подразделе «Пользователи» выбрать необходимый элемент из табличного отображения данных, открыть карточку, внесите изменения и нажмите кнопку “Сохранить”.

Удаление элемента справочника “Пользователи”

В подразделе «Пользователи» требуется выбрать необходимый элемент из табличного отображения данных, открыть карточку пользователя и нажать инструмент «Удалить». 

В результате выбранный элемент справочника будет удален.

После выполнения данного действия системным администратором пользователь больше не сможет авторизоваться в системе, до момента заведения данному пользователю новой учетной записи в Системе или до момента восстановления из корзины удаленной ранее учетной записи пользователя.

 

4.3 Подраздел «Хранилища файлов»

Для хранения файлов, загружаемых в систему (например, файлы добавленные на вкладку “Вложения” в карточки объектов) необходимо создать конфигурацию с указанием пути к хранилищу файлов.

Хранилище файлов – это область на файловой системе для хранения бинарных данных (файлов).

Для того чтобы создать хранилище файлов необходимо выполнить следующие действия:

1.              Перейти в раздел «Конфигурация приложения»,  а затем в подраздел «Хранилища файлов»;

2.              Нажать на инструмент «Новый документ» и подтвердить создание нового хранилища; 3. В поле «Путь» указать путь к папке, где будут храниться файлы и установить флаг

«Используется по умолчанию»;

4. Нажать инструмент «Сохранить». 

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

              При           необходимости           хранилище           может            быть               изменено.

В карточке хранилища файлов доступны следующие инструменты для редактирования:

-                «Изменить путь к хранилищу» - позволяет задать для хранилища новый пусть к хранению файлов.

-                «Установить хранилищем по умолчанию» - если хранилищ несколько, позволяет сменить хранилище по умолчанию

Также доступны инструменты для просмотра дополнительной информации о хранилище файлов:

-                «Рассчитать статистику по хранилищу» - обновляет информацию об общем размере занимаемого файлами и о количестве файлов.

-                «Проверка текущего состояния» - проводится тестовая запись файла в хранилище и удаление для проверки доступности хранилища. По результатам проверки пользователю выдается соответствующее сообщение.

4.4 Подраздел «Поиски»

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

Создание конфигурационной настройки запроса поиска

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

В результате конфигурационная настройка пользовательского запроса поиска будет создан.

 

4.4.1 Формирование данных конфигурационной настройки

 

Поле «Данные конфигурации» содержит JSON-блок настройки поиска. Ниже в таблицах приведены атрибуты (см. Табл. “Атрибуты данных конфигурации”) и условия (см. Табл. “Условия данных конфигурации”), используемые при формировании данных конфигурации.

Таблица 1. Атрибуты данных конфигурации

 

Используемое значение по умолчанию (если значение не выбрано)

binding

AND, OR

AND

 

readonly

 

true, false

 

false

value

Может содержать как

константу, так и стандартный макрос: ${user.id}, ${user.name},

 

 

${role.id}, ${role.name} или разработанный свой макрос.

 

Таблица 2. Условия данных конфигурации

 

Значение условия

 

Описание

 

Примечание

 

fieldName, (обязательное условие)

Имя поля объекта

 

 

EQUAL

Равно

 

GREATER_EQUAL

 

Больше или равно

GREATER_THAN

Больше чем

 

LESS_EQUAL

 

Меньше или равно

LESS_THAN

Меньше чем

 

NOT_EQUAL

 

Не равно

LIKE

Как

 

BETWEEN

 

Между

EMPTY

Пусто

 

NOT EMPTY

 

Не пусто

 

IS_NULL

Не заполнено

 

 

NOT_NULL

 

Заполнено

CONTAINS_ALL

Содержит все

 

NOT_CONTAINS_ALL

 

Не содержит все

 

CONTAINS_ONE_OF

Содержит один из

 

 

SQL

 

Условие SQL

IN

Входит в

 

NOT_IN

 

Не входит в

Пример конфигурационной настройки:

1.     {"criteria":

2.     {"id": "criteria_Mediator", "binding": "AND", "conditions": [

3.     {"id": "FolderName", "field": "FolderName", "label": "Номер","readonly": false,

"visible": true, "condition": "EQUAL", "maxlength": 255 },

4.     {"id": "PackageNumber", "field": "PackageNumber", "readonly": false,

"label":"Номер агентского договора", "visible": true, "condition": "LIKE" },

5.     {"id": "Branch", "field": "Branch", "label":"Филиал", "readonly": false,

"visible": true, "condition": "IN", "maxlength": 255 },

6.     {"id": "DateCreated", "field": "DateCreated", "label": "Дата создания",

"readonly": false, "visible": true, "condition": "BETWEEN" },

7.     {"id": "Author", "field": "Author", "readonly":false, "visible": true,

"condition": "EQUAL", "value": "${user.login}"},

8.     ]}

9.     }

Описание скрипта

1  строка – начало скрипта;

2  строка – наименование (id) скрипта, условие объединения запросов (binding); 3 – 7 строка – условия поиска:

                id – уникальный идентификатор запроса;

                field – наименование поля для поиска (как в “Редакторе классов”);

                label – наименование поля для пользователя, если отличается от заданного в “Редакторе классов”;

                readonly – признак редактирования условия поиска (см. Таблицу 2);

                visible – признак видимости условия поиска (см. Таблицу 2);

                condition – условия фильтрации (см. Таблицу 3);

                maxlength – максимальное количество символов для ввода в условие;

                value - дополнительное условие для поиска. Может содержать константу или макрос ($макрос).

              Где        макрос         —         это        код        groovy,   возвращающий строку.

После создания шаблона поиска его необходимо связать с папкой, в которой он будет использоваться по умолчанию. Об этом написано в разделе «Папки».

Так же допустима настройка сложных поисков с несколькими вложенными критериями, в таком случае атрибут И/ИЛИ будет отображаться в фильтре. Пример

конфигурационной настройки приведен ниже:       

Пример конфигурационной настройки:

{

"criteria": {  

"id": "criteria_1",  

    "binding": "AND",  

        "conditions": [

            {"id":"IsCurrentVersion", "field":"IsCurrentVersion", "visible":false,

"condition": "EQUAL", "value": true},  

            {"id": "ContractNumber", "field": "ContractNumber", "visible": true,

"condition": "LIKE"},

            {"id": "ContractDate", "field": "ContractDate", "visible": true,

"condition": "BETWEEN"},

            {"id": "Performer", "field": "Performer", "visible": true, "condition": "EQUAL"},

            {"id": "ContractState1", "field": "ContractState", "visible": false,

"condition":  "IN", "value": [175, 187, 181, 177]},

       

                                        {"id": "criteria_2",  

                                            "binding": "OR",  

                                                   "conditions": [  

                         {"id": "Author", "field": "Author", "visible": true,

"condition": "EQUAL", "value": "${user.login}"},

                         {"id": "ApprovalDepartments", "field":

"ApprovalDepartments", "visible": false, "condition": "OVERLAP", "value":

$user.params.Department}

                        ]}

                ]}

}

Фильтрация записей раздела

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

1.              Перейти в интерфейс «Пользователь», открыть необходимый раздел и папку, нажать кнопку «Фильтр»;

2.              Нажать кнопку в панели фильтрации «Сменить режим»;

3.              Отредактировать критерии поиска (выпадающий список);

4.              Выбрать условия поиска (чек-боксы), которые будут отображаться в панели фильтрации (если чек-бокс не установлен, то поле не будет отображаться на панели фильтрации);

5.              Нажать кнопку «Сменить режим» еще раз.

В результате набор полей и критерии поиска для полей на панели фильтрации будут изменены в соответствии с новыми настройками.

4.4.2 Управление шаблонами поиска

Для удобства поиска по записям разделов пользователь может создать собственный шаблон поиска, состоящий из набора условий и критериев поиска.

Создание шаблона поиска

Для того чтобы создать шаблон поиска, необходимо выполнить следующие действия:

1.             В папке нажать кнопку «Сменить режим»;

2.             Настроить критерии поиска;

3.             Нажать кнопку «Сохранить как»;

4.             В окне сохранения шаблона поиска ввести имя шаблона поиска;

5.             Нажать кнопку «Сохранить».

Удаление конфигурационной настройки запроса поиска

Для того чтобы удалить конфигурационную настройку запроса поиска, необходимо открыть карточку объекта и нажать инструмент “Удалить”. А также в конфигурационной настройки папки, для параметра “Search” указать значение по умолчанию “DefaultSearch” (в данном случае, для папки панель фильтрации отображаться не будет) или другое существующее наименование конфигурационной настройки поиска, подходящего для папки.

4.5 Подраздел «Группы папок»

Группы папок и папки – это логические разделы, в которых отображаются бизнесобъекты.

Создание конфигурационной настройки группы папок

Для создания конфигурационной настройки групп папок необходимо перейти в раздел “Пользовательская конфигурация”, папку “Группы папок” и нажать на инструмент “Новый документ”. Выбрать в поле “Название рабочего стола“ рабочий стол, для которого необходимо создать группы папок, и заполнить поле “Данные конфигурации”, при необходимости добавить описание в поле “Описание конфигурации”.

Конфигурационная настройка создается один раз для каждого рабочего стола.

Формирование данных конфигурационной настройки

Конфигурационная настройка представляет собой json-скрипт, в котором указываются следующие параметры:

                class – класс, который реализует логику группировки папок;

                label – название группировки(раздела);

                inboxes – список названий папок входящих в группировку(раздел).

Пример конфигурационной настройки:

 

                  "Мои данные" : {

    "label" : "Мои данные",

    "inboxes" : [ "EmployeesМуData", "Employees" ]

  },

  "Внесение данных" : {

    "label" : "Внесение данных",

    "inboxes" : [ "DataInput" ]

  }

}

Удаление конфигурационной настройки группы папок

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

4.6 Подраздел «Папки»

Папка – это сущность, определяющая группировку объектов по каким-то критериям.

В папке отображаются объекты.

Создание конфигурационной настройки папки

Для того чтобы создать папку, необходимо выполнить следующие действия. Перейти в раздел “Конфигурация приложения”, открыть подраздел “Папки” и нажать на инструмент “Новый документ”. Заполнить поля “Название конфигурации “, “Данные конфигурации”, при необходимости добавить описание в поле “Описание конфигурации”.

Формирование данных конфигурации

Конфигурационная настройка      представляет собой             json-скрипт,   в          котором указываются следующие параметры:

                label – имя папки в системе;

                caseName – название класса объектов в редакторе классов, для которых создается папка;

                type – тип папки (СЕ или PE);

                inboxView – наименование конфигурации табличного отображения папки;

                roles – список ролей, для которой будет доступна папка;

                search – наименование конфигурации поиска для папки;

                showCount - отображение количества объектов рядом с названием папки. Доступно два значения: true - количество объектов отображается, false - не отображается (значение по умолчанию).

Пример конфигурации:

{

    "label": "База точек мониторинга",

    "caseName": "MonitoringPoint",

    "inboxView": "MonitoringPoint",

    "roles": ["appAdmin"],

    "search": "MonitoringPointSearch",

                    "showCount":true

  }

Удаление конфигурационной настройки папки

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

4.7 Подраздел «Отображения папок»

Отображение папок создается на основе типа объекта и определяет набор столбцов, видимых пользователю во время просмотра папки.

Создание конфигурационной настройки отображения папки

Для того чтобы создать конфигурационную настройку отображения папки, необходимо перейти в раздел “Конфигурация приложения”, открыть подраздел “Отображения папок” и нажать на инструмент “Новый документ”. Заполнить поля “Название конфигурации “, “Данные конфигурации”, при необходимости добавить описание в поле “Описание конфигурации”.

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

Об этом написано в подразделе “Папки”.

Формирование данных конфигурации

Конфигурационная настройка представляет собой json-скрипт, состоящий из двух обязательных блоков class и fields и дополнительных: rowsPerPage, params и orderBy.

Блок class содержит название используемого класса представления, доступен один класс platform.dataengine.model.inbox.InboxView.

Блок fields содержит поля, которые будут отображаться в виде столбцов в таблице. В каждом элементе блока необходимо указать обязательный параметр fieldName:

                fieldName – имя свойства объекта, в соответствии с системным именем свойства в редакторе классов;

Для дополнительной настройки формата вывода значения поля, в блоке fields, доступны следующие необязательные параметры:

                label – название поля, отображаемое в табличном представлении папки. Если значение не задано, устанавливается название в соответствии с названием свойства в редакторе классов;

                renderer – компонент, отвечающий за вывод значения. Доступны следующие компоненты:

o               checkbox – компонент выбора для полей типа «флаг», значение установлено/значение не установлено. Значение по умолчанию для полей типа Boolean;

o               date – вывод даты в формате «dd.mm.yyyy». Значение по

умолчанию для полей с типом дата; o dateTime – вывод даты в формате «dd.mm.yyyy hh:mm:ss»; o double – вывод вещественных чисел в формате «#.##»; o number – вывод числовых значений, ограничивает количество

выводимых символов до 100; o text – вывод текстового значения, ограничивает количество

выводимых символов до 100; o choiceIcon - используется для отображения иконок, в соответствии с выбранным значением из справочника.

                hidden – позволяет скрыть поле. Принимает значения true - поле скрыто, false - поле не скрыто. По умолчанию принимает значение false;

                sortable – позволяет отсортировать значения. Принимает значения true - сортировка разрешена, false - запрещена;

                width - позволяет задать ширину колонки. В формате:”200px”.

Блок rowsPerPage содержит количество строк выводимых на одной странице в таблице.

Блок orderBy предназначен для вывода объектов в отсортированном виде. Параметры:

                fieldName - системное имя свойства по которому будут сортироваться объекты;

                direction- направление сортировки: ASC – по возрастанию, DESC – по убыванию.

Блок params предназначен для дополнительной настройки табличного отображения папки. Параметры и значения:

                newWindow – тип boolean, параметр отвечает за открытие карточки объекта в новом окне. Принимает два значение: true - открывать карточку в новом окне, false - не открывать (значение по умолчанию).

                availableViewConfigs – параметр отвечает за отображение данных. Возможны следующие значения параметра availableViewConfigs: dataTable - отображает объекты в табличном виде и map - позволяет отобразить объекты на карте. При использовании двух параметров одновременно данные отображаются в соответствии с первым указанным значением, а также добавляется переключатель между табличным представлением данных и картой.

Пример конфигурации:

{

    "params": {"newWindow": true},

    "rowsPerPage":20,

    "fields" : [  

    {

      "fieldName" : "ContractNumber"

    }, {

      "fieldName" : "ContractDate",

      "renderer":"dateTime"

    },

    {

      "fieldName" : "Customer"

    },

    {

      "fieldName" : "Performer"

    },

    {

      "fieldName" : "ContractState"

    },

    {

      "fieldName" : "Urgent"

    }

    ],

    "orderBy" : {

      "fieldName" : "DateCreated",

      "direction" : "DESC"

    }

  }

Настройка отображения иконок в зависимости от значения справочника

В системе есть возможность отображать в табличном отображении иконки в соответствии c выбранным значением из справочника.

Для добавления иконки в табличное отображение папки необходимо выполнить следующие действия:

1.              В редакторе классов в классе “Справочник(ChoiceList)” создать свойство со следующими атрибутами:

Системное имя: IconCssClass

Название: Css класс иконки

Тип данных: STRING

Максимальная длина: 64

Сортируемое: установить чек-бокс

2.              В карточку справочника для которого необходимо добавить иконку требуется добавить поле и “IconCssClass” и указать CSS класс. Ссылки на доступные иконки и цвета.

3.              Переопределить справочник в конфигурации “choices”, добавив в параметр “itemFields” значение “IconCssClass”.

Пример:

MissionStatus     : new SimpleChoice('MissionStatus',

'criteriaChoiceListProcessor', [         index     : 'ID',         label     : '${fields.Title}',         search    :

Search.from('MissionStatus').whereCurrentVersion().orderBy('Title'),         fields    : ['ID','Title'],         itemFields: ['Title','IconCssClass']

4.              В конфигурационной настройке табличного отображения добавить в блок fields компонент “renderer”: “choiceIcon” Пример конфигурационной настройки:

{

    "fields" : [  

     {

      "fieldName" : "MissionStatus",

      "renderer": "choiceIcon",

      "label":"",

      "width":"25px"

     },

     {

      "fieldName" : "Executor"

     }     

    ],

    "orderBy" : {

      "fieldName" : "DateCreated",

      "direction" : "ASC"

    }

  }

Удаление конфигурационной настройки отображения папки

Для того чтобы удалить конфигурационную настройку табличного отображения папки, необходимо нажать на инструмент “Удалить”. А также необходимо заменить наименование           конфигурационной   настройки             отображения папки во        всех конфигурационных настройках папок (подраздел «Папки»), где использовалась данная конфигурационная настройка и заменить на другое существующее наименование конфигурационной настройки.

 

4.8 Подраздел «Карточки»

Карточка - это набор полей с информацией об объекте, расположенной в определенном порядке. Поля в карточке - это визуальное отображение свойств объектов.

Создание конфигурационной настройки карточки объекта

Для того чтобы создать конфигурационную настройку карточки объекта необходимо перейти в раздел «Конфигурация приложения», подраздел «Карточки», нажать инструмент “Новый документ”. Или открыть карточку, которая была сгенерирована при помощи инструмента «Мета-генератор». Конфигурационная настройка карточки объекта была сформирована только с системными атрибутами такие как автор, пользователь, внесший последние изменения, дата создания и дата последнего изменения.

Формирование данных конфигурации

Конфигурационная настройка представляет json-скрипт.

panels – это секции на которые разбиваются поля на карточке, секции можно

сворачивать/разворачивать.

Каждая секция имеет заголовок (элемент legend) и набор выводимых компонентов componentsRows – это строки в рамках панели.

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

                cssClass – название css классов применяемых к полю (разделитель пробел). Доступные классы можно посмотреть в файлах с расширением css проекта.

Наиболее часто используемые классы это span1 – span12;

                propName – название свойства объекта. Обязательный параметр;

                readonly – тип boolean, позволяет сделать поле доступным или недоступным для редактирования (true - нередактируемое поле, false - редактируемое, является значением по умолчанию);

                required – тип boolean, позволяет указать что свойство является обязательным для заполнения (true - обязательное, false - необязательное, является значением по умолчанию);

                koBinding – используется для добавления дополнительной не универсальной и не настраиваемой логики к полю. В поле требуется указать название предварительно разработанного биндинга и его параметры;

                maxLength – ограничивает максимально допустимое количество символов для поля с текстовым значением;

                label – название поля, выводится перед значением. По умолчанию используется название свойства свойства;

                choiceName – название справочника для полей с выбором значений из справочника. По умолчанию используется справочник, указанный в атрибуте choice в Редакторе классов;

                templateName – название компонента для вывода значения поля.

Доступны следующие значения:

o               text – нередактируемый текст; o               input – однострочное текстовое значение. Значение по

умолчанию для большинства полей; o               textarea – многострочное текстовое значение; o            select – выбор значения из справочника. Значение по

умолчанию для полей по справочнику; o               multiselect – выбор значения из справочника, позволяет

выбрать несколько значений; o       attachmentList - отображение списка вложений (для свойства

‘Files’) в карточке объекта;

o               checkbox – для полей типа «флаг», значение установлено/значение не установлено. Значение по умолчанию для полей типа Boolean; o datePicker – дата в формате «dd.MM.yyyy». Значение по

умолчанию для полей с типом дата; o dateTimePicker – дата в формате «dd.MM.yyyy HH:mm:ss»; o hidden – скрытое поле, на карточке не отображается; o staticText – отображение статического текста с сообщением пользователю. Дополнительный параметр params: messageCode - сообщение, с поддержкой интернационализации; o code – для полей, содержащих конфигурационный скрипт. Для

полей с таким templateName доступен дополнительный параметр «mode»; o table – для полей, содержащих объекты другого класса объектов. Для полей с таким templateName требуется дополнительно указывать следующие атрибуты:

§             view – название табличного представления;

§             className – класс выводимых объектов.

o               choiceIcon – используется для полей, содержащих значения из справочника. Рядом с полем выводится иконка, соответствующая выбранному значению в справочнике. В справочнике для каждого значения должен быть указан CSS класс иконки.

params – дополнительные параметры. Доступны следующие дополнительные параметры:

o               linkedChoice - тип boolean, реализует предзаполнение полей на основе данных других полей. Значения true - предзаполнять поле, false - не предзаполнять (значение по умолчанию); o hideLabel – не выводить название поля. Принимает два значения, true (не выводить) и false (выводить). По умолчанию для полей название выводиться; o mode – доступно для templateName «code»; Позволяет управлять подсветкой синтаксиса для кода скриптов. Доступны два значения: groovy или json;

o               link – используется для отображения наименования поля (‘label’) в виде ссылки на связанный объект. Для настройки используется два параметра:

§    ‘to’ - название класса;

§    ‘binding’ - используется для задания доп. поисков, позволяющих найти связанный объект.

Доп. параметры для ‘binding’: “IsCurrentVersion” - указатель на версию объекта (‘true’ - последняя версия объекта, ‘false’ - все версии объекта);

“VersionSeriesId”      -           идентификатор            последовательности             версий объекта.

o               mask – позволяет задать правило для проверки формата

вводимого значения. Для параметра требуется указать следующие атрибуты;

§    pattern – паттерн для проверки значения, более подробно можно прочитать в документации по JavaScript;

§    msg – сообщение для некорректных значений.

Пример конфигурационной настройки:

{

 "panels": [  

                                              { "legend": "Description",  

                                         "componentsRows": [{"components": [{"cssClass": "span12",

"propName": "ProgramRole"}]}, 

                                                       {"components": [{"cssClass": "span4", "propName":

"Surname"}, {"cssClass": "span4", "propName": "FirstName"}, {"cssClass": "span4",

"propName": "MiddleName"}]},

                                                       {"components": [{"cssClass": "span6", "propName":

"Department"}, {"cssClass": "span6", "propName": "Position"}]},

                                                     {"components": [{"cssClass": "span12", "propName":

"OrganizationalUnit"}]},

                                                     {"components": [{"cssClass": "span12", "propName":

"Name", "templateName":"hidden"}]},

                                                       {"components": [{"cssClass": "span6", "propName":

"Email"}, {"cssClass": "span6", "propName": "Telephone"}]},

                                 {"components": [ {"cssClass": "span10", "propName": "INN", "label":"ИНН", "params": {"mask": {"pattern": "^\\d{13}$", "msg": "Поле должно содержать 13 цифр!"}}}]}

                                                       ]

                                     }, 

 { "legend": "Access",  

                                                            "componentsRows": [

                                                       {"components": [{"cssClass": "span6", "propName":

"Login"}, {"cssClass": "span6", "propName": "Password"}]},

                                                       {"components": [{"cssClass": "span6", "propName":

"Roles", "templateName":"hidden"}]},

                                                       {"components": [{"cssClass": "span6", "propName":

"Desktops", "templateName":"hidden"}]},

               

"AccessRule"}]}

    {"components": [{"cssClass": "span6", "propName":

               

]

                                     }

 ]

}

Удаление конфигурационной настройки карточки объекта

Для того чтобы удалить конфигурационную настройку карточки объекта, необходимо нажать на инструмент “Удалить”.

4.9 Подраздел «Скрипты»

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

Доступные конфигурационные скрипты:

                tabsScript - предназначен для управления набором вкладок в карточке объекта;

                toolsScript - предназначен для управления инструментами в папке и в карточке объекта, а также для управления приложенными файлами к карточке объекта;

                layoutsScript - предназначен для управления отображением карточки объекта, а также переопределением карточки в зависимости от параметров;

                inboxesScript -            предназначен            для управления    табличным

представлением папки;

                activitiScript - предназначен для описания методов и вызова их в Workflow engine.

Описание конфигурационного скрипта закладок

Для того чтобы создать конфигурационный скрипт закладок (tabsScript) необходимо перейти в раздел “Конфигурация приложения”, открыть подраздел “Скрипты”, нажать инструмент “Новый документ”, заполнить поле “Название конфигурации” значением tabsScript.

В поле “Данные конфигурации” создать новый класс, реализующий методы интерфейса или наследующий класс, и переопределить требуемые методы.

Свойства входящих параметров CalculatorContextForTab context:

user - пользователь;

desktopName - название рабочего стола пользователя; tabName - название текущей вкладки; vo - объект.

Пример конфигурационного скрипта закладок:

import org.springframework.web.context.request.RequestContextHolder import platform.dataengine.meta.context.CalculatorContextForTab import platform.dataengine.meta.impl.DefaultTabsCalculator

 class CommonTabCalculator extends DefaultTabsCalculator {

 

  @Override

  Collection<String> getCaseTabs(CalculatorContextForTab context) {     def isNew = context.vo.id == null     def session =

RequestContextHolder.currentRequestAttributes().getSession()     def tabs = []

     switch (context.vo.classType) {       case 'Statement':         tabs << 'details'         if (!isNew) {

          tabs << 'content'           tabs << 'salesProduct'           tabs << 'history'

        }         break       case 'DataInput':         if (!isNew) {           tabs << 'content'           tabs << 'details'           tabs << 'history'         } else if (isNew) {           tabs << 'details'

        }         break

       default:

        tabs << 'details'         if (!isNew) {           tabs << 'content'           tabs << 'history'

        }

    }      tabs

  }

}

Описание конфигурационного скрипта инструментов

Для того чтобы создать конфигурационный скрипт инструментов (toolsScript) необходимо перейти в раздел “Конфигурация приложения”, открыть подраздел “Скрипты”, нажать инструмент “Новый документ”, заполнить поле “Название конфигурации” значением toolsScript.

В поле “Данные конфигурации” создать новый класс, реализующий методы интерфейса или наследующий класс, и переопределить требуемые методы.

Свойства входящего параметра ToolCalculatorContextForInbox context:

user пользователь;

desktopName - название рабочего стола пользователя; inboxConfig - название папки; inboxViewType - название табличного отображения папки.

Свойства входящего параметра CalculatorContextForTab context:

user - пользователь;

desktopName - название рабочего стола пользователя; tabName - название текущей вкладки; vo - объект.

Свойства входящего параметра ToolCalculatorContextForContent context:

user - пользователь;

desktopName - название рабочего стола пользователя; tabName - название текущей вкладки.

Пример конфигурационного скрипта инструментов:

import platform.dataengine.meta.context.CalculatorContextForTab import platform.dataengine.meta.context.ToolCalculatorContextForContent import platform.dataengine.meta.context.ToolCalculatorContextForInbox import platform.dataengine.meta.impl.DefaultToolsCalculator import platform.object.store.common.meta.constants.Desktop

 class ToolsScript extends DefaultToolsCalculator {

    static final String RULE_RightsAssign = "e7518dd2-d6a4-4009-acb638ff6cbba578"

 

 

  @Override

  Collection<String> getTools(ToolCalculatorContextForInbox context) { //

Инструменты для папок     def result = super.getTools(context)     def desktopName = context.desktopName     def inboxConfig = context.inboxConfig     def isRightsAssign =

context.user.accessRules.contains(RULE_RightsAssign)     def user = context.user

     if (desktopName == Desktop.APP_ADMIN) {       switch (inboxConfig.caseName) {         case 'MonitoringPoint':         case "Instructions":         case "Handbooks":         case "Orders":         case "RiskScales":

        case "AirChemicalPollutants":         case "IndividualMeasures":         case "OrganizationalUnits":

        case "QuantificationTechniques":         case "CodesCriticalOrgans":

        case "PostType":         case "ObservationProgram":         case "DepartmentalSubordination":         case "Settlement":         case "Region":         case "RiskType":         case "ProgramRole":         case "ResearchMethodType":

        case "MeasurementUnits":           result << 'exportData'           result << 'importData'           break

         case "RiskCalculations":           result << 'exportData'           break

         case "DataInput":           result = []           result << 'newCaseDataInput'           result << 'provideForm'           break                    case "Users":

          if (!isRightsAssign && user?.login != 'admin'){                 result = []

          }           else {                 result = []                 result << 'newCaseUsers'

          }           break

      }

    }      return result

  }

 

  @Override

  Collection<String> getTools(CalculatorContextForTab context) { //

Инструменты для карточек     def tools = super.getTools(context)     def isNew = context.vo.id == null     def isRightsAssign =

context.user.accessRules.contains(RULE_RightsAssign)     def user = context.user

         tools.remove('saveCaseAsMinor')

     if (context.vo.classType in ['Instructions', 'Orders', 'Handbooks']) {       switch (context.tabName) {         case 'content':           tools = []           tools << 'uploadContentNonVers'           tools << 'deleteContentsNonVers'           break

      }     }     if (context.vo.classType in ['DataInput']) {       switch (context.tabName) {         case 'content':           tools = []           tools << 'uploadContentNonVers'           tools << 'deleteContentsNonVers'           tools << 'deleteCase'           break

      }

    }

 

    if (context.vo.classType =='Users' && !isNew  && !isRightsAssign  &&

user?.login != 'admin') {       switch (context.tabName) {         case 'details':           tools = []           tools << 'saveCase'           break

      }

    }          tools

  }

 

  @Override

  Collection<String> getTools(ToolCalculatorContextForContent context) {     def tools = super.getTools(context)     tools << 'updateContentTool'     tools << 'deleteContentNonVers'     tools

  }

}

Описание конфигурационного скрипта отображения карточек объектов

Для того чтобы создать конфигурационный скрипт карточек объектов (layoutsScript) необходимо перейти в раздел “Конфигурация приложения”, подраздел “Скрипты”, нажать инструмент “Новый документ”, заполнить поле “Название конфигурации” значением layoutsScript.

В поле “Данные конфигурации” создать новый класс, реализующий методы интерфейса или наследующий класс, и переопределить требуемые методы.

Свойства входящего параметра LayoutCalculatorContext context:

user - пользователь;

desktopName - название рабочего стола пользователя; tabName - название текущей вкладки; vo - объект; layout - базовая карточка объекта.

Свойства входящего параметра CalculatorContextForTab context:

user - пользователь;

desktopName - название рабочего стола пользователя; tabName - название текущей вкладки; vo - объект.

Пример конфигурационного скрипта отображения карточек объектов:

import platform.dataengine.meta.context.CalculatorContextForTab import platform.dataengine.meta.context.LayoutCalculatorContext import platform.dataengine.meta.impl.DefaultLayoutsCalculator import platform.dataengine.meta.model.Layout

 class LayoutsScript extends DefaultLayoutsCalculator {

   static final String RULE_RightsAssign = "e7518dd2-d6a4-4009-acb6-

38ff6cbba578"

 

  @Override

  Layout processLayout(LayoutCalculatorContext context) {     super.processLayout(context)     def vo = context.vo     def layout = context.layout     def isRightsAssign =

context.user.accessRules.contains(RULE_RightsAssign)     def user = context.user     def isNew = context.vo.id == null

 

    if (context.vo.classType == 'Users' && !isNew && !isRightsAssign &&

user?.login != 'admin') {

      //context.layout.readonly = true       findComponent(layout, 'ProgramRole').readonly = true       findComponent(layout, 'Surname').readonly = true       findComponent(layout, 'FirstName').readonly = true       findComponent(layout, 'MiddleName').readonly = true       findComponent(layout, 'Department').readonly = true       findComponent(layout, 'Position').readonly = true       findComponent(layout, 'OrganizationalUnit').readonly = true       findComponent(layout, 'Email').readonly = true       findComponent(layout, 'Telephone').readonly = true       findComponent(layout, 'Login').readonly = true       findComponent(layout, 'AccessRule').readonly = true

    }      return layout

  }

 

  @Override

  String getLayoutName(CalculatorContextForTab context) {     def caseName = context.vo.classType     def layoutName = super.getLayoutName(context)

     if (caseName == 'Users') {       layoutName = 'Employees'

    }     return layoutName

  }

}

Описание конфигурационного скрипта отображения табличных представлений

Для того чтобы создать конфигурационный скрипт отображения табличных представлений (inboxesScript) необходимо перейти в раздел “Конфигурация приложения”, открыть подраздел “Скрипты”, нажать инструмент “Новый документ”, заполнить поле “Название конфигурации” значением inboxesScript.

В поле “Данные конфигурации” создать новый класс, реализующий методы интерфейса или наследующий класс, и переопределить требуемые методы.

Доступный параметр inboxView - табличное отображение папки;

Пример конфигурационного скрипта отображения табличных представлений:

import platform.dataengine.meta.DefaultInboxesCalculator import platform.dataengine.inbox.InboxView

 

class CommonInboxesCalculator extends DefaultInboxesCalculator {

 

  @Override

  InboxView processInboxView(InboxView inboxView) {     def diffField = ["fieldName": "DocumentStatus" ]       def fields = inboxView.fields     if (inboxView.name == "Document"){         fields<<diffField

        }     inboxView

  }

}

Описание конфигурационного скрипта по работе с бизнес процессами

Для того чтобы создать конфигурационный скрипт по работе с бизнес-процессами (activitiScript) необходимо перейти в раздел “Конфигурация приложения”, открыть подраздел “Скрипты”, нажать инструмент “Новый документ”, заполнить поле “Название конфигурации” значением activitiScript.

В поле “Данные конфигурации” описать методы, которые необходимо будет вызывать в Workflow engine.

Пример конфигурационного скрипта:

import platform.dataengine.bpm.activiti.meta.BaseActivitiScript import platform.dataengine.api.search.type.ConditionType import org.activiti.engine.delegate.VariableScope import platform.dataengine.api.search.model.Search

 

class ActivitiScript extends BaseActivitiScript {

  

    public void getAuthorEmail(VariableScope execution) {

        def user = userService.findByLogin(execution.getVariable("Author"))         if (user != null && user.params.Email != null)             execution.setVariable("AuthorEmail", user.params.Email)         else

            execution.setVariable("AuthorEmail", null)

         

    }

}

Пример: Для вызова методов, из activiti-app необходимо выполнить следующие действия действия:

1.     Создать”Execution listeners”, добавить в поле “Expression” выражение: ${ecmOperations.callAction(execution, ‘getAuthorEmail’)} где callAction вызывает методы из ActivitiScript, execution - параметр, куда

передаются значения, ‘getAuthorEmail’ - название метода в ActivitiScript.

2.     В поле “Name” добавить значение “MethodeName”

3.     Сохранить “Execution listeners”

Если необходимо создать “Task listeners”, то в поле “Expression”, требуется указать парамтер “task”: ${ecmOperations.callAction(task, ‘getAuthorEmail’)}.

 

4.10 Подраздел «Пользовательская конфигурация»

Подраздел содержит настройки пользовательской конфигурации системы. Система распознает следующие файлы конфигурационных скриптов (название конфигурации):

1.  choice.reload.cron - скрипт для обновления справочников по cron;

2.  choice.reload.crud - скрипт обновления справочников по crud;

3.  choices - скрипт описания справочников;

4.  tabs - скрипт описания вкладок;

5.  tools - скрипт описания инструментов.

Описание конфигурационного скрипта обновления справочников по расписанию

Скрипт представляет собой json-скрипт для обновления справочников по cron.

В скрипте указываются следующие параметры:

- interval – интервал для задания времени выполнения, используется синтаксис cron:

* * * * *

- - - - -

| | | | |

| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)

| | | ------- Месяц (1 - 12)

| | --------- День (1 - 31)

| ----------- Час (0 - 23)

------------- Минута (0 - 59);

           initialDelay – задержка перед первым выполнением в миллисекундах;                choices – список в формате: [‘название справочника’, …].

Пример конфигурации:

[     [

        interval    : '0 0/5 * * * *',         initialDelay: 1000 * 60,         choices     : ['Users']

    ]

]

Примеры использования интервалов в формате по cron:

 

* * * * *                               Каждую минуту

 

59 23 31 12 5                           За минуту до конца года, если последний  день года - пятница

 

59 23 31 Dec Fri                        За минуту до конца года, если последний день года - пятница  

                                           (еще один вариант записи)

 

0 12 * * 1-5 (0 12 * * Mon-Fri)         В полдень по рабочим дням

 

* * * 1,3,5,7,9,11 *                    Каждую минуту в январе, марте, мае, июле, сентябре и ноябре

 

0 9 1-7 * 1                             Первый понедельник каждого месяца, в 9 утра

 

0 0 1 * *                               В полночь, первого числа, каждый месяц 

*    0-11 * *                              Каждую минуту до полудня

 

*    * * 1,2,3 *                           Каждую минуту в январе, феврале и марте

 

*    * * Jan,Feb,Mar *                     Каждую минуту в январе, феврале и марте 

0 0 * * *                               Каждый день в полночь

 

0 0 * * 3                               Каждую среду в полночь

Описание конфигурационного скрипта обновления справочников по событиям

Скрипт представляет собой json-скрипт для обновления справочников по событиям в хранилище объектов:

1.  событие «создан» – создан новый объект в хранилище;

2.  событие «обновлен» – существующий объект обновлён в хранилище;

3.  событие «удален» – объект удален из хранилища;

Конфигурация обновления справочников имеет следующий формат:

[Системное имя класса: [‘название справочника’, …]].

Пример конфигурации:

[

'FileStores': [ 'FileStores'] ,

'DocStatusList': [ 'DocStatusList']

]

Описание конфигурационного скрипта описания справочников

Описание справочника c контроллером criteriaChoiceListProcessor соответствует схеме:

Наименование справочника : new Реализация справочника(’Системное имя справочника’, ’название контроллера’, [  

               index : '' - название поля используемого в качестве идентификатора элемента справочника,   

               label : '' - название элемента справочника, которое выводится пользователю,               search : '' sql запрос,  

               fields: ['','',...] - набор полей для формировании описания элемента справочника,       itemFields: ['','',...] -  набор кэшируемых полей

])

Доступные реализации справочников:

       SimpleChoice - базовая реализация справочника;

       LinkedChoice - связанный справочник, содержит дополнительный параметр в поле params: linkedChoice - название связанного справочника, обязательный для заполнения параметр;

       ParametrizedChoice 

       TimeCacheChoice - временный справочник. Справочника переформировывается, через заданный промежуток времени.

Список контроллеров:

1.         criteriaChoiceListProcessor – обеспечивает поиск в основном хранилище по sql запросу.Параметры:


index - тип строка, название поля используемого в качестве

идентификатора элемента справочника; o               label - тип строка, содержит описания элемента справочника,

которое выводится пользователю. Имеет следующий формат:

‘${<название поля с префиксом fields>} …’ .

Пример: ‘${fields.Title} - ${fields.Number}’ o               search - sql запрос; o fields - набор полей для формирования описания элемента

справочника; o               itemFields - набор кэшируемых полей.

Примеры:

 

Department  : new SimpleChoice('Department', 'criteriaChoiceListProcessor', [      index     : 'ID',      label     : '${fields.Title}',

     search    : Search.from('Department').whereCurrentVersion().orderBy('Title'),      fields    : ['ID', 'Title'],      itemFields: ['ID', 'Title']

   ]),

 

   DepartmentUsers : new SimpleChoice('Users', 'criteriaChoiceListProcessor', [      index     : 'Login',      label     : '${fields.Name}',      search    : Search.from('Users').where('Department', ConditionType.CONTAINS,

'${vo.params.AssigneeDepartment}').orderBy('Name'),      fields    : ['Login', 'Name'],      itemFields: ['Login', 'Name']

   ])

2. grailsApplicationChoiceListProcessor – формирует справочник по конфигурации приложений. Параметры:

o               values - тип строка, название конфигурации; o       excludeParams - параметр типа список строк, содержащий

параметры, которые не должны использоваться в choice;

label

o               index; o              fields; o              itemFields;

Примеры:

 

Desktops      : new SimpleChoice('Desktops', 'grailsApplicationChoiceListProcessor', [         values: 'repo.meta.desktops.available'

]),

 

DesktopsWOAdmin  : new SimpleChoice('DesktopsWOAdmin',

'grailsApplicationChoiceListProcessor', [ values: 'repo.meta.desktops.available', excludeParams: ['console']

])

4.              CompositeChoiceListProcessor - объединяет справочники в один справочник. Параметры:

o               composite - параметр типа список строк, содержащий список

названий справочников;

EmployeeAndCandidate: new SimpleChoice('EmployeeAndCandidate',

'compositeChoiceListProcessor', [     composite: ['Employee', 'Candidate']

])

5.              DataSourceChoiceListProcessor - осуществляет вычитку элементов в справочник из произвольного DataSource. DataSource должен быть предварительно зарегестрирован в файле конфигурации grails. Параметры:

o               dataSourceName - тип строка, название DataSourcе; o          query - sql запрос; o          label; o               index;

o               itemFields;

Доступные DataSource настраиваются в grails, в конфигурации справочника указывается название. Пример:

dataSources {

  dataSource {

    <параметры>

  }   orgstructure {

    <параметры>

  }

  <название 1> {

    <параметры>

  }

  ...

  <название n> {

    <параметры>

  }

}

Пример:

PersNoSearch    : new TimeCacheChoice('PersNoSearch', 'dataSourceChoiceListProcessor', 4, TimeUnit.HOURS, [         index         : 'TAB_NUM',         label         : '${fields.TAB_NUM}',

        query         : 'SELECT TAB_NUM FROM GLX#PERSONS',         fields        : ['TAB_NUM'],         dataSourceName: 'dataSource_orgstructure'

    ])

6.     HierarchyChoiceListProcessor - обеспечивает поиск по иерархии классов справочников доступных в системе.

7.     JsonURLChoiceListProcessor - разбивает и выводит json по ссылке.

Параметры:

o               url - тип строка, ссылка на json;

o               label


Пример json:

[

  {

    "index": "484",

    "label": "X5",

    "param: {

      "Title": "X5"

    }   },

  ...

  {

    "index": "500",

    "label": "Mondeo 4",

   "param: {

      "Title": "Mondeo 4"

    }

  }

]

7.              PropertiesChoiceListProcessor - обеспечивает поиск по свойствам классов доступных в системе. Параметры:

o               class - тип строка, системное имя класса в системе; o       itemFields;

8.              RESTChoiceListProcessor - вычитывает справочник из другого экземпляра по REST API и преобразует его в соответствии с конфигурацией.

Параметры:

o               choiceName - тип строка, название справочника; o              processingEnabled - тип boolean, true - преобразует значения, с

помощью макросов, указанных в ‘label’, false - не преобразует.;

o               items; o              label; o              index; o              itemFields;

9.              ldapChoiceListProcessor – формирует справочник по пользователям из AD. Параметры:

o               label - свойство с именем пользователя; o              index - свойство с идентификатором пользователя.

 

Описание параметров контроллеров см. в разделе “Стандартные контроллеры

для справочников

 

Пример конфигурации:

[

    Instructions                   : new SimpleChoice('Instructions',

'criteriaChoiceListProcessor', [         index     : 'ChoiceCode',         label     : '${fields.ChoiceFullTitle}',         search    : Search.from('Instructions').orderBy('ChoiceCode'),         fields    : ['ChoiceCode', 'ChoiceFullTitle'],         itemFields: ['Files']

    ]),

    Handbooks                      : new SimpleChoice('Handbooks',

'criteriaChoiceListProcessor', [         index     : 'ChoiceCode',         label     : '${fields.ChoiceFullTitle}',         search    : Search.from('Handbooks').orderBy('ChoiceCode'),         fields    : ['ChoiceCode', 'ChoiceFullTitle'],         itemFields: ['Files']

    ])

]

 

Система позволяет гибко настраивать различные виды справочников, в том числе связанные справочники с выбором значений        или     связанные справочники       с предзаполненными полями.

Описание конфигурационного скрипта описания вкладок

              Конфигурация описывает вкладки в карточках объектов.   

Объявление новой вкладки в скрипте “tabs” происходит следующим образом:

Название вкладки: new Tab(label: '', controller: '', classStyle: '', params: [])

                label - название вкладки. Выводится пользователю в интерфейсе системы;

                controller - название контроллера, реализующего бизнес-логику вкладки. Является обязательным для заполнения. Контроллер выбирается из базового набора контроллеров вкладок (см. раздел “Стандартные контроллеры для вкладок”);

                classStyle - название класса иконки, которая будет отображаться перед названием вкладки. Используются иконки Glyphicons, доступные названия можно посмотреть перейдя по ссылке http://getbootstrap.com/2.3.2/basecss.html#icons;

                params - дополнительные параметры. Параметры определяются контроллером, реализующим вкладку;

                view - табличное представление InboxView, которое используется для вывода информации пользователю. Параметр доступен только для контроллеров: historyTab, linkedTab, linkedTabWithSearch.

Пример конфигурации:

[     details: new Tab(label: 'Реквизиты', controller: 'detailsTab', classStyle:

'icon-book', params: [processLayout: true]),     geodata: new Tab(label: 'Геоданные', controller: 'detailsTab', classStyle:


'icon-book', params: [processLayout: true]),     history: new Tab(label: 'История', controller: 'historyTab', params: [view:

'index'],classStyle: 'icon-list'),

    content: new Tab(label: 'Вложения', controller: 'contentDetailsTab', classStyle: 'icon-file', params: [tabLayout: 'default']),

                            

    AddAgreement: new Tab(label: 'Доп. соглашения', controller:

'linkedTabWithSearch',

        classStyle: 'icon-list-alt', params: [         tabView: 'Contract',         linkedCaseClass: 'Contract',         linkedBy: 'DocumentLink',         valueParamName:'VersionSeriesId',         currentVersionOnly: true,         search:'AddAgreementSearch'

                                      ])

]

 

Для выбора доступны следующие контроллеры:

1.              detailsTab - обеспечивает отображение и редактирование свойств объекта. Свойства на вкладке отображаются в соответствии с настройками карточки объекта Layout.Form - тип java.util.Map, форма, в которой выводятся параметры объектов. Позволяет при вызове инструментов выполнять отправку формы вместо ajax запроса.

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

details: new Tab(label: 'Реквизиты', controller: 'detailsTab', classStyle:

'icon-book', params: [processLayout: true]),

2.              contentDetailsTab - обеспечивает способ отображения прикрепленных к объекту файлов.

Для настройки инструмента доступны следующие дополнительные параметры:

o               tabLayout- тип строка, обеспечивает способ вывода файлов. Доступны следующие значения:

§             default - отображение списка загруженных файлов с возможностью предварительного просмотра содержимого;

§             list - отображение списка загруженных файлов без возможности просмотра содержимого.

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

content: new Tab(label: 'Attachments', controller: 'contentDetailsTab',

classStyle: 'icon-file',

                 params: [tabLayout: 'default'])

3.              historyTab - обеспечивает отображение действий связанных с изменением объекта. Параметры:

o               view - тип строка, имя представления (gsp) для отображения,

которое содержится в папке historyTab в проекте; o       searchCriteria - дополнительное условие поиска истории; o       customClassType - тип класса объектов истории, по

умолчанию - FNKitHistoryItem; o               customProperties - массив свойств, которые нужно вычитать

из объекта истории (пр.: [“Duration”,”CustomName”]). Используется только вместе с параметром customClassType

Пример использования стандартной вкладки “История”:

history: new Tab(label: 'История', controller: 'historyTab',  

                                                                   params: [view: 'index'],classStyle: 'icon-list')

Пример использования вкладки “Комментарии” с дополнительными параметрами:

comments: new Tab(

                label: 'Комментарии',                  controller: 'historyTab',                  params: [

                                                               view: 'index_comments',  

                                                              searchCriteria: new Criteria(Criteria.AND, [new

Condition("OperationType", ConditionType.EQUAL, "comment.added")])],  

                classStyle: 'icon-comment-alt'

                )

4.         linkedTab - обеспечивает отображение в табличном виде связанных объектов. Для данного контроллера необходимо заполнить три обязательных

                 параметра tabView, linkedCaseClass и linkedBy.         

Параметры:

                tabView - тип строка, название табличного представления InboxView. Обязательный параметр. Используется контроллером для вывода связанных объектов;

                linkedCaseClass - тип строка, название класса связанных объектов.

Параметр обязателен для заполнения.

                linkedBy - тип строка, название свойства у связанного объекта (по которому связанны дочерний объект с родительским объектом). Параметр обязателен для заполнения;

                valueParamName - тип строка, название свойства класса родительского объекта по которому осуществляется поиск в параметре linkedBy.

По умолчанию используется свойство класса «ID».

                condition - тип строка, условие поиска для связи между родительским и дочерними объектами. По умолчанию используется значение equal. Таким образом, на вкладке в таблице связанных объектов отображаются дочерние объекты, для которых выполняется условие: значение свойства класса заданного для параметра ‘linkedBy’ равно значению свойства класса указанного для параметра ‘valueParamName’.

                currentVersionOnly - тип boolean, принимает два значения:

o               true - в таблице будут отображаться только последние

актуальные версии связанных объектов; o               false - будут отображаться все версии связанных объектов.

                canDelete - тип boolean. Принимает два значения:

o               true - для каждой строки в таблице отображается кнопка

«Удалить», позволяющая выполнить удаление выбранного объекта; o    false - кнопка «Удалить» для каждой строки в таблице не

отображается. По умолчанию значение параметра false.

                activeTab - тип строка, название вкладки, которая будет открыта при переходе в карточку связанного объекта.

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

Act: new Tab(label: 'Акты', controller: 'linkedTab', classStyle: 'iconscreenshot',  

                                           params: [                                                                         tabView: 'Act',

                                                                       linkedCaseClass: 'Act',                                                   linkedBy: 'ContractLink',                                                valueParamName: 'VersionSeriesId',                                                           currentVersionOnly: true,                                               canDelete: true,                                                            activeTab: 'history'])

5.         linkedTabWithSearch - обеспечивает отображение в табличном виде связанных объектов и панель фильтрации данных. Контроллер наследует все

            параметры контроллера linkedTab и обязательный параметр search.                                                          

Параметры:

                search - тип строка, название поиска (FNKitSearch) для настройки панели фильтрации данных на вкладке. Обязательный параметр;

                tabView;

                linkedCaseClass;

                linkedBy;

                valueParamName;

                currentVersionOnly;

                canDelete;

                activeTab;

                condition.

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

Act: new Tab(label: 'Акты', controller: 'linkedTab', classStyle: 'iconscreenshot',  

                                           params: [                                                                         tabView: 'Act',

                                                                       linkedCaseClass: 'Act',                                                   linkedBy: 'ContractLink',                                                valueParamName: 'VersionSeriesId',                                                           currentVersionOnly: true,                                               canDelete: false,                                                           search: 'ActTabSearch'])

6.              linkedMultipleTab - обеспечивает отображение нескольких типов связанных объектов на одной вкладке родительского объекта. Например в карточке “Договор” на вкладке “Связанные документы” могут отображаться связанные объекты типа “Акты”, “Доп.соглашения”, “Счета-фактуры”. Доступный параметр:

o      tabConfigs - тип массив строк, который содержит названия

вкладок (tabName). Параметр обязателен для заполнения.

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

Documnets   : new Tab(label: 'Связанные документы', controller:

'linkedMultipleTab', classStyle: 'icon-copy',  

                                           

 

 params: [

 

                                           

'AddAgreement', 'Bill']

 

               

 tabConfigs: ['Act',

                                           

 

               

 ])

7.              HTMLTemplateTabController- обеспечивает отображение HTML страницы, в которой можно использовать вставки для вывода свойств объекта.

Дополнительно требуется создать класс “HTMLTemplateDocument” со свойством “HTMLTemplateBody” типа String и указать чеб-бокс “Большая колонка”. В карточке в поле “HTMLTemplateBody” внести HTML шаблон. Доступный параметр:

o      docVsId - тип строка, значение свойства “VersionSeriesId”

объекта “HTMLTemplateDocument”.

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

invoice: new Tab(label: 'Счет-фактура', controller: 'HTMLTemplateTab',

classStyle: 'icon-list',

                                                                 params: [docVsId: 141])

8.              linkedTasksTab - обеспечивает вывод задач, запущенных по текущему объекту в Workflow engine. Параметры:

o      tabView - тип строка, название табличного представления InboxView. Обязательный параметр.

o      linkedCaseClass - тип строка, название класса с типом

хранилища PE, который используется для поиска в Workflow engine.

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

linkedEcmTasks : new Tab(label: 'Задачи', controller: 'linkedTasksTab',

classStyle: 'icon-table',  

                             

params: [

 

 

                

               

 

tabView : 'ApprovalProcessView',

                

'ApprovalProcess'

               

 

linkedCaseClass:

                             

               

])

 

 

  

Описание конфигурационного скрипта описания инструментов

Инструмент – это модуль расширения платформы, который позволяет выполнять

различные действия над объектом или папками.       

Конфигурация описывает “tools” инструменты в папках и карточках объектов.

Объявление инструмента в скрипте tools’ происходит следующим образом:

Название инструмента: new Tool(label: '', icon: '', controller: '', params:

[])

                label - название инструмента. Выводится пользователю в интерфейсе системы;

                icon - название класса иконки, которая будет отображаться перед названием инструмента. Используются иконки Glyphicons, доступные названия можно посмотреть перейдя по ссылке http://getbootstrap.com/2.3.2/basecss.html#icons;

                controller - название контроллера, реализующего бизнес-логику инструмента. Является обязательным для заполнения. Контроллер выбирается из базового набора контроллеров инструментов (см. раздел “Стандартные контроллеры для инструментов”);

                params - дополнительные параметры. Параметры определяются контроллером, реализующим инструмент.

Пример конфигурации:

[     newCase        : new Tool(label: 'Новый документ', icon: 'new-icon-add', controller: 'createCaseTool'),

       

    deleteCase     : new Tool(label: 'Удалить', icon: 'new-icon-remove', controller: 'deleteCaseTool',

    params: [

 

               

hotKeys: ['Ctrl', 'Shift', 'D'],  

               

safeDelete: true

               

                    ]),

               

 

    newSubContract: new Tool(label: 'Новый договор субподряда', icon: 'new-iconadd', controller: 'createCaseTool',     params: [

        classType : 'Contract',         defaultParams: '{DocumentLink: "$vo.params.VersionSeriesId", ContractType:

"233"}'  

                                                        ])

]

 

Стандартные контроллеры для инструментов

Для выбора доступны контроллеры общего и административного назначения.

Для настройки инструментов доступны следующие общие параметры:

                withText - добавляет название инструмента после иконки. Доступные значения:

o               true - выводить название инструмента; o            false - не выводить название инструмента. По умолчанию

значение параметра false.

                hotKeys - позволяет задать комбинацию клавиш для быстрого вызова инструмента.

                checkinType - параметр используется для версионируемых объектов.

Параметр может принимать следующие значения:

o               MAJOR - изменение старшей версии; o          MINOR - изменение младшей версии.

Параметр checkinType используется в следующих контроллерах:

saveCaseTool, deleteContentTool, uploadContentTool, updateContentTool, reportTool, parameterReportTool, revokeProcessTool.

                onComplete - определяет тип действия после использования инструмента. Значения параметра:

o               ToolCompleteAction.RELOAD – выполняется обновление

вкладки; o       ToolCompleteAction.TO_CASE – открывается новая карточка,

если создается новая версия; o               ToolCompleteAction.TO_INBOX – выполняется переход в

папку, название папки в параметре inboxName; o             ToolCompleteAction.TO_BACK_URL – выполняется действие

назад;

o               ToolCompleteAction.NONE – никакие действия не

выполняются.

Параметр onComplete используется в следующих контроллерах: saveCaseTool, launchProcessTool, routeTool, revokeProcessTool.

Контроллеры общего назначения

1.         createCaseTool - обеспечивает создание новых объектов в системе. Инструмент, может быть добавлен как на карточку объекта, так и в папку. Для настройки инструмента доступны следующие дополнительные параметры:

o               classType - тип строка, обязательный параметр для

инструмента, добавляемого на карточку объекта. Если инструмент добавляется в папку, то параметр должен отсутствовать. Содержит название класса объекта, который требуется создать.

o               defaultParams - тип строка, используется для задания

начальных значений параметров объекта. Параметр содержит json объект, в котором ключ - это название свойства нового объекта, значение - значение свойства нового объекта. В значении можно использовать макросы:

${макрос} где макрос — это код groovy, возвращающий строку. В макросе доступны

следующие переменные: vo - родительский объект (если новый объект создается с карточки объекта), user - текущий пользователь, current - текущая дата.

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

newSubContract: new Tool(label: 'Новый договор субподряда', icon: 'new-

icon-add', controller: 'createCaseTool', params: [

    classType : 'Contract',     defaultParams: '{DocumentLink: "$vo.params.VersionSeriesId", ContractType:

"233"}'])

2.             deleteCaseTool - обеспечивает удаление последней версии объекта системы. Инструмент может быть добавлен только на карточку объекта и не предназначен для работы из папки.

Параметры:

o               recursive - тип boolean, значение по умолчанию true -

выполняется удаление всех версий документа и всей информации связанной с документом, false - удаление только последней версии документа.

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

deleteCase     : new Tool(label: 'Удалить', icon: 'new-icon-remove',

controller: 'deleteCaseTool',

                 params: [hotKeys: ['Ctrl', 'Shift', 'D' ]])

3.             saveCaseTool - обеспечивает сохранение свойств объекта. Инструмент может быть добавлен только на карточку объекта. Для настройки инструмента доступны следующие дополнительные параметры:

o               checkinType; o              onComplete; o               inboxName;

o               checkExist - параметр типа список строк, позволяет проверить

что созданный объект не является дубликатом.В проверке участвуют только свойства, перечисленные в параметре checkExist. Если найден объект с идентичными значениями, указанным в параметре checkExist, то объект не будет сохранен. На экране отобразится предупреждение: “Объект с такими же свойствами уже существует”. По умолчанию проверка не выполняется.

o               rewriteParams - тип параметра строка, позволяет

переинициализировать свойства объекта перед сохранением. Содержит json объект, в котором: ключ - это название свойства объекта, значение - это значение параметра объекта. Поддерживает макросы на языке groovy, формат макроса: ${макрос}

saveAddAgreementAsMajor: new Tool(label: 'Сохранить Доп. соглашение', icon:

'new-icon-save',controller:'saveCaseTool',                          params: [ checkinType: CheckInType.MAJOR,  checkExist: ['ContractNumber'],

rewriteParams: '{ ContractDate: "${current.date}"}',

                                  ])

4.             commentTool - обеспечивает добавление комментария к текущему объекту.Инструмент может быть добавлен только в карточку объекта. Комментарий отображается на вкладке “История” или на дополнительно настроенной вкладке “сomments”.

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

addComment   : new Tool(label: 'Добавить комментарий', icon: 'icon-

comment', controller: 'commentTool',  

                                                                      params: [hotKeys: ['Shift', 'Q']])

5.             reloadCurrentTabTool – обеспечивает обновление активной вкладки объекта.

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

reloadCurrentTab: new Tool(label: 'Обновить', icon: 'icon-refresh',

controller: 'reloadCurrentTabTool')

6.             changeClassTool - обеспечивает смену класса объекта.

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

changeClass    : new Tool(label: 'Поменять класс', icon: 'icon-leaf',

controller: 'changeClassTool',                           params: [:])

7.             printMapTool - обеспечивает печать видимой области карты.

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

printMap       : new Tool(label: 'Распечать видимую область карты', icon:

'icon-print', controller: 'printMapTool',

                              params: [selector: 'canvas'])

8.             uploadContentTool - обеспечивает добавление вложений к объекту.

Может использоваться только на карточке объекта.

o               checkinType;

o               acceptedFiles - допустимые расширения фалов или mime type

(https://www.dropzonejs.com/#configacceptedFiles); o               saveData - параметр типа boolean, предназначен для проверки

сохранения данных перед выполнением действий с вложениями. -true - отображает предупреждение пользователю “Перед выполнением действия сохраните изменения”, если пользователь внес изменения и не сохранил карточку. Значение по умолчанию;

-false - не отображает предупреждение, изменения в карточке объекта будут потеряны.

o               maxFiles - максимальное количество файлов для загрузки.

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

uploadContent  : new Tool(label: 'Загрузить вложения', icon: 'icon-upload',

controller: 'uploadContentTool',                               params: [ checkinType: CheckInType.MINOR, saveData: true, maxFiles: 10, acceptedFiles: 'application/pdf, .docx'

                                      ])

9.             deleteContentTool - обеспечивает удаление файлов, приложенных к объекту. Инструмент может быть добавлен только на вкладку управления вложениями объекта. Для настройки инструмента доступны следующие дополнительные параметры:

o               checkinType; o              saveData;

o               mode - тип строка, определяет, какие вложения требуется

удалить. Доступны два значения:

§    current - удаление одного выбранного вложения;

§    common - удаление нескольких выбранных вложений объекта.

o               enableContentCheck - тип boolean, отображение чек-боксов

для удаления нескольких вложений, значение по умолчанию false – чекбоксы не отображаются на вложении, true - отображаются.

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

deleteContent  : new Tool(label: 'Удалить вложение', icon: 'icon-remove-

sign', controller: 'deleteContentTool',

                 params: [mode: 'current', checkinType: CheckInType.MINOR])

 deleteContents : new Tool(label: 'Удалить вложения', icon: 'icon-remove-sign', controller: 'deleteContentTool',                               params: [mode: 'common', checkinType:

CheckInType.MINOR, enableContentCheck:true])

10.          updateContentTool - обеспечивает обновление выбранного вложения. Инструмент может быть добавлен только на вкладку управления вложениями объекта.Поддерживает параметр:

o               checkinType; o              saveData; o               acceptedFiles.

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

  updateContentTool: new Tool(label: 'Обновить документ', icon: 'icon-

refresh', controller: 'updateContentTool',    params: [

      checkinType: CheckInType.MINOR, acceptedFiles: 'application/pdf, .docx',       withText : true

      ])

11.          downloadTool - обеспечивает загрузку выбранного вложения на персональный компьютер. Инструмент может быть добавлен только на вкладку управления вложениями объекта.

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

downloadContent: new Tool(label: 'Скачать', icon: 'icon-download-alt',

controller: 'downloadTool')

12.          printTool - обеспечивает печать выбранного вложения. Инструмент может быть добавлен только на вкладку управления вложениями объекта.

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

printContent: new Tool(label: 'Распечатать файл', icon: 'icon-print',

controller: 'printTool'),

Контролеры для работы с бизнес-процессом

13.       launchProcessTool - обеспечивает запуск бизнес-процесса в используемом Workflow engine. Инструмент можно добавить только на карточку объекта. Для настройки инструмента доступны следующие параметры:

                                           o     processName - тип строка, идентификатор запускаемого

процесса в используемом Workflow engine; o               peClassType - тип строка, название класса с типом PE; o               taskParams - тип строка, содержит json объект, позволяет

проинициализировать свойства задачи начальными значениями при запуске бизнес-процесса. В значении можно использовать макросы; o               onComplete - параметр определяет тип действия после запуска

процесса; o     isUnique - параметр принимает два значения true/false.

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

approvalProcess: new Tool(label: 'Запустить согласование', icon: 'icon-

play', controller: 'launchProcessTool',  params: [

        isUnique: true,

        processName: 'CARTApprovalProcess',          peClassType: 'ApprovalProcess',          taskParams: JsonOutput.toJson([

            ParentContract: '${vo.params.VersionSeriesId}'

            ContractNumber: '${vo.params.ContractNumber}'

                                      ]),         onComplete: ToolCompleteAction.TO_INBOX,         inboxName: 'NewContract',         withText : true

        ]),

14.       routeTool - обеспечивает выполнение шагов(действий) по бизнеспроцессу. Инструмент можно добавить только на карточку с типом объекта PE.

Для настройки инструмента доступны следующие дополнительные параметры:

                                           o            onComplete - параметр определяет тип действия после

выполненного действия; o   taskParams - тип строка, содержит json объект, позволяет

проинициализировать свойства задачи начальными значениями при запуске бизнес-процесса. В значении можно использовать макросы; o      requiredFields - параметр типа список строк, список

обязательных свойств объекта, которые должны быть заполнены перед выполнением действия; o     stepResponses - параметр типа список строк, который

содержит названия шагов (действий) в бизнес-процессе. Если не указывать данный параметр, то инструмент отобразит все шаги из бизнес-процесса; o     needComment – параметр типа список строк, в котором

перечисляются названия шагов (stepResponses) для которых комментарий является обязательным для заполнения.

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

approveCase : new Tool(label: 'Выполнить действие', icon: 'icon-check',

controller: 'RouteTool',     params: [      withText : true,  

    stepResponses: ['Approve', 'Reject', 'GetBack'],     needComment: ['Reject', 'GetBack'],

            ])

 

15.       revokeProcessTool - обеспечивает удаление запущенного процесса. Инструмент может быть добавлен только на карточки объектов, по которым запускается процесс. Для настройки инструмента доступны следующие параметры:

o               checkinType; o        onComplete;

o               updateParams – тип строка, содержит json объект, позволяет

проинициализировать свойства объекта по которому был запущен бизнеспроцесс. В значении можно использовать макросы.

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

revokeProcess  : new Tool(label: 'Отозвать процесс', icon: 'icon-stop',

controller: 'revokeProcessTool',         params: [

            checkinType: CheckInType.MAJOR,  

            updateParams: JsonOutput.toJson([ContractState:'173']),              onComplete: ToolCompleteAction.TO_CASE

                ])

Контролеры для работы с отчетами

1. reportTool - обеспечивает формирование отчета в формате xlsx по объектам в папке. Для настройки инструмента доступны следующие дополнительные параметры:

o      template - объект типа {XlsxReportTemplate} с параметрами

формирования отчета.

Параметры для формирования отчета:

o      sheetName - название листа xlsx файла. Необязательный параметр; o headerRow - номер строки, в которой содержится шаблон заголовка и

в которой необходимо сформировать заголовок отчета; o contentRow - номер строки, в которой содержится шаблон для

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

o      sheetIndex - индекс листа в шаблоне. При формировании отчета по

шаблону параметр обязателен для заполнения; o attachmentName - название файла шаблона, по которому необходимо

сформировать отчет. Файл шаблона должен быть прикреплен к карточке с описанием папки на вкладке “Вложения” в интерфейсе системного администратора в меню “Конфигурация приложения -> Папки”. Т.е. шаблон должен быть прикреплен к той папке из которой вызывается инструмент.

Параметр является необязательным.

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

exportToFile   : new Tool(label: 'Сформировать отчет в формате xlsx', icon:

'icon-print', controller: 'reportTool',                               params: [ template: new XlsxReportTemplate(headerRow: 0, contentRow: 1, attachmentName:

'inbox-report-template.xlsx', sheetIndex: 0)])

2. parameterReportTool - обеспечивает формирование BIRT-отчета из заданного шаблона в указанном формате с пользовательскими параметрами.

Инструмент может быть добавлен в карточку объекта или в папку.

Для настройки инструмента доступны следующие дополнительные параметры:

o      withText; o templateChoice - тип строка, название справочника в котором

содержится список наименований шаблонов отчётов (ReportTemplate.Title) используемых для генерации отчета; o templateVsId - содержит VersionSeriesId шаблона. Если указан

параметр templateVsId, то параметр templateChoice игнорируется, а также не отображается список для выбора шаблона отчёта.

o      attachToObject - boolean, определяет нужно ли добавить

сформированный отчёт в текущий открытый объект, если инструмент добавлен в карточку объекта; o downloadAttach - boolean, определяет нужно ли предлагать

пользователю скачать отчёт после генерации;

o      defaultFormat – тип строка, формат генерации отчета по умолчанию; o availableFormats - парамерт тип список строк, список возможных

форматов генерации отчета. Отображается в виде выпадающего списка возможных форматов перед генерацией отчета; o checkinType. Если инструмент добавлен в карточку объекта.

Пример использования параметров для инструмента, который добавлен в карточку объекта:

 approvalList: new Tool(label: 'Лист согласования', icon: 'icon-ok-sign',

controller: 'parameterReportTool',  params: [

    templateVsId: 4813,      attachToObject: true,     downloadAttach: true,     checkinType: CheckInType.MINOR,     availableFormats: [ReportFormat.PDF],     defaultFormat: ReportFormat.PDF,      withText: true

])

Пример использования параметров для инструмента, который добавлен в папку:

approverReport: new Tool(label: 'Отчет согласующего', icon: ' icon-file',

controller: 'parameterReportTool',  params: [

    templateChoice: 'ParameterTemplate',     attachToObject: false,     downloadAttach: true,

    availableFormats: [ReportFormat.PDF, ReportFormat.XLS],     defaultFormat: ReportFormat.PDF,     withText: true

])

Контролеры административного назначения

1.             userSearchTemplateTool - системный контроллер, обеспечивает сохранение пользовательских шаблонов поиска, для использования в только папках.

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

searchTemplate : new Tool(label: 'Сохранить как', controller:

'userSearchTemplateTool'),\

2.             reloadMetaTool - системный контроллер, отвечает за обновление кэша мета-данных системы. Обновляются все конфигурации из интерфейса системного администратора (классы (из редактора классов), папки, карточки и т.д.) Для использования в папках и на карточке объекта не предназначен.

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

reloadMeta     : new Tool(label: 'Обновление мета информации', icon: 'icon-

refresh', controller: 'reloadMetaTool')

3.             metaGeneratorTool - вспомогательный контроллер для интерфейса системного администратора. Обеспечивает формирование конфигураций типов «Папка», «Табличное представление» и «Карточка».

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

metaGenerator  : new Tool(label: 'Мета-генератор', icon: 'icon-cog',

controller: 'metaGeneratorTool'),

4.             configValidationTool - системный контроллер, обеспечивает валидацию содержимого JSON-блоков. Если в результате были проверки конфигурации были найдены ошибки, то список ошибок будет выведен на экран.При успешном завершение проверки будет отображено сообщение “Проверка успешно завершена, ошибок не найдено”.

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

validate       : new Tool(label: 'Проверить конфигурацию', icon: 'icon-

check', controller: 'configValidationTool',

                              params: [hotKeys: ['Ctrl', 'Shift', 'V']]),

 

 

4.11 Подраздел «Интернационализация»

Интернационализация позволяет адаптировать систему для потенциального использования практически в любом месте. В данном разделе содержится список доступных языков в системе.

Создание объекта интернационализации

Для того чтобы создать интернационализацию необходимо перейти в раздел

“Конфигурация приложения”, папку “Интернационализация” и создать новый документ.

В поле “Наименование конфигурации” требуется указать код языка в соответствии с ISO 639-1 (например: ru, en, it, es, fr и т.д.). В поле “Данные конфигурации” указать перевод объектов системы на требуемый язык.

Для применения нового языка, необходимо чтобы данный язык был указан как основной язык браузера (настройка языка браузера отличается в зависимости от браузера). Например, для браузера Google Chrome необходимо выбрать из меню пункт “Настройки”, перейти в раздел “Дополнительные” и найти настройку языков. Далее необходимо добавить желаемый язык (для которого создана конфигурация в системе), удалить все остальные языки и перезапустить браузер.

Для применения настроек языка в Системе требуется перезайти в Систему. Все наименования объектов Системы указанные в конфигурации будут изменены.

Формирование данных конфигурации

Поле «Данные конфигурации» представляет собой json-скрипт содержащий перевод компонентов и названий объектов на другой язык.

Пример конфигурации:

[

    'application.header.title'    : 'Название приложения',

    // Inboxes

    'Search'                      : 'Поиски',

    'Layout'                      : 'Карточки',

    'Scripts'                     : 'Скрипты',

    'Folders'                     : 'Папки',

    'Folder group'                : 'Группы папок',

    'Folder view'                 : 'Отображения папок',

    'Users'                       : 'Пользователи'

]

 

4.12 Подраздел «Правила доступа»

Правила доступа предназначены для настройки и разграничения прав доступа пользователю к отдельным элементам системы.

Создание нового правила доступа

Для того чтобы создать правило доступа, необходимо перейти в раздел

«Конфигурация приложения», папку «Правила доступа», нажать кнопку «Создать новый документ».

Заполнить следующие поля:

                Заголовок - имя права доступа, которое необходимо будет выбрать в поле “Права доступа” при создании пользователя, в карточке “Пользователь”;

                Рабочий стол - выбрать рабочий стол, который будет доступен пользователю;

                Классы документов - выбрать один или несколько классов, которые будут доступны пользователю;

                Папки - выбрать одну или несколько папок;

                Группы папок - выбрать одну или несколько групп папок;

                Поиски безопасности - выбрать поиск безопасности, который должен быть создан в папке “Поиски безопасности” (см. ниже раздел “Поиски безопасности”).

                Группы слоев – выбрать одну или несколько групп, которые будут отображаться на карте, со всеми картографическими слоями, которые находятся в группе слоя.

                Картографические слои – выбрать один или несколько слоев, которые будут отображаться на карте.

4.13 Подраздел «Поиски безопасности»

Поиски безопасности предназначены для задания дополнительных условий при попытке просмотреть, отредактировать или удалить карточку объекта.

Создание нового поиска безопасности

Для того чтобы создать поиск безопасности, необходимо перейти в раздел «Конфигурация приложения», папку «Поиски безопасности», нажать кнопку «Создать новый документ».

Заполнить следующие поля:

                Название конфигурации - имя поиска безопасности, которое будет отображаться в поле “Поиски безопасности” в карточке “Права доступа”;

                Тип доступа - выбрать тип доступа «READ»;

                Класс - выбрать класс к которому должен применяться данный поиск;

                Данные конфигурации - задать условие, при котором действие над объектом может быть выполнено.

Пример конфигурации:

{

    "criteria": {

        "id": "criteria_1", "binding": "AND", "conditions": [

            {"id":"ContractStatus", "field":"ContractStatus",

"visible":false, "condition": "EQUAL", "value": 45}

        ]

    }

}