Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:manual:report:examples:processes_without_owner [2020/07/23 15:59] 192.168.1.126 удалено |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Процессы без владельцев ====== | ||
- | Рассмотрим пример создания отчета "Процессы без владельцев". | ||
- | |||
- | Для понимания этой статьи требуется знание того: | ||
- | * как создавать, настраивать и сохранять фильтры (см. [[/ru/manual/manual]] -> [[/ru/manual/filter]]); | ||
- | * как создавать динамические и статические отчеты, добавлять в них привязки (см. [[/ru/manual/manual]] -> [[/ru/manual/report]]); | ||
- | * как находить параметры справочников и связи между справочниками в **Объектной модели** ({{bslink>Главное меню → Отчеты → Объектная модель|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;730e73fb-b31c-4f50-b9d6-49d7c04fee67:Item}}) (см. [[ru/creating_user_reports/report/object_model]], [[/ru/manual/manual]] -> [[/ru/manual/report/object_model]]). | ||
- | |||
- | Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов. | ||
- | |||
- | ===== Постановка задачи ===== | ||
- | |||
- | Необходимо создать отчет формата MS Word. В отчете должен выводиться список процессов, у которых нет владельцев. Типами процессов "Действие", "Решение" и "Ссылка" необходимо пренебречь. | ||
- | |||
- | ===== Идея решения задачи ===== | ||
- | |||
- | По заданным условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников. Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете. | ||
- | |||
- | Ключевым вопросом при решении задачи является создание правильных условий фильтра. | ||
- | |||
- | ===== Создание фильтра ===== | ||
- | |||
- | ==== Класс для построения фильтра ==== | ||
- | |||
- | Для отбора "владельцев процесса" будем рассматривать такие связи субъекта с процессом, у которых тип категории = "Владелец". | ||
- | |||
- | Данные о связях процессов и субъектов с такой категорией представлены при помощи: | ||
- | - Справочника **Связи субъекта с процессом** ({{bslink>Главное меню → Отчеты → Объектная модель|ShowRibbonPageOrItem?c639ba43-ff15-4caf-ab36-0d938fe0a7a3;730e73fb-b31c-4f50-b9d6-49d7c04fee67:Item}} -> **Классы** -> **Общие связи** -> **БизнесМодель.СвязиПроцессов**), который содержит информацию по всем типам связей субъекта с процессом. К этому справочнику обращается параметр "Субъекты" в справочнике "Процессы". | ||
- | - Параметра "Владельцы процесса" типа "Список" в справочнике "Процессы". | ||
- | |||
- | Список "Владельцы процесса" является результатом выполнения фильтра по справочнику "Связи субъекта с процессом" -- в списке отображаются только связи с категорией "Владелец". Для того чтобы не делать лишних действий, необходимо рассматривать список "Владельцы процесса". Фильтр будет создаваться по классу "Процессы". | ||
- | |||
- | ==== Вкладка "Условия" ==== | ||
- | |||
- | При детальном рассмотрении задачи можно сформулировать 3 подзадачи по формированию условий: | ||
- | - Условия, отбирающие процессы без владельцев: на вкладке **Субъекты** не должно быть субъектов, у которых категория связи = "Владелец". | ||
- | - Условия отсечения типов процессов согласно постановке задачи: "Действие", "Решение" и "Ссылка". | ||
- | - Технические условия, которые отберут только принятые в рабочей практике процессы: процессы с типами, отличными от используемых в работе типов процессов (папка, внешняя ссылка, служебный). | ||
- | |||
- | Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже. | ||
- | <startTableBox> | ||
- | ^ Параметр ^ Тип ^ Оператор ^ Значение ^ Не ^ Потомки ^ | ||
- | | Владельцы процесса | Подфильтр | = | | + | | | ||
- | | - guid | Значение | = | | + | | | ||
- | | Тип процесса | Список значений | = | Папка, Внешняя ссылка, Служебный, Действие, Решение, Ссылка | + | | | ||
- | <endTableBox| Таблица 1. Условия фильтра> | ||
- | |||
- | **Пояснение по параметру "Владельцы процесса".** Для параметра "Владельцы процесса" (тип параметра -- "Список") необходимо указать, что субъекты в нем не заданы. Для этого: | ||
- | - Указывается, что у параметра "Владельцы процесса" есть непустое значение по параметру "guid". Т.е. указываем на то, что владельцы у процесса есть. | ||
- | - На уровне параметра "Владельцы процесса" делается отрицание заданного выше условия. Т.е. отрицание того, что у процесса есть Владелец. | ||
- | |||
- | Различные условия в параметрах списка "Владельцы процесса" означали бы условия в уже имеющихся связях процесса с субъектами. | ||
- | |||
- | ==== Вкладка "Показ" ==== | ||
- | |||
- | На показ будут выводиться названия процессов. | ||
- | <startTableBox> | ||
- | ^ Показывать ^ Параметр ^ | ||
- | | + | Название | | ||
- | <endTableBox| Таблица 2. Настройка отображения параметров для показа> | ||
- | |||
- | Для того, чтобы данные показывались в порядке кодов, необходимо в сортировку перенести параметр "Иерархический код для сортировки". | ||
- | <startTableBox> | ||
- | ^ Параметр ^ Направление ^ | ||
- | | Иерархический код для сортировки | По возрастанию | | ||
- | <endTableBox| Таблица 3. Настройка сортировки списка по параметру "Иерархический код для сортировки"> | ||
- | |||
- | ==== Сохранение фильтра ==== | ||
- | |||
- | Сохраняем фильтр с названием "Процессы без владельцев". Место сохранения -- "Пользовательские фильтры". | ||
- | |||
- | ===== Создание отчета ===== | ||
- | |||
- | Так как отчет будет создаваться для всех процессов и не зависит от объекта, от которого он будет вызван, то логичным будет создание статического отчета. Создаем статический отчет с названием "Процессы без субъектов" и переходим к его редактированию в **Мастере отчетов**. | ||
- | |||
- | ==== Добавление привязки ==== | ||
- | |||
- | Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет, и как будут выглядеть вставленные данные в отчете (см. [[/ru/manual/manual]] -> [[ru/manual/report/types_anchor]]). | ||
- | |||
- | Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Процессы без единого субъекта". | ||
- | |||
- | В окне **Настройка сложной привязки к данным** выполняем: | ||
- | * переименование привязки "Название" в "Процесс", | ||
- | * добавление привязки типа "Нумератор" и перенос её вверх в списке привязок. | ||
- | |||
- | |||
- | [{{ ru:creating_user_reports:examples:proc_without_owner:change_pic1.png?nolink | Рисунок 1. Вид окна **Настройка сложной привязки к данным** после всех необходимых настроек}}] | ||
- | |||
- | ==== Редактирование шаблона ==== | ||
- | |||
- | В шаблоне отчета вносим необходимые изменения в оформление, сохраняем и выполняем отчет. | ||
- | |||
- | |||
- | [{{ ru:creating_user_reports:examples:proc_without_owner:lang_pic2.png?nolink | Рисунок 2. Вид привязки "Процессы без единого субъекта" (тип "Фильтр") в шаблоне отчета}}] | ||
- | |||
- | ===== Результат ===== | ||
- | |||
- | Пример одного из возможных результатов выполнения отчета "Процессы без владельцев" приведен на Рис. 3. | ||
- | |||
- | [{{ ru:creating_user_reports:examples:proc_without_owner:lang_pic3.png?nolink | Рисунок 3. Пример выполнения отчета "Процессы без владельцев"}}] | ||
- | |||
- | ===== Рекомендация ===== | ||
- | |||
- | Для того, чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется создать объекты для тестирования: хотя бы один процесс, который известен заранее и попадет в искомую группу поиска, должен быть без субъектов с типом связи "является владельцем" (категория типа связи "Владелец"). | ||
- | |||
- | [<contextnavigator>] |