Тренинг по 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