Различия

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

Ссылка на это сравнение

ru:creating_user_reports:examples:proc_without_subjects [2019/02/18 14:20]
ru:creating_user_reports:examples:proc_without_subjects [2019/02/18 15:33] (текущий)
Строка 1: Строка 1:
 +====== Процессы без субъектов ======
 +
 +Рассмотрим пример создания отчета "Процессы без субъектов". 
 + 
 +Для понимания этой статьи требуется знание того:
 +  * как создавать, настраивать и сохранять фильтры (см. [[/ru/manual/manual]] -> [[/ru/manual/filter]]);
 +  * как создавать динамические и статические отчеты, добавлять в них привязки (см. [[/ru/manual/manual]] -> [[/ru/manual/report]]);
 +  * как находить параметры справочников и связи между справочниками в **Объектной модели** (см. [[ru/creating_user_reports/report/object_model]], [[/ru/manual/manual]] -> [[/ru/manual/report/object_model]]).
 +
 +Информация, изложенная ниже, не дает пошаговых инструкций по нажатию кнопок в Business Studio, а дает логику размышлений по решению поставленной задачи с указанием необходимых параметров настройки фильтров и отчетов.
 +
 +===== Постановка задачи =====
 +
 +Необходимо создать отчет формата MS Word. В отчете должен выводиться список процессов, за которые никто не отвечает. Т.е. процессы, у которых на вкладке **Субъекты** (**Окно свойств** процесса -> вкладка **Основные**) нет связей с субъектами.
 +
 +===== Идея решения задачи =====
 +
 +По заданными условиям нельзя получить информацию напрямую из одного справочника. Для решения задачи необходимо выбирать данные из имеющихся справочников. Задачи выборки данных решаются через использование в отчетах хранимых фильтров. Сначала необходимо создать фильтр, а потом использовать его при создании привязки в отчете.
 +
 +Ключевым вопросом при решении задачи является создание правильных условий фильтра.
 +
 +===== Создание фильтра =====
 +
 +==== Класс для построения фильтра ====
 +
 +В **Окне свойств** процесса можно увидеть наличие или отсутствия связи с субъектом на вкладке **Субъекты**. Эта вкладка представляет данные по параметру типа "Список" в справочнике "Процессы". Поэтому задавать условия выборки процессов необходимо в фильтре по справочнику "Процессы".
 +
 +== Внимание! ==
 +В справочнике "Процессы" нехранимый параметр типа список "Субъекты" ссылается на справочник "Связи субъекта с процессом" (**Главное меню** -> **Отчеты** -> **Объектная модель** -> "Классы" -> "Общие связи" -> "БизнесМодель.СвязиПроцессов"). Именно в этом справочнике хранится информация о всех связях субъектов с процессами. Но этот справочник показывает лишь то, какие связи есть, и не фиксирует отсутствующие связи. Поэтому использовать данный справочник для решения поставленной задачи не представляется возможным.
 +==== ====
 +
 +==== Вкладка "Условия" ====
 +
 +При детальном рассмотрении задачи, можно сформулировать 2 подзадачи по формированию условий фильтра:
 +
 +  - Условия, отбирающие процессы без связей с субъектами: не должно быть никаких строк с субъектами на вкладке **Субъекты**.
 +  - Технические условия, которые отберут только принятые в рабочей практике процессы: процессы с типами, отличными от используемых в работе типов процессов (папка, внешняя ссылка, служебный).
 +
 +Согласно указанной ранее логике в фильтре выставляются условия, приведенные ниже.
 +<startTableBox>
 +^  Параметр  ^  Тип  ^  Оператор  ^  Значение  ^  Не  ^  Потомки  ^
 +| Субъекты | Подфильтр |  =  |   |  +  |   |
 +|  - Субъект | Значение |  =  |   |  +  |   |
 +| Тип процесса | Список значений |  =  | Папка, Внешняя ссылка, Служебный |  +  |   |
 +<endTableBox| Таблица 1. Условия фильтра>
 +
 +**Пояснение по параметру "Субъекты".** В параметре типа список "Субъекты" необходимо указать, что субъектов в нем нет. Для  этого:
 +  - Указывается, что у параметра "Субъекты" есть непустое значение по объектному параметру "Субъект". Т.е. указываем на то, что какая-либо связь с субъектом есть.
 +  - На уровне параметра "Субъекты" делается отрицание заданного выше условия. Т.е. отрицание того, что у процесса есть связь с субъектом.
 +
 +==== Вкладка "Показ" ====
 +
 +На показ будут выводиться названия процессов.
 +<startTableBox>
 +^  Показывать  ^  Параметр  ^
 +|  +  | Название |
 +<endTableBox| Таблица 2. Настройка отображения параметров для показа>
 +
 +Для того чтобы данные были отсортированы по коду процесса, необходимо в добавить сортировку по параметру "Иерархический код для сортировки".
 +<startTableBox>
 +^  Параметр  ^  Направление  ^
 +| Иерархический код для сортировки | По возрастанию |
 +<endTableBox| Таблица 3. Настройка сортировки списка по параметру "Иерархический код для сортировки">
 +
 +==== Сохранение фильтра ====
 +
 +Сохраняем фильтр с названием "Процессы без единого субъекта". Место сохранения - папка "Пользовательские фильтры".
 +
 +===== Создание отчета =====
 +
 +Так как отчет будет выводиться для всех процессов и не зависит от объекта, от которого он будет вызван, то логичным будет создание статического отчета. Создаем статический отчет с названием "Процессы без субъектов" и переходим к его редактированию в **Мастере отчетов**.
 +
 +==== Добавление привязки ====
 +
 +Тип привязки в отчете определяет то, откуда именно будут браться данные (источник данных) для вставки в выполняемый отчет, и как будут выглядеть вставленные данные в отчете (см. [[/ru/manual/manual]] -> [[ru/manual/report/types_anchor]]).
 +
 +Исходя из того, что наши данные получаются из фильтра и по условиям задачи должны выглядеть как список (таблица), определяем тип привязки -- "Фильтр". В качестве конкретного фильтра выбирается ранее созданный и сохраненный фильтр "Процессы без единого субъекта".
 +
 +В окне **Настройка сложной привязки к данным** выполняем:
 +  * переименование привязки к параметру "Название" в привязку "Процесс";
 +  * добавление привязки типа "Нумератор" и перенос привязки типа "Нумератор" на первое место в списке привязок.
 +
 +[{{ ru:creating_user_reports:examples:proc_without_subjects:pic1.png?nolink | Рисунок 1. Вид окна **Настройка сложной привязки к данным** после всех необходимых настроек}}]
 +
 +==== Редактирование шаблона ====
 +
 +В шаблоне отчета вносим необходимые изменения в оформление, сохраняем и выполняем отчет.
 +
 +[{{ ru:creating_user_reports:examples:proc_without_subjects:pic2.png?nolink | Рисунок 2. Вид привязки "Процессы без единого субъекта" (тип "Фильтр") в шаблоне отчета}}]
 +
 +===== Результат =====
 +
 +Пример одного из возможных результатов выполнения отчета "Процессы без субъектов" приведен на Рис. 3.
 +
 +[{{ ru:creating_user_reports:examples:proc_without_subjects:pic3.png?nolink | Рисунок 3. Пример выполнения отчета "Процессы без субъектов"}}]
 +
 +===== Рекомендация =====
 +
 +Для того чтобы быть уверенным в правильности всех выполненных шагов, рекомендуется создать объекты для тестирования: хотя бы один процесс должен быть без связей с субъектами.
 +
 +
 +
 +
 +
 +
 +[<contextnavigator>]
 +
  
Актуальные новости, публикации и практики для бизнес-архитекторов и аналитиков
Driven by DokuWiki