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

в 4:27, , рубрики: deepsee, intersystems, olap, olap-кубы, Блог компании InterSystems

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

Аналитика

По умолчанию Ensemble предоставляет бизнес-метрики и страницу Workflow-портала «Задания потока работ» (Management Portal → Ensemble → Manage → Workflow → Workflow Tasks или SMP → Ensemble → Управление → Поток работ → Задания потока работ) для высокоуровневого управления задачами:
Задания потока работ
Разве это не выглядит как таблица фактов для куба DeepSee? Это действительно так, поэтому я решил построить куб DeepSee на основе класса EnsLib.Workflow.TaskResponse:
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

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

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

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

Заключение

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

Ссылки

Автор: eduard93

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js