Управление потоками работ в InterSystems Ensemble Федоров Вадим «Школа Инноваций InterSystems 2007» План Определение управления потоками работ (workflow) Возможности Ensemble workflow Архитектура Ensemble workflow Расширение Ensemble workflow План Определение управления потоками работ (workflow) Возможности Ensemble workflow Архитектура Ensemble workflow Расширение Ensemble workflow Управление потоками работ в Ensemble Потоки работ (Workflow) - это автоматизация бизнес процесса, полностью или частично, в рамках которой документы, информация или задачи передаются от одного участника к другому, в соответствии с набором процедурных правил. Workflow Management Coalition (www.WfMC.org) Основные элементы workflow • Задача workflow – «Фрагмент» работы • Поток работ – Процедурные правила выполнения задач • Пользователь workflow – Человек, выполняющий задачи в системе управления потоками работ • Роль workflow – Группа пользователей, которые выполняют определенные типы задач. Task Approve План Определение управления потоками работ (workflow) Возможности Ensemble workflow Архитектура Ensemble workflow Расширение Ensemble workflow Подсистема управления потоками работ Ensemble • Подсистема управления потоками работ в Ensemble позволяет: – Автоматизировать управление потоками работ – Гибко настраивать распределение работ – Работать с подсистемой управления потоками работ через специализированный Workflow-портал – Автоматически интегрироваться с хранилищем Ensemble, подсистемой мониторинга бизнес активности Ensemble, утилитами управления и мониторинга Ensemble – Организовать взаимодействие подсистемы управления потоками работ с интеграционными бизнес процессами Ensemble – Легко настраивать и расширять функционал подсистемы Workflow Управление потоками работ в Ensemble План Определение управления потоками работ (workflow) Возможности Ensemble workflow Архитектура Ensemble workflow Расширение Ensemble workflow Реализация системы Workflow • Создайте бизнес-процесс • Сконфигурировать задачи как специальные сообщения Ensemble • Сконфигурируйте роли как бизнес-операции • Создайте бизнес-метрики и инструментальные панели для мониторинга бизнес-активности • Сконфигурируйте роли и пользователей Workflow • Оттестируйте Workflow Создание бизнес-процесса Workflow • • • • • Определите последовательность обращений к подсистеме workflow Каждый вызов – задача для пользователей Определите стратегию распределения задач среди пользователей Определите роли, которые будут выполнять задачи Создайте стандартные сообщения Ensemble для вызова бизнес процесса подсистемы Workflow • Создайте бизнес процесс • Для вызова каждой задачи добавьте элемент «Call» – «Call» будет асинхронно вызывать workflow бизнес операцию – Каждый элемент «Call» соответствует роли workflow – В каждом элементе «Call» нужно прописать корректный task request object – Для элементов «Call» нужно добавить элементы «Sync» Создание бизнес процесса Workflow Property Value Async true Target Sales Request EnsLib.Workflow.TaskRequest Response EnsLib.Workflow.TaskResponse Property Value Calls ‘Submit for review’ Timeout Пример бизнес процесса Workflow Создание задач • Для создания задачи в Ensemble Workflow и получения ответа служат специальные классы сообщений: EnsLib.Workflow.TaskRequest и EnsLib.Workflow.TaskResponse • Можно использовать стандартные классы, можно создавать свои классы – наследники EnsLib.Workflow.TaskRequest и EnsLib.Workflow.TaskResponse EnsLib.Workflow.TaskRequest EnsLib.Workflow.TaskResponse Распределение задач • Когда Workflow Engine получает задачу для пользователей (сообщение типа EnsLib.Workflow.TaskRequest), автоматически создается сообщение типа EnsLib.Workflow.TaskResponse и срабатывает метод %OnNewTask этого сообщения • При этом, по умолчанию, используются следующие стратегии распределения задач (в порядке применения): – По имени пользователя (Если передается TaskRequest.%UserName) – По должности пользователей роли (Если передается TaskRequest.%Title) – Всем пользователям роли Настройка распределения задач • • Для реализации собственной стратегии распределения задач унаследуйте класс от EnsLib.Workflow.TaskResponse и переопределите метод OnNewTask Укажите в EnsLib.Workflow.TaskRequest, какой класс ответа использовать. – Присвойте свойству %TaskHandler класса EnsLib.Workflow.TaskRequest значение – новый класс, наследник EnsLib.Workflow.TaskResponse ИЛИ – Создайте наследник класса EnsLib.Workflow.TaskRequest и укажите в параметре RESPONSECLASSNAME класс-наследник EnsLib.Workflow.TaskResponse. Custo mer Disco unt Bill WF Engine Создание ролей Workflow • Для создания ролей Workflow служат Workflow бизнес операции • Для каждой роли – Добавить в production бизнес операцию EnsLib.Workflow.Operation – Проверить, что она называется также как в бизнес процессе – Сконфигурировать FailureTimeout и RetryInterval – Включить или отключить AutoCreate Role Создание ролей Workflow Создание пользователей Workflow • Пользователей Workflow необходимо заводить в Workflow-портале и портале управления Caché Workflow и мониторинг бизнесактивности • Ensemble предоставляет набор методов, которые могут быть использованы в бизнес-метрике для получения статистики по работе пользователей • Примеры методов – Set ..Active=##class(EnsLib.Workflow.Engine).BamActiveTasks(Role) – Set ..Done=##class(EnsLib.Workflow.Engine).BamCompletedTasks(Role) • Статистику Workflow легко отобразить на инструментальных панелях: Портал Workflow • Для управления потоками работ, определения пользователей и ролей, администрирования workflow и работы пользователей с задачами в составе Ensemble поставляется портал Workflow • При разработке портала использована технология Caché Server Pages План Определение управления потоками работ (workflow) Возможности Ensemble workflow Архитектура Ensemble workflow Расширение Ensemble workflow Расширение функционала Workflow • Разработка собственных классов Workflow – наследников стандартных классов • Доработка стандартного пользовательского интерфейса • Разработка собственного пользовательского интерфейса Workflow Расширение функционала Workflow • Разработка собственных классов Workflow – наследников стандартных классов: – Добавление дополнительных свойств • Например, информации о документах, которые передаются от пользователя к пользователю – Разработка специализированных стратегий распределение задач между пользователями Расширение функционала Workflow • Доработка стандартного пользовательского интерфейса – Использование свойств задач (EnsLib.Workflow.TaskRequest) для создания и отображения новых CSP-страниц – Усовершенствование стандартного портала Workflow Расширение функционала Workflow • Свойства класса EnsLib.Workflow.TaskRequest позволяют сгенерировать страницу для работы пользователя с задачей: – Actions – FormFields, FormValues • При необходимости можно создать свою страницу для редактирования задачи и прописать её в свойстве FormTemplate класса EnsLib.Workflow.TaskRequest Расширение функционала Workflow • Доработка стандартного пользовательского интерфейса – Усовершенствование стандартного портала Workflow • Изменение страниц, стилей • Добавление новых страниц и т.д. Расширение функционала Workflow • Разработка собственного пользовательского интерфейса Workflow на CSP, .Net, Java и любых других технологиях разработки приложений – Классы Workflow (EnsLib.Workflow.*) предоставляют удобные объектные и реляционные интерфейсы для работы с Ensemble Workflow. • Примеры методов: – [EnsLib.Workflow.Engine].AssignTask(pTask, pUser, …) – [EnsLib.Workflow.Engine].CompleteTask(pTask, pAction) • Примеры запросов классов: – ListUsersForRole() – Tasklist() Управление потоками работ в Ensemble • Простая и эффективная автоматизация потоков работ • Использование при автоматизации потоков работ возможностей InterSystems Ensemble • Возможность расширения функционала подсистемы управления потоками работ InterSystems Ensemble Спасибо за внимание! Вопросы? Вадим Федоров (vadim.fedorov@intersystems.ru) «Школа Инноваций InterSystems 2007»