暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

应用Oracle Integration(集成云服务)开发配置Dynamic Process(动态式流程)

713

什么是动态式流程

Oracle Intergration(集成云服务,以下称为OIC)是Oracle PaaS云平台中一个功能强大、汇聚应用集成、业务流程和应用拓展的工具。

业务流程(Process)是业务应用中的关键组件,通过OIC用户可以基于图形化的配置界面,快速开发常用的两类流程:

  • 结构式Structured

使用结构式流程(structured processes)可以实现自动执行的结构式(也称为有序)任务,它的特点是任务执行是确定的。我们常遇到的结构式流程典型场景:如审批流程等。

图1:structured processes(结构式流程)

  • 动态式Dynamic

在实际应用中,还存在一些流程不是按照结构式(有序)的路径执行,即任务顺序是不确定的;这类流程需要信赖人工(比如专家)判断,根据当前变化的情况而确定执行路径。OIC动态式流程(Dynamic processes)可以协助实现这个不确定的流程。

图2:Dynamic processes(动态式流程)

以下通过一个医院急诊室业务处理流程的示例,描述OIC是如何创建、配置动态式流程,并由此了解动态式流程相关的模型、活动和属性。

Dynamic processes示例背景

现在你是一个医院急诊室业务流程处理应用的负责者,那么你想有一个实现方案;

对于病人的相关处理任务包括:

检验筛查、诊断治疗和康复出院,这几个任务的执行路径具有不确定性,每个病人的情况会不同;

有些情况需要按次序/步骤执行任务;

另一个病人的情况按病情确定;

再有的一个则必须依靠专家参与会诊判断;

还有的任务可以在任意需要的时候执行;

以上所描述的医院急诊室业务流程处理例子,就是一个非常经典的动态式流程。

首先让我们将医院急诊室业务流程处理示例分解为以下的任务模型:

病人送到急诊室,护士开始录入新病人的信息

护士为病人安排进行检验、筛查

医生诊断病人病情,进行治疗;如需要,对病人进行手术

病情已康复,护士为病人办理出院

下面请跟随我来Step By Step使用OIC开发配置医院急诊室的动态式流程。

第一步、创建一个动态流程
首先,我们要使用OIC创建一个流程应用,然后在这里面继续创建动态式流程本身。

配置步骤:

  1. 在OIC控制台浏览栏点击“Process Builder”,进入Process Builder流程配置界面

  2. 在Process Builder流程配置左边的浏览栏,点击“Application”,进入流程应用页面;在该页面,点击Create,然后选择“New Application”

  3. 在弹出的Create     Application 对话窗口,在Name区域输入你给应用的名字,如Emergency

  4. 在Application     Home Tab页面,点击右边上的Create,选择New     Dynamic Process(如下图3)

图3:Create New DynamicProcess

   5. 在弹出的Create Process 对话窗口,在Name区域输入你给动态式流程的名字

图4:Create New DynamicProcess-Input

然后点击Create,即完成一个包含动态式流程应用的创建

图5:Create New DynamicProcess-Created

第二步、增加人工任务及阶段

接着,要在流程中增加活动;根据前面“示例背景”部分我们所分解的流程模型,该流程包括有,如:treating(检验筛查)、discharging(康复出院)等急诊室业务处理中需要进行的活动。

配置步骤:

1. 新加一个human task activity(人工任务活动):在     Add     Activity域,输入活动的名字(如病人治疗Treat Patient),然后点击右边的“+”

图6:Add Activity

小提示在刚刚新创建的活动图标(如下图),绿色表示该活动为一个human task(人工任务)、感叹号表示该活动是required(必须执行),右下角黄色的小三角表示该活动验证存在问题,里面的数字显示验证问题的数量

图7:human task icon

2. 重复上述操作,增加其它几个的human task activity,包括     Screen Patient(病人检验), Discharge Patient(病人出院)及Surgery(手术)

图8:ER Activities

3. 配置增加两个Stages(阶段):在 Add Stage域,输入阶段的名字(如Screening-筛查),然后点击右边的“+”;再增加另一个阶段,输入阶段的名字(如Screening-筛查),然后点击右边的“+”

图9:ER Stages

小提示:什么是Stages(阶段)?在OIC Dynamic processes中通过Stages可以将多个活动组合一个流程的步骤(在这个示例里面Stages设计比较简单,在实际应用中每个Satges都可以包含任意数量、各类的活动);Stages在流程执行时,可与其它阶段并行,或一个接一个顺序执行。

4. 将activity活动入入Stages(阶段):分别将Screen Patient 活动拖入Screening stage;将Treat Patient活动拖入Treatment stage

图10:Add Activities intoStages

小提示:在Emergency Process图标右边,会显示一个带数字的黄色小三角,表示OIC对于流程配置的验证出现问题及数量;目前你可以忽略该显示,也可以点击最右边的齿轮Edit Configuration来隐藏OIC的配置验证问题结果。

图11:Stages icon

第三步:创建动态式流程的表单和展示

在这一步骤,我们需要创建一个human tasks(人工任务)使用到的表单(form),该表单具有多个不同展示,供不同任务使用。

配置步骤:

1. 在Process Builder流程配置左边的浏览栏,点击“Form”,进入流程应用页面;在该页面,点击Create,然后选择“New Web Form”

图12:create new form

2. 配置Start-Default展示页:修改default Main presentation为Start, 拖入两个输入文本Input text controls控件(分别取名:FirstName,LastName),如下图:

图13:Add Input text controls

图14:Edit Input text controls

3. 创建presentation展示页面:在Form编辑器左边的Properties pane属性栏, 在Presentations section的地方, 点击“+”,在弹出的“Create Presentation”对话框,Name域输入展示页面的名字(如Screening),在“Based on”域选择“Start”, 其它缺省不用修改,点击 Create.

图15:Create Presentation

4. 拖入一个文本区域控件(取名:Symptoms)

图16:Add text area control

5. 重复步骤3,创建名为“Treatment”展示页面,注意:在“Based on”域要选择“Screening”;在该展示的画布拖入一个文本区域控件(取名:Treatment)

图17:Create Treatment Presentaion

6. 重复步骤3,创建名为“Surgery”展示页面,注意:在“Based on”域要选择“Start”;在该展示的画布拖入一个勾选框Check box控件(取名:Surgery)

图18:Create Surgery Presentaion

7. 重复步骤3,创建名为“Discharge”展示页面,注意:在“Based on”域要选择“Start”;在该展示的画布拖入一个勾选框Check box控件(取名:Discharge)

图19:Create Discharge Presentaion

8. 点击右上角的“Save”,保存配置的Form和Presentation.

第四步:设置动态式流程启动点

每一个动态式流程可由表单或数据输入来启动,这一步我们来配置使用表单和展示输入来开始ER动态式流程。

配置步骤:

1. 点击流程名字左边的信封状Process Input图标

图20:Process Input

2. 在弹出的“Start the Dynamic Process”对话框,进行如下配置:

  • 选择“ With Forms Only”

  • 在 Form Title域,输入表单Title

  • 在 Form域, 缺省选择刚上步所创建的表单名字

  • 在Presentation域, 选择“Start”

图21:Start the DynamicProcess

小提示:在对话框下面的Interface Argument会显示“formArg”,表示:OIC自动生成的表单数据对象引用名字,后面的数据映射配置部分将会使用到。

3. 点击对话框的“Define”

4. 点击右上角的“Save”,保存该配置

第五步:配置人工任务活动的表单展示属性

接下来,为每一个人工任务活动配置一个表单展示页面。

配置步骤:

1. 在流程配置画布上选择“Screen Patient”活动,点击笔图标Edit Properties

2. 在弹出activity's     properties界面,在右边的Tab选择General

3. 完成如下配置:

  • Title: 输入Title名字

  • Form: 选择PatientForm

  • Presentation:选择Screening

图22:Edit activity properties

4.  点击Close

5. 在流程配置画布上选择“Treat Patient”活动,配置activity's properties-General

  • Form: PatientForm

  • Presentation: Treatment

6. 在流程配置画布上选择“Discharge Patient”活动,配置activity's properties-General

  • Form: PatientForm

  • Presentation: Discharge

7. 在流程配置画布上选择“Surgery”活动,配置activity's properties-General

  • Form: PatientForm

  • Presentation: Surgery

第六步:配置人工任务活动的数据关联

通过数据关联可以定义在流程各节点间的数据信息流动,在OIC流程中每一个人工任务活动需要通过数据关联(data association)配置数据的输入和输出。

配置步骤:

1. 在流程配置画布点击选择“Screen Patient activity”,点击右上角的“Data Objects”

图23:activity dataassocation

2. 在弹出的“Data Objects”配置界面上,展开Input,会显示formArg(还记得上一步的小提示吗?);在这里面可以看到你所有加入到Form控件的数据对象,这些数据对象都是在创建Form时自动生成好的了。

图24:data association mapping

3. 可以通过拖拉或输入的数据对象,或点击中央的双箭头图标Auto Mapping配置活动间的数据关联映射

小提示:Auto mapping是基于数据名字和类型,OIC系统会自动进行最佳猜测进行数据值映射,该功能可以大大地方便用户的数据映射操作。

4. 通过点击“Input”或“Output”,可以切换到相应Tab配置活动的相应数据关联映射

图25:data association output

5. 点击Apply,保存配置好的数据关联映射

6. 选择其它的活动(Treat Patient activity,Discharge Patient activity和Surgery activity),重复以上步骤2-5完成各自的数据关联映射

第七步:验证激活动态式流程应用

现在动态式流程的配置已经完成了,让我们来检验一下结果。

配置步骤:

1. 点击“Test”

在显示的Test Application tab界面,上面部分将展示对于流程应用验证结果:

  • 验证通过,可以进行下一步

  • 如果有列出验证不通过的问题,点击流程配置“Emergency Process”tab可以返回到配置,修改后可以再次点击“Test”重新验证

图26:TestApplication tab

2. 点击右上角的“Activate”,在对话框勾选“Add Me to All Roles”,点击 Activate.激活成功会显示一个消息框,点击OK

图27:Application Active

3. 点击下面的“Try in Test Mode”,下来就会打开一个Test mode的新浏览器界面

图28:Try in Test Mode

小提示:你可以确认正在处于test mode—位于屏幕上部有一个指示Testing Mode设置为On

第八步:测试运行你的动态式流程

1. 在打开test mode浏览器界面,双击图标“ER”,开始测试运行已经配置完成的动态式流程应用

图29:Start ER Application

2. 启动Start Form,录入信息,提交Submit

图30:Start Form

3. 点击左边浏览栏My Tasks的Dynamic Processes,显示你刚运行创建的动态式流程实例

图31:Dynamic Process Instance

4. 点击流程实例右边的箭头,打开实例,进入显示实例详情页面

图32:Dynamic Process Instance Details

5. 在此页面,可以对每个活动进行操作,如可以启动(OPEN)或者完成/结束(Force     Comlete)

图33:activities operation

6. 在此页面可以查询流程跟踪Audit信息

图34:Dynamic Process Instance Audit

7. 以下是ER流程应用一个操作过程示例:

  • 点击Screen Patient活动,在打开的Activity Details Tab页面(出现之前配置screening Form presentation),在Symptoms域输入信息,点击Submit

  • 选择Treat Patient活动,点击Submit提交

小提示:这里你在上一步的Symptoms域输入提交的内容不会出现在Treat Patient活动显示的表单里;这是因为流程中所有的活动都是同时启动的,即各活动中的Form值(payload)是相同的。

图35:Activities Sumbit

  • 分别完成和提交Surgery和Discharge Patient活动

  • 点击Close,并确认关闭dynamic process,结束整个流程运行


作者简介

郭静贤,甲骨文PaaS专家团队资深咨询顾问,专注于甲骨文PaaS平台、SaaS应用集成、混合云集成、SaaS应用扩展及业务流程管理BPM等领域,具有18年的IT行业从业经验,擅长企业应用架构咨询、设计和实现。可以通过jingxian.guo@oracle.com与他联系。


扫描二维码或点击阅读原文

快速预约精选云解决方案演示

文章转载自甲骨文开发者社区,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论