Тренинг по InterSystems Ensemble

Содержание

Настройка примера Demo. Workflow. Production. 1

Описание тестового примера. 1

Создание сообщений. 2

Production. 2

Конфигурирование ролей и пользователей. 2

Бизнес-процесс. 2

Настройка примера Demo. Workflow. Production

Создайте в Портале управления системой пользователей D1 и T1, которые входят в роль %All Откройте production Demo. Workflow. Production в Ensemble Management Portal (Ensemble à Портал управления системой à Портал управления Ensemble à Область EnsDemo à Productions à Configure) и запустите Demo. Workflow. Production. В workflow портале Ensemble создайте пользоватей D1 и T1 (Портал управления Ensemble àWorkflow портал à Workflow users) и добавьте их в роли Demo-Development и Demo-Testing соответственно. Пользователи должны иметь те же имена, что и пользователи, созданные в пункте 1. Оттестируйте бизнес-процесс Demo. Workflow. HelpDesk. Из портала управления Ensemble (Management Portal à Testing Service) Вы можете послать сообщение в бизнес-процесс Demo. Workflow. HelpDesk. Зайдите в Портал управления Ensemble под пользователем D1 и посмотрите появившуюся задачу (Портал управления Ensemble àWorkflow портал à Workflow users à My Tasks). Возьмите задачу на выполнение (Review) и выполните её. Задача перейдет к сотрудникам, относящимся к роли «Demo-Testing». Зайдите в Портал управления Ensemble под пользователем T1 и посмотрите появившуюся задачу (Портал управления Ensemble àWorkflow портал à Workflow users à My Tasks). Посмотрите историю выполнения задач на диаграмме Visual Trace (Портал управления Ensemble à Message Browser à Trace).

Описание тестового примера

В рамках упражнения будет автоматизироваться процесс обработки заявки на ремонт оборудования в сервисном центре.

В сервисный центр приходит заявка с именем клиента, названием устройства и описанием проблемы.

Задача по обработке заявки назначается сотрудникам, относящимся к роли «Сервисный инженер» («Service Engineer»). Сервисный инженер рассматривает заявку и решает, подлежит устройство замене или починке.

Затем сотрудникам роли менеджер («Manager») ставится задача уведомить клиента о том, какие действия будут осуществляться с их устройством.

Создание сообщений

Создайте класс сообщений для получения информации о заявке с помощью мастера создания сообщений (Studio à Файл à Создать à Сообщения à Сообщение).

Class School. Msg. ProblemReport Extends Ens. Request [ ClassType = persistent, ProcedureBlock ]
{
Property Device As %String;
Property CustomerName As %String;
Property Description As %String;
}

Скомпилируйте сообщение.

Production

Создайте production School. Production (Studio à Файл à Создать à Продукция à Продукция). При создании разрешите тестирование.

Скомпилируйте production School. Production.

Откройте production School. Production в Ensemble Management Portal (Ensemble à Портал управления системой à Портал управления Ensemble à Productions à Configure).

Конфигурирование ролей и пользователей

Добавьте бизнес-операцию для обращения к сервисному инженеру в production (Ensemble Management Portal à Productions à Configure à Add Operation à Other). Задайте параметры Name (Service Engineer) и OperationClass (EnsLib. Workflow. Operation). Включите параметр AutoCreateRole бизнес-операции Service Engineer.

Добавьте бизнес-операцию для обращения к менеджеру в production (Ensemble Management Portal à Productions à Configure à Add Operation à Other). Задайте параметры Name (Manager) и OperationClass (EnsLib. Workflow. Operation). Включите параметр AutoCreateRole бизнес-операции Maneger.

Запустите production. После запуска в Ensemble Management Portal на странице Workflow Roles (Ensemble Management Portal à Workflow à Workflow Roles) появятся роли Service Engineer и Manager.

В Портале управления системой (Портал управления системой à Управление безопасностью à Пользователи) создайте пользователей Manager1 и Engineer1. Добавьте пользователям роль %All. Сохраните пользователей.

Создайте пользователей с тем же именем Manager1 и Engineer в подсистеме управления потоками работ (Ensemble Management Portal à Workflow à Workflow Users).

Добавьте в роль Manager и Service Engineer соответствующих пользователей (Ensemble Management Portal à Workflow à Workflow Roles à Edit Users).

Бизнес-процесс

Создайте бизнес-процесс School. ServiceProcess (Studio à Файл à Создать à Продукция à Бизнес процесс). При создании бизнес-процесса выберите опцию «Использование Бизнес процесс редактора», то есть Вы будете создавать бизнес-процесс с помощью диаграммы на языке BPL.

На диаграмме BPL Вы увидите элементы «start» и «end». Последовательность действий при создании бизнес-процесса следующая:

НЕ нашли? Не то? Что вы ищете?

1.  Откройте в окне «Инспектор» в Studio параметры бизнес-процесса. Для этого последовательно нажмите левую и правую кнопку мышки на любом пустом участке BPL-диаграммы. Заполните параметры Name и Annotation бизнес-процесса. Переопределите параметр Request бизнес-процесса. Выберите сообщение, которое поступит в бизнес-процесс, Lab School. Msg. ProblemReport.

2.  Добавьте элемент «trace» в бизнес-процесс, соедините его с элементами «start» и «end». В окне «Инспектор» в Studio переименуйте элемент «trace» (параметр «Name») и заполните параметр «Value» (например, "Начинаем обработку клиента "_request. CustomerName).Добавить элемент можно через меню в Studio (Studio à BPL) или с помощью меню в BPL-диаграмме, которое вызывается нажатием правой кнопки мышки. Для трассировки бизнес-процесса можно будет добавлять дополнительные элементы «trace» в бизнес-процесс.

3.  Сохраните бизнес-процесс, скомпилируйте бизнес-процесс. Добавьте его в production (Ensemble Management Portal à Productions à Configure à Add Process à Other), включите параметр «Log Trace Events». Протестируйте бизнес-процесс.

4.  Откройте параметры бизнес-процесса. Создайте переменную Action типа %String в контексте бизнес-процесса (Context).

5.  Добавьте элемент «call» в бизнес-процесс для вызова бизнес-операции Service Engineer. Укажите параметры вызываемой из бизнес-процесса бизнес-операции: Name (Спросить инженера), Target (Service Engineer), сообщение Request (EnsLib. Workflow. TaskRequest), которое уйдет в вызываемый элемент, и сообщение Response (EnsLib. Workflow. TaskResponse), которое вернется в бизнес-процесс. Для сообщения Request присвойте значения свойствам: «callrequest.%Actions» ("Обмен, Ремонт") и «callrequest.%Subject» ("Проверка устройства "_request. Device). Для сообщения Response присвойте значения переменным «context. Action» (callresponse. Action). Если Вы сохраните бизнес-процесс и перейдете к XML-представлению бизнес-процесса (Studio à Вид à Просмотр других), элемент «call» должен выглядеть следующим образом:

<call name='Спросить инженера' target='Service Engineer' async='1' xpos='550' ypos='300' >
<request type='EnsLib. Workflow. TaskRequest' >
<assign property='callrequest.%Subject' value='"Проверка устройства "_request. Device' action='set' />
<assign property='callrequest.%Actions' value='"Ремонт, Обмен"' action='set' />
</request>
<response type='EnsLib. Workflow. TaskResponse' >
<assign property='context. Action' value='callresponse.%Action' action='set' />
</response>
</call>

6.  Добавьте элемент «sync». Элемент «sync» позволяет дождаться ответа от одного или нескольких асинхронных вызовов. В данном случае необходимо присвоить значение «Спросить инженера» (имя элемента «call») параметру «Calls».

7.  Добавьте элемент «call» в бизнес-процесс для вызова бизнес-операции Service Engineer. Укажите параметры вызываемой из бизнес-процесса бизнес-операции: Name (Уведомить клиента), Target (Manager), сообщение Request (EnsLib. Workflow. TaskRequest), которое уйдет в вызываемый элемент, и сообщение Response (EnsLib. Workflow. TaskResponse), которое вернется в бизнес-процесс. Для сообщения Request присвойте значения свойствам: «callrequest.%Actions» ("Уведомить") и «callrequest.%Subject» ("Уведомить клиента "_request. CustomerName_". "_context. Action). Если Вы сохраните бизнес-процесс и перейдете к XML-представлению бизнес-процесса (Studio à Вид à Просмотр других), элемент «call» должен выглядеть следующим образом:

<call name='Уведомить клиента' target='Manager' async='1' xpos='550' ypos='500' >
<request type='EnsLib. Workflow. TaskRequest' >
<assign property='callrequest.%Subject' value='"Уведомить клиента "_request. CustomerName_". "_context. Action' action='set' />
<assign property='callrequest.%Actions' value='"Уведомить"' action='set' />
</request>
<response type='EnsLib. Workflow. TaskResponse' />
</call>

8.  Добавьте элемент «sync». Элемент «sync» позволяет дождаться ответа от одного или нескольких асинхронных вызовов. В данном случае необходимо присвоить значение «Уведомить клиента» (имя элемента «call») параметру «Calls».

В результате Вы должны получить следующий бизнес-процесс (с точностью до именования и положения элементов):

Сохраните и скомпилируйте бизнес-процесс.

Оттестируйте бизнес-процесс. Из портала управления Ensemble (Management Portal à Testing Service) Вы можете послать сообщение в бизнес-процесс School. ServiceProcess.

На страничке Visual Trace портала управления Ensemble Вы увидите, что запрос отправлен в подсистему управления потоками работ.

Зайдите в Ensemble Workflow портал (Ensemble Management Portal à Ensemble Workflow à  Workflow Tasks) под созданным Вами пользователем Engineer1 и рассмотрите задачу (Review).

После выполнения задачи инженером, задача перейдет к менеджеру.

Зайдите в Ensemble Workflow портал (Ensemble Management Portal à Ensemble Workflow à  Workflow Tasks) под созданным Вами пользователем Manager1 и рассмотрите задачу (Review).