- PVSM.RU - https://www.pvsm.ru -

Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee

DeepSeeWeb
При автоматизации бизнес-процессов предприятия часть задач всё равно должен выполнять человек: это согласование различной информации, обогащение данных из аналоговых источников и многое другое. В интеграционной шине InterSystems Ensemble для решения данного класса задач есть подсистема Ensemble Workflow [1], позволяющая людям участвовать в автоматизированных бизнес-процессах. В результате работы подсистемы Ensemble Workflow накапливается большой объём информации о том кто и сколько выполнял поставленные задачи. В этой статье с использованием BI-технологии InterSystems DeepSee, про которую я недавно уже писал на Хабре [2] мы проанализируем и визуализируем эту информацию.

Аналитика

По умолчанию Ensemble предоставляет бизнес-метрики [3] и страницу Workflow-портала «Задания потока работ» (Management Portal → Ensemble → Manage → Workflow → Workflow Tasks или SMP → Ensemble → Управление → Поток работ → Задания потока работ) для высокоуровневого управления задачами:
Задания потока работ
Разве это не выглядит как таблица фактов для куба DeepSee? Это действительно так, поэтому я решил построить куб DeepSee [4] на основе класса EnsLib.Workflow.TaskResponse [5]:
Cube
В этом кубе я храню информацию о каждой задаче, а именно:

  • Пользователь, который выполнил задачу
  • Роль задачи
  • Когда она была создан и завершена
  • Приоритет
  • Текущий статус
  • Завершена ли задача
  • Время, затраченное на выполнение задачи

Большая часть элементов куба создана простым перетягиванием свойства класса на область куба, но вот наиболее интересные из них:
CompletionTime — время выполнения задачи в минутах. Вычисляется следующим образом: $System.SQL.DATEDIFF("minute",%source.%TaskStatus.TimeCreated,%source.%TaskStatus.TimeCompleted)
SQL-листинг определяется так ($$$SOURCE — это таблица фактов, а $$$RESTRICT — это фильтр применяемый DeepSee):

SELECT
  TaskStatus_RoleName           AS "Role",
  TaskStatus_IsComplete         AS IsCompleted,
  %Status                       AS "Status",
  TaskStatus_Source             AS BusinessProcess,
  TaskStatus_AssignedTo         AS "User",
  %Subject                      AS "Subject",
  %Message                      AS "Message",
  TaskStatus_TimeCreated        AS "TimeCreated",
  TaskStatus_TimeCompleted      AS "TimeCompleted",
  DATEDIFF('minute', 
           TaskStatus_TimeCreated, 
           TaskStatus_TimeCompleted) AS "CompletionTime"
FROM $$$SOURCE 
WHERE $$$RESTRICT

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

  • Среднее время, затрачиваемое пользователем и ролью для выполнения задачи
  • Количество задач, которые в настоящее время не работают или не завершены
  • Количество задач, выполненных за период

Вот демо [6] дашборда (Логин: dev / Пароль: 123). Он отображается с помощью DeepSeeWeb [7] (веб-приложение на AngularJS и Highcharts для визуализации дашбордов DeepSee в браузере.
Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee - 4
Также доступны детализация данных и сквозная детализация:
Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee - 5
Вы можете выполнять задачи потока работ на тестовом сервере [8] с помощью приложения HelpDesk и видеть изменения на дашборде (куб строится один раз в час).
Логин: dev / Пароль: 123
Вот как выглядит Ensemble Workflow при использовании EnsembleWorkflowUI [1]:
Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee - 6
Визуализация данных Ensemble Workflow с помощью InterSystems DeepSee - 7

Заключение

Данные Ensemble Workflow можно визуализировать и анализировать с помощью BI-технологии InterSystems DeepSee. Это базовый проект OLAP решения, и его можно легко расширить по мере необходимости.

Ссылки

Автор: eduard93

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/intersystems/263492

Ссылки в тексте:

[1] Ensemble Workflow: https://habrahabr.ru/company/intersystems/blog/251611/

[2] уже писал на Хабре: https://habrahabr.ru/company/intersystems/blog/335586/

[3] бизнес-метрики: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGWF_metrics

[4] куб DeepSee: https://github.com/intersystems-ru/EnsembleWorkflowBI/blob/master/Workflow/Cube.cls.xml

[5] EnsLib.Workflow.TaskResponse: http://docs.intersystems.com/latest/csp/documatic/%25CSP.Documatic.cls?PAGE=CLASS&LIBRARY=ENSLIB&CLASSNAME=EnsLib.Workflow.TaskResponse

[6] Вот демо: http://37.139.6.217:57772/dsw/index.html#!/d/Workflow/Workflow.dashboard?ns=ENSDEMO

[7] DeepSeeWeb: https://github.com/intersystems-ru/DeepSeeWeb

[8] на тестовом сервере: http://37.139.6.217:57772/ewui/index.csp#/tasks

[9] GitHub: https://github.com/intersystems-ru/EnsembleWorkflowBI

[10] Документация: http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGWF_overview

[11] Статья про Ensemble Workflow на Community: https://community.intersystems.com/post/ui-ensemble-workflow-angular

[12] Источник: https://habrahabr.ru/post/337262/