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



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



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


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




Заключение


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


Ссылки


Комментарии (0)