Интеграция IBM FileNet P8 BPM с IBM WebSphere ILOG JRules при помощи Web-сервисов

Управление бизнес-правилами вместе с бизнес-процессами

Конкурентная природа современного бизнеса требует, чтобы высокой динамичности бизнес-процессов. Компания должна уметь принимать и адаптировать быстро меняющиеся бизнес-правила, ассоциированные с бизнес-процессами. Система управления бизнес-правилами (business rules management system – BRMS) дает возможность извлекать бизнес-правила и решения из бизнес-процессов и управлять ими независимо, что позволяет рационализировать бизнес-процессы. В данной статье рассказывается, как интегрировать IBM® WebSphere® ILOG® JRules, лидирующую в отрасли систему BRMS, с IBM FileNet® P8 BPM - комплексной системой управления бизнес-процессами (business process management system – BPMS).

Бхаратхи Андженея, штатный инженер-программист, WSO2 Inc

Бхаратхи Андженея (Bharathi Anjeneya) - фотографияБхаратхи Андженея (Bharathi Anjeneya) работает штатным инженером-программистом в IBM India Software Lab в группе Enterprise Content Management. Имеет десятилетний опыт разработки программного обеспечения. Работала над различными ECM-продуктами, включая IBM Document Manager, Content Manager OnDemand, IBM FileNet Report Manager, FileNet Enterprise Manager и FileNet BPM.



14.10.2011

Введение

При проектировании современных программных систем особое значение придается использованию систем управления бизнес-правилами (BRMS) для управления сложной бизнес-логикой и логикой принятия решений. Они позволяют лучше управлять требованиями к быстро меняющимся бизнес-правилам. Вы получаете возможность улучшить оперативность бизнес-процессов, предоставив средства для улучшения процесса принятия решений и общей поддержки программных систем. Система управления бизнес-процессами (BPMS) может напрямую использовать функции BRMS-решений. Ссылки на дополнительную информацию об ориентированных на бизнес комбинированных предложениях в области BPM и BRMS приведены в разделе Ресурсы.

В данной статье рассматриваются действия, необходимые для интеграции двух лидирующих в отрасли программных систем:

IBM FileNet P8 Business Process Manager
Управляет потоком работ между людьми и системами для процессов, работающих с содержимым и часто требующих вмешательства человека.
IBM WebSphere ILOG JRules
Помогает организациям динамично менять бизнес-решения, позволяя модифицировать бизнес-правила в режиме реального времени.

Возможны несколько способов интеграции этих двух продуктов:

  • Интегрированная среда взаимодействия правил.
  • Интеграция посредством Java™-компонентов
  • Web-сервисы.

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


Предварительные требования

Для работы с данной статьей требуется следующая минимальная конфигурация:

  • IBM FileNet P8 Platform Version 4.5 или выше с установленными Content Engine, Process Engine и Application Engine.
  • IBM WebSphere ILOG JRules Version 7.0 или выше с установленными Rule Studio и Rule Execution Server.

Также будут полезны:

  • Опыт работы с Eclipse.
  • Базовый уровень знаний о IBM FileNet P8 Process Designer.

В данной статье IBM FileNet P8 Version 4.5.1 интегрируется с IBM WebSphere ILOG JRules Version 7.0.2.


Анализ варианта использования "Медицинское страхование"

Первый пример сценария описывает процесс страхования, использующий BRMS для сквозной обработки. BRMS обрабатывает рутинные задачи, включая оценку состояния здоровья, проверку BMI (индекс массы тела) и вычисление страховой премии для клиента. Сочетание Filenet и BRMS обеспечивает оркестровку процессов и автоматизацию принятия решений, что позволяет автоматизировать регистрацию заявок с минимальным уровнем риска. Более сложные заявки обрабатываются сотрудниками страховой компании с использованием задач пользователя в Filenet.

В реальных сценариях процессы страхования имеют тенденцию к усложнению, но в данной статье поток процессов в FileNet BPM упрощен, чтобы сконцентрировать внимание на технических аспектах интеграции.

Поток работ процесса страхования в примере сценария состоит из действия системы, активизирующего сервис HTDS (hosted transparent decision service) для сквозной обработки. Сервис HTDS для автоматизированного страхования реализован средствами JRules. Имеются две задачи пользователя, управление которым передается при выполнении определенных условий. Если HTDS отклоняет запрос (возвращает значение False), поток работ направляется на рассмотрение страховщику-человеку. Уведомление по электронной почте может выдаваться автоматически, но для упрощения реализации оно спроектировано как задача пользователя (human task). Этот поток работ представлен на рисунке 1.

Рисунок 1. Схема варианта использования "Медицинское страхование"
Рисунок 1. Схема варианта использования

Проектирование бизнес-правил

WebSphere ILOG JRules Rule Studio – это плагин для Eclipse, использующийся для разработки правил. Для создания нового правила выполните следующие действия:

  1. Выберите Program Files > IBM WebSphere ILOG JRules V7.0.2 > Rule Studio для открытия Rule Studio.
  2. Выберите File > New > Rule Project, как показано на рисунке 2.
Рисунок 2. Создание нового проекта правил с использованием Rule Studio
Рисунок 2. Создание нового проекта правил с использованием Rule Studio
  1. Выберите Standard Rule Project и введите подходящее имя проекта.
  2. Оставьте настройки проекта по умолчанию и нажмите кнопку Finish.

Карта проекта правил в нижней части окна позволяет выполнять различные действия для создания RuleSet при его развертывании.

Создание XOM и BOM

Правила, созданные в ILOG JRules, выполняются на базе модели Executable Object Model (XOM), предоставляющей ссылки на объекты приложения и данные внешнего приложения. XOM является базовой реализацией модели Business Object Model (BOM). BOM – это модель, в соответствии с которой пишутся правила. BOM можно создать вручную с нуля или автоматически, путем синтаксического анализа модели XOM. Ниже в данной статье описывается, как создать BOM из XOM. JRules позволяет создать XOM либо из Java-объектов, либо из XML. Для отображения развернутых правил в виде Web-сервисов необходимо использовать XML XOM:

  1. Сохраните следующие XSD-файлы FileNet на локальный диск: http://www.wfmc.org/standards/docs/TC-1025_bpmnxpdl_24.xsd и http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd. Файл bpmnxpdl_24.xsd ссылается на файл schema_10_xpdl.xsd как на определение своей схемы.
  2. Отредактируйте файл bpmnxpdl_24.xsd, изменив атрибут schemaLocation с http://www.wfmc.org/standards/docs/TC-1025_schema_10_xpdl.xsd на [локальный путь]/[имя файла].
  3. Выберите Import XOM в карте проекта правил.
  4. Выберите Dynamic Execution Object Model (XSD or WSDL) в окне выбора XOM.
  5. Нажмите кнопку Add External XSD, как показано на рисунке 3.
Рисунок 3. Создание XOM
Рисунок 3. Создание XOM
  1. Выберите FileNet XSD (bpmnxpdl_24.xsd) и нажмите кнопку Finish. При этом будет создана XOM для нашего проекта правил.
  2. Выберите ссылку Create BOM в карте проекта правил и укажите имя для BOM.
  3. Убедитесь в том, что флажок Create a BOM entry from a XOM отмечен, и нажмите кнопку Next.
  4. Нажмите кнопку Browse XOM, выберите единственную доступную XOM и нажмите кнопку OK. Отобразятся доступные элементы, как показано на рисунке 4.
Рисунок 4. Создание BOM
Рисунок 4. Создание BOM
  1. Выберите первый пункт и нажмите кнопку Finish. При создании BOM возможно появление нескольких ошибок из-за предоставляемой ILOG вербализации по умолчанию для объектов в BOM.
  2. Выберите каждую из ошибок и измените вербализацию по умолчанию, добавляя числовые суффиксы для корректировки ошибок.
  3. Сохраните проект правил. Ошибки должны исчезнуть.

Создание необходимых параметров

Бизнес-правила работают с определенными переменными. Для создания параметров выполните следующие действия:

  1. Выберите Define parameters в карте проекта правил.
  2. Убедитесь в том, что параметры, затрагиваемые ILOG JRules, объявляются как OUT или IN/OUT.
  3. Сохраните имена переменных, типы и вербализацию из примера, включая переменные, используемые в данной статье и приведенные в таблице 1.
Ключевые переменные для примера
НазваниеТипНаправлениеВербализация
pi_heightjava.lang.FloatIN_OUTPI Height (рост)
pi_weightjava.lang.FloatIN_OUTPI Weight (вес)
pi_genderjava.lang.StringIN_OUTPI Gender (пол)
pi_DOBjava.util.DateIN_OUTPI Date of Birth (дата рождения)
pi_maritalStatusjava.lang.StringIN_OUTPI Marital Status (семейное положение)
pi_empStatusjava.lang.StringIN_OUTPI Employment Status (занятость)
pi_monthlyIncomejava.lang.DoubleIN_OUTPI Monthly Income (ежемесячный доход)
pi_reqCoveragejava.lang.DoubleIN_OUTPI Requested Coverage (запрашиваемая сумма покрытия)
pi_insurRejectedjava.lang.BooleanIN_OUTPI Insurance Rejected in 5 years (договоры страхования, отвергнутые за пять лет)
pi_employerInsurjava.lang.BooleanIN_OUTPI Has Employer Insurance (наличие страховки работодателя)
pi_otherInsurjava.lang.BooleanIN_OUTPI Has Other Insurance (наличие других страховок)
pi_HH_AIDSjava.lang.BooleanIN_OUTPI Has AIDS disease (болен ли СПИДом)
pi_HH_alcoholjava.lang.BooleanIN_OUTPI Is Alcoholic (является ли алкоголиком)
pi_HH_Cancerjava.lang.BooleanIN_OUTPI Has Cancer (болен ли раком)
pi_HH_KidneyStonesjava.lang.BooleanIN_OUTPI Has Kidney Stones (имеет ли камни в почках)
pi_HH_Tumorjava.lang.BooleanIN_OUTPI Has Tumor (имеет ли опухоли)
pi_HH_BPjava.lang.BooleanIN_OUTPI Has High BP (имеет ли высокое давление)
pi_HH_Diabetesjava.lang.BooleanIN_OUTPI Has Diabetes (болен ли сахарным диабетом)
pi_BMIjava.lang.FloatIN_OUTPI BMI (индекс массы тела)
pi_BMI_Resjava.lang.StringIN_OUTPI BMI Result (результат индекса массы тела)
pi_AcceptInsurancejava.lang.BooleanIN_OUTPI Accept The Insurance (принятие страховки)
pi_AidsRatingjava.lang.IntegerIN_OUTPI AIDS Rating (рейтинг по СПИДу)
pi_CancerRatingjava.lang.IntegerIN_OUTPI Cancer Rating (рейтинг по раку)
pi_AlcoDrugaddictRatingjava.lang.IntegerIN_OUTPI Alcohol Rating (рейтинг по алкоголю)
pi_KidneyStonesRatingjava.lang.IntegerIN_OUTPI Kidney Stones Rating (рейтинг по камням в почках)
pi_TumorRatingjava.lang.IntegerIN_OUTPI Tumor Rating (рейтинг по опухолям)
pi_DiabetesRatingjava.lang.IntegerIN_OUTPI Diabetes Rating (рейтинг по диабету)
pi_HiBPRatingjava.lang.IntegerIN_OUTPI BP Rating (рейтинг по давлению)
pi_HealthRatingjava.lang.IntegerIN_OUTPI HealthRating (рейтинг по состоянию здоровья)

Создание пакета правил

Наборы правил организовываются в пакеты; причем каждый пакет хранит набор Rules. Для создания нового пакета правил выберите Add rule package в карте проекта правил и присвойте подходящее имя.

Создание необходимых бизнес-правил

Каждое бизнес-правило состоит из набора условий и набора предложений. Условие и предложения выступают как параметры, определенные в проекте правил. Для создания бизнес-правила выполните следующие действия:

  1. Выберите File > New > Business Rule и присвойте подходящее имя.
  2. Выберите пакет, в котором хотите создать правило.
  3. Нажмите кнопку Finish. Редактор исходных кодов предложит ввести правило.
  4. Создайте в редакторе исходных кодов правило, приведенное в листинге 1, чтобы условие Accept The Insurance возвращало значение false, когда BMI-результат пациента равен Obese (ожирение) или Underweight (истощение).
Листинг 1. Правило для проверки индекса массы тела
if
     'PI BMI Result' is "Obese"
     or 'PI BMI Result' is "Underweight"
then
     set 'PI Accept The Insurance' to false ;
  1. Создайте в редакторе исходных кодов правило, приведенное в листинге 2, чтобы условие Accept The Insurance condition устанавливалось в значение false, когда рейтинг состояния здоровья пациента превышает значение 60.
Листинг 2. Правило для проверки приемлемого рейтинга состояния здоровья
if
     'PI HealthRating' is more than 60
then
     set 'PI Accept The Insurance' to false ;
  1. Создайте в редакторе исходных кодов правило, приведенное в листинге 3, чтобы условие Accept The Insurance устанавливалось в значение false, если за пять последних лет пациенту было отказано в страховке.
Листинг 3. Правило для проверки отказа в страховке за последние пять лет
if
     'PI Insurance Rejected in 5 years' is true
 then
     set 'PI Accept The Insurance' to false ;
  1. Инициализируйте входные переменные, как показано в листинге 4, чтобы при выполнении условия "1=1":
    • Условие Accept The Insurance устанавливалось в значение true.
    • BMI устанавливался в значение вес/(рост*рост).
Листинг 4. Инициализация входных переменных
if
     1 equals 1
 then
     set 'PI Accept The Insurance' to true ;
     set 'PI BMI' to 'PI Weight' / ('PI Height' * 'PI Height') ;
  1. Инициализируйте рейтинг состояния здоровья, как показано в листинге 5, чтобы:
    • AIDS Rating устанавливался в 10;
    • Cancer Rating устанавливался в 90;
    • Tumor Rating устанавливался в 80;
    • Diabetes Rating устанавливался в 60;
    • Alcohol Rating устанавливался в 50;
    • BP rating устанавливался в 40.
Листинг 5. Инициализация рейтинга состояния здоровья
if
     1 equals 1
 then
     set 'PI AIDS Rating' to 100 ;
     set 'PI Cancer Rathing' to 90 ;
     set 'PI Tumor Rating' to 80 ;
     set 'PI KidneyStones Rating' to 70 ;
     set 'PI Diabetes Rating' to 60 ;
     set 'PI Alcohol Rating' to 50 ;
     set 'PI BP Rating' to 40 ;
  1. Вычислите рейтинг состояния здоровья, используя техническое правило, как показано в листинге 6.
Листинг 6. Вычисление рейтинга состояния здоровья с использованием технического правила
when {TirContext() from ?context;
  evaluate (1==1);
}
then {
     pi_HealthRating = 0;
     if  (pi_HH_AIDS) {
          pi_HealthRating = pi_HealthRating + pi_AidsRating;
     }
     if  (pi_HH_alcohol) {
          pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
     }
     if  (pi_HH_Cancer) {
          pi_HealthRating = pi_HealthRating + pi_AlcoDrugaddictRating;
     }
     if  (pi_HH_Tumor) {
          pi_HealthRating = pi_HealthRating + pi_TumorRating;
     }
     if  (pi_HH_KidneyStones) {
          pi_HealthRating = pi_HealthRating + pi_KidneyStonesRating;
     }
     if  (pi_HH_Diabetes) {
          pi_HealthRating = pi_HealthRating + pi_DiabetesRating;
     }
     if  (pi_HH_BP) {
          pi_HealthRating = pi_HealthRating + pi_HiBPRating;
     }
 }
  1. Вычислите результат для BMI, используя таблицу решений, устанавливающую соотношение BMI с результатом для BMI, как показано на рисунке 5.
Рисунок 5. Вычисление результата для BMI с использованием таблицы решений
Рисунок 5. Вычисление результата для BMI с использованием таблицы решений

Создание потока правил

Поток правил (rule flow) определяет порядок выполнения набора правил. Для создания потока правил выполните следующие действия:

  1. Выберите Add RuleFlow, назначьте имя и нажмите кнопку Finish. При этом откроется графический редактор.
  2. Нажмите пиктограмму Start и щелкните левой кнопкой мыши в области диаграммы для создания начальной точки потока.
  3. Щелкните кнопкой мыши для создания конечной точки.
  4. Перетащите правила из Project Explorer в область диаграммы в порядке выполнения.
  5. Нажмите на пиктограмму Create Transition и выберите начальный объект.
  6. Выберите правило. При этом создается переход между начальным и конечным правилом.
  7. Создайте аналогичные переходы для остальных правил и для оконечной точки. На рисунке 6 показан итоговый поток правил.
Рисунок 6. Создание потока правил
Рисунок 6. Создание потока правил

Создание приложения, реализующего правила

Приложение, реализующее правила (rule application), представляет собой архив, который развертывается на исполняющем сервере. Для создания этого приложения выполните следующие действия:

  1. Выберите Create RuleApp в карте проекта правил и назначьте имя.
  2. Выберите проекты и наборы правил, которые необходимо добавить в архив.
  3. Нажмите кнопку Finish.

Будет создано приложение, реализующее наборы правил. Теперь можно напрямую развернуть его на исполняющем сервере или экспортировать в виде JAR-файла для последующего развертывания.


Тестирование, отладка и развертывание бизнес-правил

Поскольку Rule Studio работает в интегрированной среде Eclipse, тестирование и отладку бизнес-правил можно выполнять аналогично тому, как это делается для Java-проектов.

  1. Выберите Run > Open Run Dialog и настройте новый проект правил из контекстного меню.
  2. Укажите начальные значения для параметров и нажмите кнопку Run. Для тестирования результатов можно вставить операторы print внутрь правил и следить за информацией, выдаваемой в окне консоли.
  3. Если все готово для развертывания, щелкните правой кнопкой мыши на приложении в Project Explorer и выберите Ruleapp > Deploy. Появится диалоговое окно развертывания.
  4. Оставьте настройки по умолчанию и нажмите кнопку Deploy. Архив RuleApp развернется на сервере Rule Execution Server.
  5. Для проверки корректности развертывания откройте Rule Execution Server, используя меню Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces.
  6. Зарегистрируйтесь как resAdmin/resAdmin (ILOG Version 7.0.2) и перейдите на вкладку Explorer.
  7. Выберите древовидный список RuleApps. В нем будет присутствовать только что развернутое вами приложение, как показано на рисунке 7.
Рисунок 7. Развертывание бизнес-правил
Рисунок 7. Развертывание бизнес-правил

Извлечение WSDL для развернутых правил

Язык WSDL (Web Services Description Language) является языком определения интерфейсов для клиентов Web-сервисов и предназначен для идентификации деталей интерфейса, предоставляемых сервером. Чтобы сгенерировать WSDL-ссылку для развернутого набора правил ILOG, выполните следующие действия:

  1. Выберите Start > Program Files > IBM WebSphere ILOG JRules V7.0.2 > Web Interfaces для регистрации на сервере Rule Execution Server.
  2. Перейдите на вкладку Explorer и выберите развернутый набор правил.
  3. Выберите Get WSDL for the latest ruleset version.

При этом откроется окно браузера со сгенерированным WSDL в XML-формате, как показано на рисунке 8. Этот WSDL из IBM FileNet P8 Process Designer можно использовать для активизации наборов правил.

Рисунок 8. Сгенерированный WSDL для наборов правил ILOG
Рисунок 8. Сгенерированный WSDL для наборов правил ILOG

Проектирование потока работ процесса с использованием IBM FileNet P8

Самым важным шагом в реализации примера варианта использования является проектирование потока работ процесса. Поток работ можно создать при помощи IBM FileNet P8 Process Designer, выполнив следующие действия:

  1. Зарегистрируйтесь в IBM FileNet P8 Workplace, используя свои полномочия.
  2. Запустите Process Designer, выбрав Author > Advanced Tools в левом поле экрана. Откроется апплет дизайнера.
  3. Перетащите шаги потока работ (workflow steps) из палитры BPM и создайте поток работ, в котором Personal Insurance (Automated Underwriting) является системным заданием, активизирующим HTDS JRules для сквозной автоматизированной обработки подписания договора страхования, как показано на рисунке 9. Ссылки на информацию о шагах потока работ приведены в разделе Ресурсы.
Рисунок 9. Поток работ процесса
Рисунок 9. Поток работ процесса

Создание необходимых переменных потока работ

Переменные потока работ являются основой взаимодействия человека с системой в потоке работ. Они используются также для условной маршрутизации по различным шагам потока работ. Для создания переменных потока работ выполните следующие действия.

  1. Нажмите пиктограмму Workflow Properties из Process Designer.
  2. Перейдите на вкладку Data Fields.
  3. Дважды щелкните левой кнопкой мыши на таблице данных и создайте переменные с соответствующими типами данных, как показано в таблице 2. Убедитесь в том, что тип данных для Merge Type (тип слияния) установлен в Override.
Переменные потока работ
ИмяТипТип слияния
pi_FirstNameStringOverride
pi_FirstNameStringOverride
pi_LastNameStringOverride
pi_HeightFloatOverride
pi_WeightFloatOverride
pi_GenderStringOverride
pi_DOBStringTime
pi_MaritalStatusStringOverride
pi_EmpStatusStringOverride
pi_MonthlyIncomeFloatOverride
pi_CoverageAmountFloatOverride
pi_InsurRejectedBooleanOverride
pi_EmpProvidedInsurBooleanOverride
pi_OtherInsurBooleanOverride
pi_HH_AIDSBooleanOverride
pi_HH_AlcoholBooleanOverride
pi_HH_CancerBooleanOverride
pi_HH_KidneyStonesBooleanOverride
pi_HH_TumorBooleanOverride
pi_HH_BPBooleanOverride
pi_HH_DiabetesBooleanOverride
InsuranceTypeStringOverride
pi_AcceptInsuranceBooleanOverride
iLOG_RES_StringStringOverride
iLOG_RESNumRulesIntegerOverride
pi_BMI_ResStringOverride
pi_BMIFloatOverride
pi_AidsRatingIntegerOverride
pi_CancerRatingIntegerOverride
pi_AlcoDrugaddictRatingIntegerOverride
pi_KidneyStonesRatingIntegerOverride
pi_TumorRatingIntegerOverride
pi_DiabetesRatingIntegerOverride
pi_HiBPRatingIntegerOverride
pi_HealthRatingIntegerOverride

Ассоциирование переменных потока работ с шагами и назначение участников

При назначении переменных потока работ шагам они показываются в шаговом процессоре (step processor) для данного шага, и действуют либо как поля ввода данных, либо как информационные поля, заполняемые на предыдущих шагах. Помните, что переменные потока работ являются глобальными для всех шагов. Для назначения переменных конкретным шагам выполните следующие действия:

  1. Выберите шаг, которому хотите назначить переменные.
  2. В панели свойств шага перейдите на вкладку Parameters (для LaunchStep выберите вкладку General).
  3. Выберите параметры из списка Available Parameters, которые хотите назначить шагу launch, и используйте стрелку вправо для перемещения параметров в список Selected Parameters:
    • pi_AcceptInsurance[RW]
    • pi_BMI[RW]
    • pi_BMI_Res[RW]
    • pi_CoverageAmount[RW]
    • pi_DOB[RW]
    • pi_EmpProvidedInsur[RW]
    • pi_EmpStatus[RW]
    • pi_FirstName[RW]
    • pi_Gender[RW]
    • pi_Height[RW]
    • pi_HH_AIDS[RW]
    • pi_HH_Alcohol[RW]
    • pi_HH_BP[RW]
    • pi_HH_Cancer[RW]
    • pi_HH_Diabetes[RW]
    • pi_HH_KidneyStones[RW]
    • pi_HH_Tumor[RW]
    • pi_InsurRejected[RW]
    • pi_LastName[RW]
    • pi_MaritalStatus[RW]
    • pi_MonthlyIncome[RW]
    • pi_OtherInsur[RW]
    • pi_Weight[RW]
  4. Выберите и переместите следующие параметры для назначения их в Selected Parameters для шага Human Underwriting:
    • pi_CoverageAmount[RW]
    • pi_DOB[RW]
    • pi_EmpProvidedInsur[RW]
    • pi_EmpStatus[RW]
    • pi_FirstName[RW]
    • pi_Gender[RW]
    • pi_Height[RW]
    • pi_HH_AIDS[RW]
    • pi_HH_Alcohol[RW]
    • pi_HH_BP[RW]
    • pi_HH_Cancer[RW]
    • pi_HH_Diabetes[RW]
    • pi_HH_KidneyStones[RW]
    • pi_HH_Tumor[RW]
    • pi_InsurRejected[RW]
    • pi_LastName[RW]
    • pi_MaritalStatus[RW]
    • pi_MonthlyIncome[RW]
    • pi_OtherInsur[RW]
    • pi_Weight[RW]
  5. Выберите и переместите следующие параметры для назначения их шагу Email notification:
    • InsuranceType[RW]
    • pi_AcceptInsurance[RW]
    • pi_FirstName[RW]
    • pi_LastName[RW]

Задачам пользователя (Human Underwriting и Email Notification) необходимо назначить участников потока работ. Для добавления участника в задачу выполните следующие действия:

  1. Выберите шаг.
  2. На вкладке General в области participant выберите переключатель Participants.
  3. Выберите пользователя с необходимыми для обработки элементов работ процесса привилегиями. С целью упрощения можете назначить пользователя Administrator всем шагам, предназначенным для пользователя, как показано на рисунке 10.
Рисунок 10. Ассоциирование участника потока работ
Рисунок 10. Ассоциирование участника потока работ

После назначения переменных и участников шагам добавьте условия маршрутизации, выполнив следующие действия.

  1. Выберите Result = True.
  2. Введите pi_AcceptInsurance = true для условия маршрутизации.
  3. Выберите Result = False.
  4. Введите pi_AcceptInsurance = false для условия маршрутизации.

Настройка IBM FileNet P8 BPM на потребление Web-сервисов

Для настройки IBM FileNet P8 BPM на потребление Web-сервисов выполните следующие действия:

  1. Выберите Workplace Admin и откройте аплет Process Configuration Console.
  2. Подключитесь к вашему изолированному региону (isolated region).
  3. Щелкните правой кнопкой мыши на регионе и выберите Properties.
  4. Перейдите на вкладку Web Services и отметьте флажок Enable Process Designer to enter WSDL links without browsing for Web Services, как показано на рисунке 11.
Рисунок 11. Разрешение дизайнеру процессов принимать URL WSDL напрямую
Рисунок 11. Разрешение дизайнеру процессов принимать URL WSDL напрямую

Настройка шага активизации потока работ на выполнение бизнес-правил

Для того чтобы использовать Web-сервис, отображаемый ILOG, необходимо настроить партнерскую ссылку (partner link) с использованием WSDL, извлеченного из исполняющего сервера ILOG. Для настройки партнерской ссылки выполните следующие действия.

  1. Выберите Workflow Properties > Web Services в Process Designer.
  2. Дважды щелкните левой кнопкой мыши на пустой строке в списке Partner Links для добавления новой партнерской ссылки.
  3. Отметьте флажок Invoke.
  4. В поле text скопируйте WSDL-ссылку, сгенерированную ILOG.
  5. Убедитесь в том, что Port Type для ILOG WSDL выбирается автоматически. Результат показан на рисунке 12.
Рисунок 12. Настройка потока работ на использование Web-сервиса
Рисунок 12. Настройка потока работ на использование Web-сервиса
  1. После настройки партнерской ссылки выберите задачу вызова Web-сервиса, например Personal Insurance (Automated Underwriting). Это системное задание, поэтому операция Invoke оказывается выбрана в списке.
  2. Дважды щелкните левой кнопкой мыши на Invoke для настройки вызова Web-сервиса.
  3. Выберите созданную вами партнерскую ссылку, а затем выберите операцию. Для ILOG можно выбрать только операцию executeDecisionService(). Дизайнер процессов внесет все входные и выходные переменные Web-сервиса в два отдельных списка, из которых можно выбрать локальные переменные для отображения.
  4. Для каждой входной и выходной переменной выберите подходящую локальную переменную из ниспадающего списка. В таблице 3 показано отображение выходных переменных.
Таблица 3. Отображение выходных переменных для отправки данных в Web-сервис iLog
NameTypeExpression
pi_heightFloatpi_Height
pi_weightFloatpi_Weight
pi_genderStringpi_Gender
pi_DOBTimepi_DOB
pi_maritalStatusStringpi_MaritalStatus
pi_empStatusStringpi_EmpStatus
pi_monthlyIncomeFloatpi_MonthlyIncome
pi_reqCoverageFloatpi_reqCoverage
pi_insurRejectedBooleanpi_InsurRejected
pi_employerInsurBooleanpi_EmpProvidedInsur
pi_otherInsurBooleanpi_OtherInsur
pi_HH_AIDSBooleanpi_HH_AIDS
pi_HH_alcoholBooleanpi_HH_Alcohol
pi_HH_CancerBooleanpi_HH_Cancer
pi_HH_KidneyStonesBooleanpi_HH_KidneyStones
pi_HH_TumorBooleanpi_HH_Tumor
pi_HH_BPBooleanpi_HH_BP
pi_HH_DiabetesBooleanpi_HH_Diabetes
pi_BMIFloatpi_BMI
pi_BMI_ResStringpi_BMI_Res
pi_AcceptInsuranceBooleanpi_AcceptInsurance
pi_AidsRatingIntegerpi_AidsRating
pi_CancerRatingIntegerpi_CancerRating
pi_AlcoDrugaddictRatingIntegerpi_AlcoDrugaddictRating
pi_KidneyStonesRatingIntegerpi_KidneyStonesRating
pi_TumorRatingIntegerpi_TumorRating
pi_DiabetesRatingIntegerpi_DiabetesRating
pi_HiBPRatingIntegerpi_HiBPRating
pi_HealthRatingIntegerpi_HealthRating

В таблице 4 показано отображение входных переменных.

Таблица 4. Отображение входных переменных для использования Web-сервиса ILOG
ИмяТипИмя поля
ilog.rules.outputStringStringiLOG_RES_String
ilog.rules.firedRulesCountIntegeriLOG_RES_NumRules
pi_heightFloatpi_Height
pi_weightFloatpi_Weight
pi_genderStringpi_Gender
pi_DOBTimepi_DOB
pi_maritalStatusStringpi_MaritalStatus
pi_empStatusStringpi_EmpStatus
pi_monthlyIncomeFloatpi_MonthlyIncome
pi_reqCoverageFloatpi_reqCoverage
pi_insurRejectedBooleanpi_InsurRejected
pi_employerInsurBooleanpi_EmpProvidedInsur
pi_otherInsurBooleanpi_OtherInsur
pi_HH_AIDSBooleanpi_HH_AIDS
pi_HH_alcoholBooleanpi_HH_Alcohol
pi_HH_CancerBooleanpi_HH_Cancer
pi_HH_KidneyStonesBooleanpi_HH_KidneyStones
pi_HH_TumorBooleanpi_HH_Tumor
pi_HH_BPBooleanpi_HH_BP
pi_HH_DiabetesBooleanpi_HH_Diabetes
pi_BMIFloatpi_BMI
pi_BMI_ResStringpi_BMI_Res
pi_AcceptInsuranceBooleanpi_AcceptInsurance
pi_AidsRatingIntegerpi_AidsRating
pi_CancerRatingIntegerpi_CancerRating
pi_AlcoDrugaddictRatingIntegerpi_AlcoDrugaddictRating
pi_KidneyStonesRatingIntegerpi_KidneyStonesRating
pi_TumorRatingIntegerpi_TumorRating
pi_DiabetesRatingIntegerpi_DiabetesRating
pi_HiBPRatingIntegerpi_HiBPRating
pi_HealthRatingIntegerpi_HealthRating

Запуск потока работ и тестирование бизнес-правил в действии

После выбора партнерской ссылки и отображения переменных можно запустить поток работ, выполнив следующие действия:

  1. Выполните проверку корректности потока работ, выбрав File > Validate Workflow Collection.
  2. Выберите File > Transfer Workflow Collection для перемещения потока работ в хранилище объектов и механизм обработки.
  3. При перемещении выберите подходящий заголовок для документа и месторасположение в хранилище объектов для сохранения потока работ.
  4. Выберите настройки безопасности по умолчанию для документа.
  5. Выберите File > Launch Main Workflow для запуска потока работ. Не забудьте, что для всех пользовательских задач в качестве пользователя по умолчанию мы выбрали Administrator. Откроется окно запуска, которое будет работать как форма ввода данных (см. рисунок 13).
Рисунок 13. Запуск потока работ
Рисунок 13. Запуск потока работ
  1. Заполните поля любыми подходящими значениями и нажмите кнопку Launch, как показано на рисунке 13.

Будет выполнено задание automated-underwriting. Если механизм правил выдает положительный ответ, процесс направляется в задачу уведомления по электронной почте. Если механизм правил выдает отрицательный ответ, процесс направляется в задачу для страховщика.

Для проверки результатов выберите в рабочей области Tasks > Inbox и щелкните по шаговому процессору для элемента работ.


Советы и приемы тонкой настройки

Для оптимизации работы можно использовать следующие идеи:

  • При использовании одинаковых имен переменных в Rule Studio и IBM FileNet P8 Process Designer отображение переменных в шаге INVOKE осуществляется автоматически.
  • При использовании WSDL для самой последней версии набора правил можно изменить правила и развернуть их как дополнительные версии без воздействия на поток работ. Поток работ использует при выполнении самый последний набор правил.
  • При наличии большого набора правил, работающих с тем же набором переменных, организованных в виде записей (например, из электронной таблицы Excel®), используйте функцию импорта ILOG JRules. Она позволяет импортировать Excel-файл и создать таблицу принятия решений.
  • Вместо нашего примера XSD-файла вы можете создать свой собственный простой XML-файл с различными переменными и типами для последующей разработки XSD-файла с целью создания XOM. Однако для реального применения рекомендуем использовать XSD, приведенный в данной статье, поскольку он содержит все типы IBM FileNet P8.

Использование интеграции с помощью Web-сервисов: альтернатива для HTDS

Возможны два способа достижения Web-сервисов с IBM FileNet P8 BPM и IBM WebSphere ILOG JRules. Как описывалось в разделе Настройка шага активизации потока работ на выполнение бизнес-правил, можно использовать WSDL HTDS напрямую внутри потока работ процесса и отображать входные и выходные переменные. Другой подход - можно сгенерировать для набора правил клиент Web-сервиса, используя функцию генерирования кода ILOG Rule Studio. Для использования этой функции создайте Java®-компонент, вызывающий Web-сервисы через сгенерированный клиент и затем интегрирующий компонент с потоком работ процесса. Ссылки на передовые методики настройки и развертывания для использования этого метода (а также на документацию по продукту) приведены в разделе Ресурсы.


Заключение

В данной статье описана интеграция IBM FileNet P8 BPM с IBM WebSphere ILOG JRules с использованием Web-сервисов. Также детально описаны действия по разработке и развертыванию бизнес-правил с использованием этих инструментальных средств. Решение, в котором IBM FileNet P8 BPM используется совместно с JRules, позволяет быстро менять бизнес-решения, что в свою очередь способствует усилению позиций организации в современных условиях конкурентного рынка. Решение улучшает оперативность бизнес-процессов и предоставляет надлежащий инструментарий для всех заинтересованных сторон.

Благодарности

Выражаем искреннюю благодарность следующим рецензентам, которые потратили свое бесценное время на прочтение данной статьи и предоставление своих предложений и комментариев по различным аспектам:

  • Крис Берг (Chris Berg) – менеджер продукта (WebSphere BRMS).
  • Энди Дж. Ритчи (Andy J Ritchie) – ILOG Development Integration & Synergy (WebSphere BRMS).
  • Цзехуа Эва Лю (Jiehua Eva Lu) – технический менеджер по альянсам (WebSphere BRMS).
  • Сринивас Н. Ганнаварапу (Srinivas Nv Gannavarapu) – программист-консультант (Enterprise Content Management).

Ресурсы

Научиться

Обсудить

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management, WebSphere, SOA и web-сервисы
ArticleID=765140
ArticleTitle=Интеграция IBM FileNet P8 BPM с IBM WebSphere ILOG JRules при помощи Web-сервисов
publish-date=10142011