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

image

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

Аналитика

По умолчанию Ensemble предоставляет бизнес-метрики и страницу Workflow-портала «Задания потока работ» (Management Portal → Ensemble → Manage → Workflow → Workflow Tasks или SMP → Ensemble → Управление → Поток работ → Задания потока работ) для высокоуровневого управления задачами:

image

Разве это не выглядит как таблица фактов для куба DeepSee? Это действительно так, поэтому я решил построить куб DeepSee на основе класса EnsLib.Workflow.TaskResponse:

image

В этом кубе я храню информацию о каждой задаче, а именно:
— Пользователь, который выполнил задачу
— Роль задачи
— Когда она была создан и завершена
— Приоритет
— Текущий статус
— Завершена ли задача
— Время, затраченное на выполнение задачи

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

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 в браузере.

image

Также доступны детализация данных и сквозная детализация:

image

Вы можете выполнять задачи потока работ на тестовом сервере с помощью приложения HelpDesk и видеть изменения на дашборде (куб строится один раз в час).

Логин: dev / Пароль: 123
Вот как выглядит Ensemble Workflow при использовании EnsembleWorkflowUI:

image

image

Заключение

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

Ссылки

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *