Тренинг по InterSystems Ensemble

advertisement
Тренинг по InterSystems Ensemble
Содержание
Настройка примера Demo.Workflow.Production .....................................................................1
Описание тестового примера ...................................................................................................1
Создание сообщений .................................................................................................................2
Production....................................................................................................................................2
Конфигурирование ролей и пользователей ............................................................................2
Бизнес-процесс...........................................................................................................................2
Настройка примера Demo.Workflow.Production
1. Создайте в Портале управления системой пользователей D1 и T1, которые входят в
роль %All
2. Откройте production Demo.Workflow.Production в Ensemble Management Portal
(Ensemble  Портал управления системой  Портал управления Ensemble 
Область EnsDemo  Productions  Configure) и запустите
Demo.Workflow.Production.
3. В workflow портале Ensemble создайте пользоватей D1 и T1 (Портал управления
Ensemble Workflow портал  Workflow users) и добавьте их в роли DemoDevelopment и Demo-Testing соответственно. Пользователи должны иметь те же
имена, что и пользователи, созданные в пункте 1.
4. Оттестируйте бизнес-процесс Demo.Workflow.HelpDesk. Из портала управления
Ensemble (Management Portal  Testing Service) Вы можете послать сообщение в
бизнес-процесс Demo.Workflow.HelpDesk.
5. Зайдите в Портал управления Ensemble под пользователем D1 и посмотрите
появившуюся задачу (Портал управления Ensemble Workflow портал 
Workflow users  My Tasks).
6. Возьмите задачу на выполнение (Review) и выполните её. Задача перейдет к
сотрудникам, относящимся к роли «Demo-Testing».
7. Зайдите в Портал управления Ensemble под пользователем T1 и посмотрите
появившуюся задачу (Портал управления Ensemble Workflow портал 
Workflow users  My Tasks).
8. Посмотрите историю выполнения задач на диаграмме Visual Trace (Портал
управления Ensemble  Message Browser  Trace).
Описание тестового примера
В рамках упражнения будет автоматизироваться процесс обработки заявки на ремонт
оборудования в сервисном центре.
В сервисный центр приходит заявка с именем клиента, названием устройства и описанием
проблемы.
Задача по обработке заявки назначается сотрудникам, относящимся к роли «Сервисный
инженер» («Service Engineer»). Сервисный инженер рассматривает заявку и решает,
подлежит устройство замене или починке.
Затем сотрудникам роли менеджер («Manager») ставится задача уведомить клиента о том,
какие действия будут осуществляться с их устройством.
1
Создание сообщений
Создайте класс сообщений для получения информации о заявке с помощью мастера
создания сообщений (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». Последовательность действий
при создании бизнес-процесса следующая:
2
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). Если Вы сохраните бизнес3
процесс и перейдете к 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).
4
Download