您的位置:首页 > 运维架构

Cordys BOP 4平台开发入门实战演练——While循环流程建模开发及测试

2015-04-20 10:52 513 查看

关于While循环

    Cordys C3版本中,While循环解释如下:

    While循环是BPMN组结构,用于一组活动或子流程来执行所满足的While条件。在每个循环体开始,进行测试条件,如果测试结果为“假”是则不执行。因此,这组活动或子流程将执行0或多次。While结构用于执行多次循环或根本不执行;也就说,从开始条件是假,将不执行循环。当在循环体内迭代循环,当前循环的打破也是下一次循环迭代的开始。打破循环功能有助于打破或退出循环,继续执行循环体后续活动环节。While结构代表图例如下图1所示。

    


                          图1

    While循环特点如下:

While循环的特点类似于Java的While循环定义;
While循环入口节点:节点只有出口,没有入口;While循环结束出口:节点只有入口,没有出口;
While循环只有一个入口,可以有多个出口。

    While循环可以有如下用途:

按用户需求流程建模;
可用于回退设计。

While循环流程实践

(1)新建BPM流程

    新建流程,流程命名为TestWhileBPM。

    


                                     图2

(2)新建While组(Group as While)

    按上图2所示,第1步,选定多个活动“Actively”,并在选中活动环节上点击鼠标右键,弹出菜单;第2步,在菜单中选中“Group as”功能;第3步,再在又弹出菜单中选中“While”功能。则形成如下图3所示的分组为While的流程图活动环节组。

    


                     图3

    接着,调整流程中活动关联线,按下图4所示,拖拽线移除循环体到外,变成连接线与While循环体关联。

    


                                   图4

(3)准备While循环实践XForm表单

    这里简单定义一个While测试的Input1输入框。

    


                          图5

(4)创建Message传递While循环条件

    如下图6所示,创建Message,名称为While_Msg,其中只有一个元素(Element)为While_Decision。

    


                           图6

    


                                             图7

(5)绑定表单传递While条件变化

    


                      图8

(6)配置While循环条件

    双击或鼠标邮件While循环体,打开While属性界面(Properties),编辑属性内容“General”。

    


                                 图9

    While属性内容,主要是设置Select Conditions,其中,需要点击此选项最后的选择框,弹出如下图10所示XPath Editor界面,编辑While循环条件表达式,最后的XPath为:bpm:while_Msg/bpm:while_Decison/text()=1,表达含义是循环判断条件是1,也就是Start启动输入为1或者表单Form输入为1时,直接跳过或打破循环体,其他的直接继续执行。

    


                                              图10

    如上图10所示,从左侧的Message map树中拖拽消息元素(Element)While_Decision到右侧XPath编辑窗口中,进行XPath表达式验证、测试。

(7)设置启动Start节点传入Message

    设置在启动流程,也就是通过Start节点传入Message所需要的参数,本案例传入的是Decision条件。

    


                                    图11

(8)发布流程

    直接在流程建模界面发布流程(Publish to Organization)或者回到Workspace界面发布流程都可以。

测试流程

(1)测试“Execution/Run”

    


                                        图12

(2)启动流程

    输入Message参数,把PARAMETER替换为“1”。

    


                                      图13

(3)进入Process Instance Manager(流程实例管理)界面

    在下图14中选中所进行的测试流程“TestWhileBPM”,点击Waiting列中红色“1”,弹出图15所示界面,进行流程Debugger。

    


                                             图14

    通过下图15,选中待处理流程实例,点击Open Debugger图标,进行流程调试界面。

    


                                               图15

(4)单步Debug流程

    按下图16所示,逐个活动环节跟踪,当前状态是第一次进入While循环体(原因:启动流程时PARAMETER参数输入为1)。

    


                                             图16

    如下图17所示,界面交互输入测试条件值。

    第一步:在弹出输入Form窗口“WhileTest2”,输入非1值,这里输入0;

    第二步:点击此窗口上的对好,完成执行操作;

    第三步:再进行Process Debugger操作,到下一活动环节;

    完成上述操作时,While循环体执行完成退出。

    


                                              图17

(5)完成测试工作

    如下图18所示,While循环体执行两次循环操作。

    


                                图18

    注意:虽然系统在BPM Service Container里可以配置死循环最高限制,但是也需要防止出现死循环问题,因为这样的循环将影响系统的性能。

    由于作者水平有限,欢迎反馈讨论。

详尽操作参见:

 Cordys BOP 4平台开发入门实战演练——流程建模开发(BPM) 肖永威 2015.4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息