Cordys BOP 4平台开发入门实战演练——For Each流程建模开发

关于For Each

For Each是BPMN组结构,并且体现应该执行消息内每个子单元的活动或子流程。For Each循环使用一个计数器,称为一个详尽描述重复执行相同活动的迭代器。For Each代表图如下图1所示。

图1

迭代器有下述3个数值:

  • 初始迭代器值
  • 增量值
  • 执行条件

在执行条件失败时循环结束。应复制对于结构中“Message Map”的递归元素(Element)的XPath去工作。

For Each循环流程实践

(1)新建BPM流程

按下图2所示,用鼠标圈上活动环节,点击鼠标右键,在弹出菜单中选中“Group as”,及后续弹出选中“For Each”,创建For Each组。

图2

拖拽与活动组相关的箭头到For Each组边界,调整好的流程图如图1所示。

(2)创建Message名称为ApplyMsg

在Message中Element为重复记录,先定义Element为apply,在apply中再定义Element分别为name和data。如下图3所示。

图3

(3)新建测试XForm表单

图4

在图例4的XForm中新建两个Input分别为名称(Input1)和数量(Input2),拖拽绑定表单到活动环节上。

(4)配置For Each属性Properties

图5

在For Each的属性(Properties)页面的General分页中,需要在Iterator Name输入框中定义迭代器名称为iteratorName。再点击Select Condition输入框中,如上图5所示点击配置查询图标,弹出XPath Editor窗口。

(5)配置For Each条件

图6

在XPath Editor界面,拖拽messagemap中的ApplyMsg到XPath窗口,删除调其中的“text()”文本。为什么呢?因为是传入Message是多行记录,是apply元素多条记录。

(6)环节绑定Message

在TestForEach活动环节上把表单上输入框与Message绑定:name对应Input1,data对应Input2,如下图7所示。

图7

注意:需要定位到内部Element,体现出是循环多条记录,针对传入messagemap的实例(instance),其中的实例变量是iteratorName。这样,按下图8所示,第一步先拖拽“instance:iteratorName”到XPath窗口,第二步再拖拽“bpm:name”到前字符串后面,第三步修改字符串为:instance:iteratorName/bpm:name/text()。对于data元素,最后则为:instance:iteratorName/bpm:data/text()。

图8

图例8中,详细操作过程如下:

(第1步)instance:iteratorName/text()

(第2步)bpm:ApplyMsg/bpm:apply/bpm:name/text()

(第3步)手动编辑合并为:instance:iteratorName/bpm:name/text()

含义是按instance:iteratorName变量迭代,取多重变量bpm:name/text()。

测试流程

(1)开始Debug流程

在TestForEach流程建模界面,点击鼠标右键,进入Bebug界面。

图9

(2)执行“Activity By Activity”传入Message

<ApplyMsg xmlns="http://schemas.cordys.com/default">

<def:apply xmlns:def="http://schemas.cordys.com/default">

<def:name>PARAMETER</def:name>

<def:data>PARAMETER</def:data>

</def:apply>

</ApplyMsg>

修改传入参数如下:

<ApplyMsg xmlns="http://schemas.cordys.com/default">

<def:apply xmlns:def="http://schemas.cordys.com/default">

<def:name>1</def:name>

<def:data>1</def:data>

</def:apply>

<def:apply xmlns:def="http://schemas.cordys.com/default">

<def:name>2</def:name>

<def:data>2</def:data>

</def:apply>

</ApplyMsg>

(3)执行将弹出2次XForm界面

迭代第一次:

图10

迭代第二次:

图11

For Each流程建模测试完成。

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

详尽操作参见:

Cordys BOP 4平台开发入门实战演练——流程建模开发(BPM) 肖永威 2015.4

时间: 2024-08-08 05:36:04

Cordys BOP 4平台开发入门实战演练——For Each流程建模开发的相关文章

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

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

Cordys BOP 4平台开发入门实战演练——Until流程建模开发

关于Until流程 Until是BPMN组结构,用于一组活动环节或子流程在条件为真之前执行.不象While组结构,这组活动环节或子流程至少执行一次.Until结构图表示如下图1所示. 图1 Until流程建模实践 (1)Until流程建模 在Business Process Model里画出如图1所示的流程图. (2)流程绑定表单 流程绑定WhileTest表单. (3)创建Message并与表单绑定 图2 (4)流程Start活动设置Input Message (5)配置Until属性Prop

Cordys BOP 4平台的子流程与嵌入子流程对比以及子流程建模技术

子流程含义是在某个流程流转过程中可以创建一个新的流程并执行,结束后可以在此返回父流程. 关于子流程 子流程 子流程是BPMN构件,是在一个流程中的复合的活动.子流程可以分解为一系列更精细的活动.子流程通过父流程实例化. 子流程可以设计成交易的一部分,下面列出三种可能的交易结果: 成功完成(Successful completion):流程按顺序执行,并且交易执行成功: 取消(Cancel):交易内的活动回滚,并且补充特定活动: 异常(Exception):出现异常活动不需要回滚,将从错误事件继续

Cordys BOP 4平台开发入门实战演练——流程建模开发(BPM)

1.流程建模开始 在Workspace的项目中,本文项目名称为:Training_WSApp.在项目中根目录下建立BPM文件夹,然后鼠标右键,在弹出菜单中选择New ->Business Process Model组件,进行流程建模开发. 图1 图2 2.图形化建模 在Business Process Model工作台上,图形化.拖拽绘制流程图. 图3 (1)为BPM流程配置表单(新建) 图4 注意:发布表单 图5 在Business Process Model界面中,在其左下角选择Worksp

史上最简单的个人移动APP开发入门--jQuery Mobile版跨平台APP开发

书是人类进步的阶梯. ——高尔基 习大大要求新新人类要有中国梦,鼓励大学生们一毕业就创业.那最好的创业途径是什么呢?就是APP.<构建跨平台APP-jQuery Mobile移动应用实战>就是一本写给没钱没身份没资历的创业小白看的APP书,看完这本书你可以拥有自己的一个APP,不用花钱就能移植到其他移动平台,支持iOS,Android,Windows Phone!!!!!!!!找个最便宜的来练手吧!  小白APP交流Q群:  348632872 清华大学出版社推出的<构建跨平台APP:j

OpenText Cordys BOP 4平台开发入门实战演练——基础理论知识

前言 随着互联网技术的发展,基于B/S结构的软件架构,呈现出多样化,所涉及到的富客户端.Webservice.WEB 2.0.HTML5等技术也粉墨登场,本文将介绍基于OpenText Cordys产品的SOA体系架构和相关开发技术,为开发人员分享另一种软件系统开发实践. 其中,富客户模型将界面分解成许多的既可以和用户直接交互又可以和服务器进行通信的小单元模块,所涉及到开发语言是JavaScript,以及围绕HTML DOM开发动态网页. 关于SOA SOA是面向服务的体系结构,它将应用程序的不

Cordys BOP 4平台开发入门实战演练——Webservices开发(1)

0.文章导读 本文档针对Cordys BOP-4 WS-AppServer基础功能进行验证和快速开发指导.(高级实践文档请参考后续文档). 0.1.WS-AppServer概述 WS-AppServer是Web Service Application Server的简称,是Cordys平台中基于数据库的Java业务逻辑开发层,其最根本的特性如下: (1)连接数据库 WS-Apps通过连接池访问数据库,可以从数据库表结构直接产生相应的Java代码,并发布成Web服务: 提供事务处理(transac

Cordys BOP 4平台开发入门实战演练——Webservices开发(2)

1.前言 本文主要是通过实战演练,介绍各类个性化.自定义WebService及其方法的开发方法,以及相关技术,重点介绍Cordys NOM类型(底层基于C语言的XML对象解析),以及Java中Soap WebService的调用技术. 首先介绍本文所依赖的数据库设计,采用常用的主从表模式,包括:用户账号表"sm_account".登录验证用户表"sm_auth_account".租户账号表"sm_tenant_account ",提供人员多重身份

Cordys BOP 4平台开发入门实战演练——HTML/JS界面开发实践

本文案例介绍基于HTML/JS方式开发Web界面,不使用Cordys XForm的解决方案. 1.定义资源目录 按上图在项目中建立文件夹,上传相关资源文档到指定文件中,例如下图把bootstrap.js文件上传到js文件夹中. 2.新建HTML网页 编写HTML文件,并保存为Demotenantcount.htm. 3.设置访问界面起点 配置界面资源定义文件,告知Cordys平台这些网页界面访问资源. 4.定义Web资源发布位置 定义Web资源位置为:"Training_WSApp/Web&qu