# 流程设计器
# 创建流程
# 操作步骤
在低开开发环境中,右键单击构件包中的流程子目录,进入"新建流程"界面,如下图所示:
在流程创建页面中可以选择启动表单与数据实体。
# 添加活动
# 操作步骤
拖拽图元方式 打开一个流程,在流程编辑器中有一个选用板,选用板中罗列了可以在流程中添加的活动,包括:"开始"、"结束"、"自动活动"、"人工活动"、"子流程"、"路由活动"、"EOS服务活动"、"REST服务活动"、"子流程活动"。 一般我们要在流程中添加一个活动可按如下方式操作:在选用板中点击选中需要添加的活动图元,拖动到流程编辑区中释放鼠标,图元就自动放置到流程编辑区中了。如下图所示。
注:由于在新建流程时,"开始图元"和"结束图元"默认已经生成,所以一般情况下无需拖拽这两个图元,并且在一个流程当中"开始图元"和"结束图元"都有且仅有一个,不能重复拖拽。
# 添加连接线
# 操作步骤
如上图所示,添加一条连接线可以分为如下步骤:
单击需要连线的图元(人工活动1),图元右侧会出现图中红框中的图标,比如点击自动活动图标则会直接生成一个自动活动并且人工活动到自动活动的连线也会生成。
单击需要连线的图元(人工活动1),选中"连线"图标,鼠标到“人工活动1"图元会生成一条线,在需要连线的图元单击下,即可在图元之间生成连线。
说明:删除连接线,只需选中连线使用快捷键"delete",或者点击流程编辑器上方的垃圾桶按钮。
# 添加注释
# 操作步骤
如上图所示,为流程添加注释只需要将"选用板"中的"注释"图元拖拽到流程编辑器中即生成注释框。双击编辑器中的注释框,即可对它进行编辑。
# 设置流程属性
# 功能描述
创建完一个低开流程后,需要对该流程进行属性设置。在流程编辑器中打开业务流程后,双击流程编辑器的空白处,弹出"设置流程属性"对话框。"流程属性设置"对话框共有9个Tab页,分别为"基本"、"相关数据"、"业务变量"、"流程参数"、"业务规则"、"业务事件"、"引擎事件"、"时间限制"、"流程启动者"。下面将分别介绍这9部分内容如何设置。
# 设置流程基本信息
双击流程编辑器中的空白处,弹出"BPS流程属性设置"对话框,如下图所示:
参数名称 | 参数意义 |
---|---|
流程编码 | 此为创建流程时的流程编码,不能修改。 |
流程名称 | 默认为创建流程时的文件名,是左边树节点显示名称,可以根据需要修改。 |
默认实体 | 流程绑定表单时绑定的实体。 |
流程日志 | 当前流程配置的流程日历,活动选择流程日历时使用。 |
分割事务 | 分割事务是指流程级操作与第一个活动的操作事务分开,比如在启动流程后会启动第一个活动,假设第一个活动启动出错,流程也会处于启动状态。本项默认"不选中"。 |
描述 | 对该业务流程的描述,中英文字符,长度为"0~1000"。 |
# 流程级日历定义
在流程属性当中定义的日历可以在时间限制配置页通过选择"流程日历"使用当前配置的流程日历。
"流程日历"可选项有:
日历名称 | 日历含义 |
---|---|
7×24小时 | 用于兼容6.0版本流程的日历,时间以每周7天乘每天24小时设计,当导入6.0版本流程时,打开流程属性配置页时默认选中"7×24小时",打开流程属性编辑器,默认选中"默认流程"。 |
默认日历 | 系统中的默认日历,具有唯一性。 |
其他 | 其他指的是用户编辑业务资源时,全局业务目录当中包含的日历列表。 |
# 设置流程相关数据
打开流程的"BPS流程属性设置"对话框后,单击"相关数据"Tab页,即显示"相关数据"设置页面,如下图所示。
相关数据包含"名称"、"数据类型"、"数组"、"初始值"、"描述"这5部分信息,下表是对它们的说明:
参数名称 | 参数意义 |
---|---|
参数名称 | 参数意义 |
名称 | 所定义的变量的名称或路径(针对类型org.w3c.dom.Node),默认为空,需要自己定义。 |
数据类型 | 当中支持基本JAVA类型与DataObject数据类型的定义。以上各种数据类型的数组,仅支持一维数组。 |
数组 | 该变量为数组时选中此项,默认"不选中"。 |
初始值 | 设置该变量的初始值,根据需要来设置,可以为空。 |
描述 | 对该变量的描述,中/英文字符串,可以为空。 |
# 设置流程参数
打开流程的"流程属性设置"对话框后,单击"流程参数"Tab页,即显示"流程参数"设置页面,如下图所示。
在参数配置表格的右上角的图标分别对应"增加参数"、"增加返回值"操作。每一个参数包含"类型"、"名称"、"数据类型"、"数组"、"描述"这5部分信息,下表是对它们的说明:
参数名称 | 参数意义 |
---|---|
类型 | 该参数的类型,分"参数"和"返回值"两种类型。 |
名称 | 该参数的名称,"参数"的名称默认为空,返回值默认为空。注意此处设置的参数必须在相关数据 (opens new window)中有定义,否则会报编译错误。 |
数据类型 | 当中支持基本JAVA类型与DataObject数据类型的定义。 |
数组 | 该变量为数组时选中此项,默认不选中。 |
描述 | 对该变量的描述,中/英文字符串,可以为空。 |
# 设置流程触发事件
打开流程的"流程属性设置"对话框后,单击"引擎事件"Tab页,即显示"引擎事件"设置页面。
流程引擎事件是指流程级别操作的触发事件,包含序号、触发时机、事件动作、调用方式、事务策略、异常处理、描述几个属性。
# 触发时机
- 流程启动前:表示指定的事件在流程创建后启动前触发,此时流程实例处于"待启动"状态;
- 流程启动后:表示指定的事件在流程启动后触发,即流程状态设置为启动后进行事件的触发;
- 流程完成前:表示指定的事件在流程实例完成前触发,即流程实例状态在"完成"之前进行事件的触发;
- 流程完成后:表示指定的事件在流程实例完成后触发,即流程实例状态在"完成"之后进行事件的触发;
- 流程恢复后:表示指定的事件在流程恢复某个挂起的流程实例后触发;
- 流程挂起后:表示指定的事件在流程实例被挂起后触发;
- 流程超时后:表示指定的事件在流程实例超时后触发;
- 流程提醒后:表示指定的事件在流程实例设置的提醒时间到达后触发。如设定的超时时间为2分钟,提醒时间为1分钟,那么从流程实例被创建的那一刻开始计时,1分钟后如果流程实例没有完成,所定义的事件就触发。
# 触发时机
事件动作是指触发事件被触发时,业务流程引擎触发的动作。
逻辑流:如果选择类型为逻辑流,需要配置动作、参数,如下表所示。
配置项 配置说明 动作 选择一个定义好的逻辑流。 参数配置表 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 运算逻辑:如果选择类型为运算逻辑,需要配置动作、参数,如下表所示。
配置项 配置说明 动作 选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。 参数配置表 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 EOS服务:如果选择类型为EOS服务,需要配置动作、远程URL、参数,如下表所示。
配置项 配置说明 动作 选择一个定义好的逻辑流。 远程URL 可以编辑动作的url,用于添加远程请求。 参数配置表 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。
流程时间限制是指设置整个流程完成的时间限制以及设置在完成之前某时间内进行提醒的时间限制。
注:如果应用与BPS引擎在在一个进程则只能使用逻辑流与运算逻辑,否则只能使用EOS服务。
# 设置流程时间限制
流程时间限制是指设置整个流程完成的时间限制以及设置在完成之前某时间内进行提醒的时间限制。
打开流程的"流程属性设置"对话框后,单击"时间限制"Tab页,即显示"时间限制"设置页面,
注:选中"启用时间限制"复选框后,"日历设置"、"时间限制策略"和"超时预警策略"三部分内容被激活,才可进行配置。
# 日历设置
可以选择方式获取日历,也可以通过"相关数据"设置。
选择日历时的可选列表如下:
日历名称 日历含义 7×24小时 用于兼容6.0版本流程的日历,时间以每周7天乘每天24小时设计,当导入6.0版本流程时,打开流程属性配置页时默认选中"7×24小时",打开流程属性编辑器,默认选中"默认流程" 默认日历 系统中的默认日历,具有唯一性 流程日历 使用当前流程设置的日历 参与者日历 使用与当前活动的参与者绑定的日历 其他 其他指的是用户编辑业务资源时,全局业务目录当中包含的日历列表 "相关数据"获取的日历也应当是上述日历范围。
说明: - 带有日历的时间限制中,"时间限制策略"和"超时预警策略"不再设置"天"属性,所有6.0版本在更高版本中打开后,当中的"天"属性均自动按照"7×24"小时规则转化成小时,填到小时框中,例:"7天2小时4分钟"到更高版本中将转化为"170小时4分钟",高版本中小时数上限为"9999"; - 所有6.0版本流程在更高版本中打开后日历默认设置为"7×24小时"日历。
# 时间限制策略
流程时间限制是指从流程创建算起,需在设置的时限范围内完成本流程实例,否则会认为此流程实例超时。一般时间限制和触发事件结合起来进行超时操作,设置了时间限制之后,可以在触发事件中设置超时事件,进行相关的超时业务操作。
- 时限:直接设置时间限制数,格式为"D天H小时M分钟",其中D为"0~365"范围内的整数,H为"0~23"的整数,M为"0~59"的整数。
- 从相关数据获取:相关数据的内容限定为特定格式 "D.H.M",表达的时间是"D天H小时M分钟",D、H、M的取值范围和上面一样。
- 启用邮件通知:选中此项即表明当该活动或流程发生超时以后,采用邮件的方式通知活动的参与者(活动时间限制)或流程的启动者(流程时间限制)。默认为不选中。
说明
- 超时预警不需要设置天属性;
- 小时数上限为"9999",分钟数上限为"9999";
- 相关数据格式为"H.M"。
# 超时预警策略
超时预警设置是指在流程设置的时限未到的某时间进行提前预警的时间设置,比如流程还有2天就快超时了,用户要求提前一天进行超时警告,那么就可以设置超时预警的相关时间。一般超时预警和触发事件结合起来进行超时预警操作,设置了超时预警后,可以在触发事件中设置提醒事件,进行相关的提醒业务操作。
- 提前:直接设置提前预警的时间,格式为"D天H小时M分钟",其中D为"0~365"范围内的整数,H为"0~23"的整数,M为"0~59"的整数。
- 从相关数据获取:相关数据的内容限定为特定格式 "D.H.M",表达的时间是"D天H小时M分钟",D、H、M的取值范围和上面一样。
- 启用邮件通知:选中此项即表明当该活动或流程达到预警时间后,采用邮件的方式通知活动的参与者或流程的启动者。默认为不选中。
注:超时预警的时间不能大于"时间限制策略"中设置的时间。
# 设置流程启动者
设置流程启动者是指配置哪些人有权限去启动一个流程,参与者是从组织机构模型中获取的。 打开流程的"流程属性设置"对话框后,单击"流程启动者"Tab页,即显示"流程启动者"设置页面,如下图所示。
如果该业务流程任意人员都可以启动,则选择"任意人员启动";如果需要对启动该业务流程的人员进行限制,则可以选择"从参与者列表获得"。参与者支持机构、角色、员工。可对参与者进行增加,删除等操作。在增加流程启动者时,需要从组织机构中获取,因此必须保证已经配置好组织机构。下图为系统默认的参与者选择对话框。
# 设置业务变量
"业务变量"可以在当前流程内所有可以使用业务变量的地方使用。"流程业务变量"的设计界面如下:
说明:
- 业务变量名称不可以重复;
- 业务变量的Xpath需要符合Xpath规范;
# 设置业务事件
业务事件的触发时机有保存、回退、终止。
业务事件选择开发的逻辑流,在保存、回退、终止时在应用端触发逻辑流调用。
# 设置业务规则
"业务规则"分为"分支规则"和"参与者规则"。设计界面如下:
# 分支规则开发
分支规则用于流程中非默认分支连线的规则条件,规则条件需要返回boolean类型,编辑界面如下:
区域 | 描述 |
---|---|
A | 基本信息区,用于设置规则的名称和基本描述信息 |
B | 资源和上下文数据展现区,用于显示当前流程可以使用的业务资源和上下文环境资源 |
C | 配置编辑区,用于实现规则条件的表达式 |
D | 符号区,提供编辑过程中可以使用的各种逻辑符号 |
E | 组织模型区,这个按钮提供当前流程可以引用的组织模型列表 |
# 参与者规则开发
参与者规则用于流程中人工活动获取参与者,规则需要可以返回一个可用的参与者,编辑界面如下:
区域 | 描述 |
---|---|
A | 基本信息区,用于设置规则的名称和基本描述信息 |
B | 资源和上下文数据展现区,用于显示当前流程可以使用的业务资源和上下文环境资源 |
C | 配置编辑区,用于实现规则条件的表达式 |
D | 累加,不选中累加时,按照优先级顺序执行到第一个值为真的条件; 选中累加时,需要执行所有条件,并将所有值为真的条件的结果返回 |
E | 符号区,提供编辑过程中可以使用的各种逻辑符号 |
F | 条件编辑,可以新增自定义条件和永真条件,可以改变选中条件的优先级,可以删除选中条件 |
G | 组织模型区,这个按钮提供当前流程可以引用的组织模型列表 |
条件编辑
用户可以根据需要添加"自定义条件"和"永真条件",
永真条件
添加永真条件
- 选中组织模型时,通过浏览可以选择多个参与者。
- 选中规则计算时,需要通过方法返回参与者,返回值应当是一个或多个参与者,而不是boolean型。
自定义条件 自定义条件可以根据自己业务需要进行编写。 添加自定义条件
更改条件优先级 提升条件优先级
降低条件优先级
# 设置活动属性
# 设置开始活动属性
# 设置基本信息
双击"开始"活动图元,弹出"开始活动设置"对话框,点击"基本"Tab页。如下图所示。
参数名称 | 参数意义 |
---|---|
活动ID | 为有意义的不带空格的英文字符串,必须以字母、""或者"$"开头,可以包含字母、数字、""、"["、"]"、"/"或者"$"。该项必填,默认为"startActivity"。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"开始"。 |
分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况。 |
描述 | 填写该活动相关的说明信息,中/英文字符,该项可以为空。 |
# 设置人工活动属性
# 置基本信息
双击"人工活动"图元,弹出"人工活动设置"对话框,选择"基本"页签。
参数名称 | 参数意义 |
---|---|
参数名称 | 参数意义 |
活动ID | 在流程定义中标识该活动的唯一ID,必须以字母、""或者"$"开头,可以包含字母、数字、""、"["、"]"、"/"或者"$",长度不超过64个英文字符,该项必填,默认为"manualActivity"。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"人工活动"。 |
分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。 |
聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动的启动条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。 |
允许代理 | 设置该活动在客户端是否可以代理,不选中"允许代理"时,表示该活动被禁止代理。在设置部分代理关系时,该活动会被过滤掉,属于不可被代理的活动范围内。 |
分割事务 | 需要将该活动与它后继的活动分属不同的事务控制时,则选中此项,默认不选中。 |
描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置参与者
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"参与者"Tab页,将显示参与者设置界面,用户可以根据需要灵活地赋予当前活动不同的参与者。
# 参与者的获取方式共包括6种:
- 参与者的获取方式设置
从参与者列表获得:选择类型单一的参与者,如个人、机构、或角色作为参与者。
流程启动者:该活动的参与者即为该流程的启动者。
业务参与者规则:可以选择参与者规则与逻辑流,具体开发规则清参考参与者规则开发文档。
引擎参与者规则:选择在流程属性中的业务规则中添加的参与者规则。
活动执行者:流程定义中的某一个人工活动的参与者作为本活动的参与者。
相关数据:活动的参与者会从相关数据中所定义的变量中获取。
# 设置表单
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"表单"Tab页,即显示表单设置页面。
该表单可以选择在线表单,URL。其中URL为自定义URL,在线表单是在构建包中创建的表单。
# 设置时间限制
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"时间限制"Tab页,即显示"时间限制"设置页面,具体设置参见"流程属性设置/时间限制"中的设置。
# 设置多工作项
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"多工作项"Tab页,即显示设置多工作项页面,如下图所示。
"启动多工作项设置"复选框默认是没有选中的,只有选中它,才可以设置多工作项的分配策略和完成规则。
多工作项必须和参与者结合起来使用,默认情况下一个人工活动的活动实例会产生一个工作项。如果启用多工作项设置,则BPS流程引擎会为该活动实例创建多个工作项。用户可以设置多工作项的个数、分配方式及完成规则。下面将对"多工作项分配策略"和"完成规则设定"这两项设置分别加以说明。
多工作项分配策略
指BPS引擎根据所设置的人工活动的参与者来分配工作项的策略。共有两种策略,只能选取其中一种。
按参与者设置个数领取工作项 根据该活动的参与者个数产生相应数量的工作项。如果参与者设置了多个,比如设置了一个人员a和设置了一个机构a作为该活动的参与者,那么参与者就是2个,如果选择了按照参与者个数领取工作项,则该活动被启动后会产生两个工作项,一个分配给人员a,另外一个分配给机构a。
按操作员个数分配工作项 根据参与者中的人员个数产生工作项,比如设置了一个人员a以及一个机构a作为该活动的参与者,该机构a下有5个人员并且这个5个人中不包含人员a,那么当该活动被启动时会产生6个工作项,这6个人都可以去领取任务。但是如果机构a下面包含人员a,则只会产生5个工作项。
按变量迭代创建工作项
根据相关数据设定的数据产生多个工作项。
- 被迭代元素:可填写相关数据的XPath,要求所表示的相关数据对象为数组或java.util.List对象。
- 迭代变量:为被迭代元素中每个迭代对象配置一个变量名。该变量名可在以下地方使用:
- 在"参与者"Tab页的"相关数据"中使用:如果在此处使用了迭代变量,则会循环每个迭代对象,并得到每个迭代对象对应的参与者,为所有计算出的参与者创建工作项。如果此处没使用迭代变量,则产生的多工作项个数等于被迭代元素的长度。
- 在"触发事件"Tab页,类型为"工作项创建后的"触发事件中使用。
顺序执行工作项
当开启顺序执行工作项后,BPS引擎每次只会创建一个工作项,等前一个工作项完成后,才会创建下一个工作项;在未开启顺序执行工作项的情况下,一次性创建所有的工作项。
完成规则设定
指在同一个人工活动实例所产生的多个工作项中,设置需要完成多少个工作项时该活动实例才完成的规则。共有三种规则,只能选取其中一种。
全部完成 当一个人工活动实例所产生的所有工作项都完成时,该活动实例才完成。
完成个数 当一个人工活动实例所产生的所有工作项中,有设定数目的工作项完成时,该活动实例才完成。
完成百分比 当一个人工活动实例所产生的所有工作项中,有设定比例的工作项完成时,该活动实例才完成。
未完成工作项自动终止
这是针对第2和第3两种完成规则的一项配置,单选"是"或"否"。
- 是:当活动实例结束时,BPS引擎对于剩余未完成的工作项做"停止"处理。
- 否:当活动实例结束时,剩余未完成的工作项仍然处于"运行"状态。此时无论是否处理这些工作项,对运行的流程实例都不会造成任何影响,只有当流程实例结束时,引擎才会将这些工作项终止 。
# 设置引擎事件
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"触发事件"Tab页,即显示"触发事件"设置页面。
- 人工活动触发时机
- 活动启动前:表示指定的事件在活动实例启动前触发,此时活动实例处于"待启动"状态,并没有工作项产生;
- 活动启动后:表示指定的事件在活动实例启动后触发;
- 活动完成前:表示指定的事件在活动实例完成前触发;
- 活动完成后:表示指定的事件在活动实例完成后触发;
- 活动恢复后:表示指定的事件在活动实例恢复某个挂起后触发;
- 活动挂起后:表示指定的事件在活动实例被挂起后触发;
- 工作项创建后:表示指定的事件在工作项被创建后触发;
- 工作项领取后:表示指定的事件在工作项被参与者领取后触发;
- 工作项取消领取后:表示指定的事件在工作项被参与者取消领取后触发;
- 工作项完成前:表示指定的事件在工作项完成之前被触发;
- 工作项完成后:表示指定的事件在工作项完成之后被触发;
- 工作项恢复后:表示指定的事件在工作项恢复某个挂起后被触发;
- 工作项挂起后:表示指定的事件在工作项被挂起后触发;
- 工作项超时后:表示指定的事件在工作项超时后触发;
- 工作项提醒后:表示指定的事件在工作项的提醒时间到来后触发。如设定的超时时间为2分钟,提醒时间为1分钟,那么从工作项被创建的那一刻开始计时,1分钟后如果工作项没有完成,所定义的事件就触发。
# 设置回退
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面。
回退是指当该活动被回退的时候会触发的动作,只有当调用BPS构件库中的backActivity方法回退到本活动的时候才触发。在人工活动、自动活动、子流程活动、EOS服务活动、REST服务活动的属性设置中均有"回退"Tab页,它们在意义和设置上基本一致,现以自动活动的"回退"设置为例进行说明。在自动活动的属性对话框中,点击"回退"Tab页,即显示如下图所示的设置界面。
回退动作表示的是当该活动被回退的时候所需要做的动作,它可以是一个EOS服务、一个逻辑流,或一个运算逻辑。
# 设置自由流
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"自由流"Tab页,即显示"自由流"设置页面,选中"设置该活动为自由活动"复选框即可进行详细设置。如下图所示。
自由流是指当一个活动完成后,不按照流程定义中的执行顺序启动后面的活动,而是根据定义为自由流的活动中定义的活动范围内指定任意的一个或多个活动执行。
自由范围设置策略
指定该活动在自由流转时的后继活动范围的策略。共有三种策略,只能选取其中的一种。现以如下的一个流程图示例来说明这三种配置的区别。
** 在该流程范围内任意自由
例如在C上设置了"在该流程范围内任意自由"即表示在流程运行到C时,执行者可以从流程中选择除开始和C之外的所有活动中的一个或若干个作为活动C的后继活动。具体包括A、B、D、E、F,以及结束。
- 在指定活动列表范围内自由 例如在C上设置了"在指定活动列表范围内自由",点击增加图标即可以选择C的后继活动,可供选择的范围是除开始和C之外的所有活动,如下图所示: 假如选择了A、B、D这3个活动,即表明流程运行到C时,执行者可以从A、B、D三个活动中选定一个或若干作为C的后继活动。
- 在后继活动范围内自由 例如在C上设置了"在后继活动范围内自由",即表明流程运行到C时,执行者可以从D、E、F和结束这4个活动中选定一个或若干作为C的后继活动。
自由流设置规则 自由流设置规则中有一个"流向的目标活动仅限于人工活动"复选框,如果选中,表明后继活动自由范围只能是人工活动,否则就包括人工活动、自动活动以及结束活动。
说明
- 若在某个人工活动上设置了"自由流",并在运行时为其指定了后继活动,那么引擎将不再按分支模式及连接线条件来决定此活动的后继活动;
- 若在某个人工活动上设置了"自由流",但在运行时该活动的执行者并没有为其指定后继活动,那么引擎仍然按分支模式及连线上的条件决定此活动的后继活动。
# 设置启动策略
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面。
启动策略表示在流程实例运行过程中,当流程实例流转至此活动时,该活动将以何种方式启动。
激活规则
直接运行:只要当前活动的前驱活动执行完,并且当前活动满足启动条件,即可转入"运行"状态。这是"启动策略"的默认配置。
待激活:当前活动的前驱活动执行完后不管当前活动是否满足启动条件,都将转入"待激活"状态。直到外界调用com.primeton.workflow.api2.IWFActivityInstApi.activateActivityInst方法才能激活该活动。
由规则逻辑返回值确定:在当前活动满足启动条件的前提下,由一个逻辑的返回值来确定是否启动该活动,一个规则逻辑的动作可以是一个服务、一个逻辑流,或一个运算逻辑。具体的设置可参见"设置人工活动属性/设置参与者"中参与者是
规则逻辑
的内容。
规定这种逻辑的返回值必须是"0"、"1"、"true"或"false"。
- 当规则逻辑的返回值是"1"或"true"时,当前活动转入"运行"状态;
- 当规则逻辑的返回值是"0"或"false"时,当前活动转入"待激活"状态。
重新启动规则
针对"人工活动"除了可以设置启动规则以外,还可设置"重新启动规则",是指当活动被重新启动时会根据规则进行的一些操作。
- 最初参与者:人工活动实例发生"重启"时,该活动实例所对应的工作项以它首次被启动时的参与者作为新的参与者。
- 最终参与者:人工活动实例发生"重启"时,该活动实例所对应的工作项以最近一次执行该活动的执行者作为本次重启的参与者。
- 重新设置URL:选中此项表明,人工活动实例发生"重启"后,在执行活动实例对应的工作项时,可以重新指定URL。默认不选中。
- URL类型:URL的类型,目前版本只包括"其它"一种情况。
- 调用URL:根据URL类型,输入或单击"浏览"按钮从流程定义所在项目中选择要调用的URL。
说明:
重新启动是将已经运行过的最近的活动实例和该活动实例对应的工作项重新启动,通过调用方法com.primeton.workflow.api2.IWFActivityInstApi.activateActivityInst进行重启,不会增加新的活动实例或工作项。
# 设置业务事件
参考流程属性中的业务事件设置。
# 设置操作权限
流程处理页面按钮等权限是通过操作权限来设置的,与BFP页面相同。
# 设置通知
设置人工活动通知事件,和AFC中设置环节业务配置一致。支持对应渠道给参与者发送消息信息。该事件触发时机为当前环节启动后。
所选渠道对应模板由ACF中消息模板创建。
# 设置自动活动属性
# 设置基本信息
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"基本"Tab页。如下图所示。
参数名称 | 参数意义 |
---|---|
活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID一致。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"自动活动"。 |
分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。 |
聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
结束方式 | 有"自动"和"人工"两种方式,默认为"自动"。"自动"指的是执行完动作后,BPS引擎自动结束该活动;"人工"指的是执行完动作后,等待外部调用来结束该活动。 |
分割事务 | 需要将该活动与它后继的活动分属不同的事务时,则选中此项,默认不选中。 |
描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置应用配置
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"应用配置"页签,如下图所示。
应用配置的实现有"赋值"、"逻辑流"和"运算逻辑"。
- 选择实现为"赋值"时: 赋值配置表中包含"变量类别"、"变量"、"值"、"值类型"这4部分信息,表中的每项赋值操作值将赋给变量。 下表是对它们的说明:
名称 | 说明 |
---|---|
变量类别 | 变值类型有业务变量和相关数据两种 |
变量 | 填写变量内容,类型为业务变量时,可双击输入区打开业务变量选择对话框进行选择 |
值 | 填写值内容,类型为业务变量时,可双击输入区打开业务变量选择对话框进行选择 |
值类型 | 右值的类别,类别有常量、业务变量、相关数据三种 |
- 选择实现为"逻辑流"时: 需要配置动作、参数,如下表所示。
配置项 | 配置说明 |
---|---|
动作 | 选择一个定义好的逻辑流,可以编辑动作的url,用于添加应用。 |
参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- 选择实现为"运算逻辑"时: 需要配置动作、参数,如下表所示。
配置项 | 配置说明 |
---|---|
动作 | 选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。 |
参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
# 设置高级配置
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"高级设置"选项卡,如下图所示。
# 异常处理策略
在执行"应用配置"的动作的过程中发生异常时,所采取的一种处理策略。共分6种策略,根据业务需要选择其中的一种。
回滚异常 自动活动配置的逻辑出错直接回滚异常,回滚到上个事务分割点。
忽略异常 自动活动配置的逻辑出错忽略异常,自动活动完成,继续执行后继动作。默认配置。
进入异常状态,等待人工干预 自动活动出错进入异常状态不继续流转;用户可以在管理监控端的"流程实例管理/活动实例监控/应用异常处理"页面,选择执行"重新启动活动"、"单步回退,并且终止当前活动",或"路由到其它活动,并且终止当前活动"。
自动执行单步回退,活动终止 自动活动出错,直接执行单步回退,回退到上个节点,当前自动活动终止。
自动路由到其它活动,活动终止 自动活动出错,直接根据配置跳转到下一个活动,当前自动活动终止。通过点击<浏览>按钮选择跳转的活动,如下图所示。
# 设置引擎事件
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"触发事件"Tab页,即显示"触发事件"设置页面。
- 自动活动/子流程触发时机
- 活动启动前:表示指定的事件在活动实例启动前触发;
- 活动启动后:表示指定的事件在活动实例启动后触发;
- 活动完成前:表示指定的事件在活动实例完成前触发;
- 活动完成后:表示指定的事件在活动实例完成后触发;
- 活动恢复后:表示指定的事件在活动实例恢复某个挂起后触发;
- 活动挂起后:表示指定的事件在活动实例被挂起后触发。
# 设置回退(自动活动)
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面,具体设置参见人工活动的回退设置。
# 设置启动策略(自动活动)
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见人工活动的启动策略。
# 设置子流程活动属性
# 设置基本信息(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"基本"Tab页。如下图所示。
参数名称 | 参数意义 |
---|---|
活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID一致。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"子流程"。 |
分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。 |
聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。 |
分割事务 | 需要将该活动与它后继的活动分属不同的事务时,则选中此项,默认不选中。 |
描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置子流程参数
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"子流程参数"Tab页。如下图所示。
参数名称 | 参数意义 |
---|---|
调用方式 | 子流程的调用方式分为"同步"和"异步"方式,默认为"同步",根据实际业务需要来选择。它们各自的含义如下:同步:以"同步"的方式调用子流程,等待子流程运行完成后,该子流程活动才结束;异步:以"异步"的方式调用子流程,当前活动在子流程启动后就结束,而无需等待子流程运行完成。 |
子流程 | 设置子流程。 |
参数配置表 | 子流程一经确定,子流程中的"流程参数"就会显示在"参数配置表"中,如果回填相关数据被选中,表示调用运算逻辑后的相关参数以及返回值将加入到相关数据中去。 |
# 设置引擎事件(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"触发事件"Tab页,即显示"触发事件"设置页面,具体参考设置人工活动中触发事件。
# 设置多子流程策略
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"多子流程策略"Tab页。如下图所示。
多子流程指的是流程引擎可以根据相关数据设定的数据产生多个子流程。选中"启用多子流程设置"复选框时,才能进行多子流程的配置,默认未选中。
- 迭代变量:为被迭代元素中每个迭代对象配置一个变量名,该变量名可配置在"子流程参数"中传入到子流程中去。
- 被迭代元素:流程相关数据区中存放的一个迭代,迭代长度等于所产生的子流程实例的个数。
# 设置回退(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面,具体设置参见人工活动的设置回退。
# 设置启动策略(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见人工活动中的设置启动策略。
# 设置路由活动属性
路由活动不会进行任何业务处理,只是起到活动与活动之间的路由作用。
# 设置基本信息(路由活动)
双击"路由活动"图元,弹出"路由活动属性设置"对话框,显示"基本"Tab页,如下图所示。
参数名称 | 参数意义 |
---|---|
参数名称 | 参数意义 |
活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID一致。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"路由活动"。 |
分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。 |
聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。 |
描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置EOS服务活动属性
EOS服务活动图元用于调用一个外部OS服务的接口。接口的输入参数和返回值支持SDO数据格式,即对于输入参数可以传入一个DataObject对象,或者DataObject的Xpath(如:order/orderID),或一个基本类型变量,返回值则可以得到的是一个DataObject对象或一个基本类型。支持多返回值。
# 设置基本信息(EOS服务活动)
双击"EOS服务活动"图元,选择"基本"页签,具体设置请参见自动活动的设置基本信息。
# 配置EOS服务参数
双击"EOS服务活动"图元,选择"EOS服务参数"属性页,如下图所示。
其参数说明如下:
输入/配置项 | 输入/编辑方式 | 数据范围 | 规则 |
---|---|---|---|
EOS服务 | 文件选择框 | 选择EOS服务(在线、离线) | 选择EOSService文件后,会自动填充EOS服务文本框,为选中文件中的方法路径; |
URL | 文本输入框 | 一个规范的http URL | 远程调用EOS服务的调用地址,根据服务器信息修改ip、port的变量值。 |
参数配置表 | “名称”、“数据类型”、“传参类型”;“值”、“值类型”可修改 | 传参类型为BODY。 |
# 高级设置(EOS服务活动)
双击"EOS服务活动"图元,选择"高级设置"页签,具体设置请参见自动活动的设置高级配置。
# 设置引擎事件(EOS服务活动)
双击"EOS服务活动"图元,选择"引擎事件"页签,具体设置请参见人工活动的的引擎事件配置。
# 设置回退(EOS服务活动)
双击"EOS服务活动"图元,选择"回退"页签,具体设置请参见人工活动的的回退配置。
# 设置启动策略(EOS服务活动)
双击"EOS服务活动"图元,选择"启动策略"页签,具体设置请参见人工活动的的启动策略配置。
# 设置REST服务活动属性
REST服务活动图元用于调用一个外部Rest服务的接口。接口的输入参数和返回值支持SDO数据格式,即对于输入参数可以传入一个DataObject对象,或者DataObject的Xpath(如:order/orderID),或一个基本类型变量,返回值则可以得到的是一个DataObject对象或一个基本类型。仅支持单个返回值,可以将返回值封装为ResponseEntity对象。
# 设置基本信息(REST服务活动)
双击"REST服务活动"图元,选择"基本"页签,具体设置请参见自动活动的基本属性设置。
# 配置REST服务参数(REST服务活动)
其参数说明如下:
输入/配置项 | 输入/编辑方式 | 数据范围 | 规则 |
---|---|---|---|
远程URL | 文本输入框 | 一个规范的http URL | 支持路径变量。URL路径可以使用应用名称,例如:http://SERVICE-PROVIDER:8080/api/user/getName/ (opens new window){id}。其中,应用名称SERVICE-PROVIDER对应项目下application.properties中的spring.application.name (opens new window)配置值,即为务提供者在注册中心上的应用名。 |
Http Method | 下拉框选择 | 选择远程服务调用的方法。 | 可选内容:PUT,GET,DELETE,HEAD,OPTIONS,POST。 |
参数配置表 | “名称”、“值”可编辑”,“数据类型”、“传参类型”、“值类型”可选择 | 传参类型为下拉框,选项有:URL、HEADER、BODY、QUERY、MULTI_BODY。 | 其中"URI"类型,同时支持Path上的变量和Query的变量, 如: http://SERVICE-PROVIDER:8082/say-hi/ (opens new window){name}?pp={name}。 |
# 高级设置(REST服务活动)
双击"REST服务活动"图元,选择"高级设置"页签,具体设置请参见自动活动的高级设置配置。
# 设置引擎事件(REST服务活动)
双击"REST服务活动"图元,选择"引擎事件"页签,具体设置请参见人工活动的引擎事件配置。
# 设置回退(REST服务活动)
双击"REST服务活动"图元,选择"回退"页签,具体设置请参见人工活动的回退配置。
双击"REST服务活动"图元,选择"回退"页签,具体设置请参见"流程和活动通用属性"的设置回退 (opens new window)。
# 设置启动策略(REST服务活动)
双击"REST服务活动"图元,选择"启动策略"页签,具体设置请参见人工活动的启动策略配置。
# 设置结束活动属性
一个流程有且只有一个结束活动,结束活动完成后,代表流程实例完成。
# 设置基本信息(结束活动)
双击"结束活动"图元,弹出"结束活动属性设置"对话框,点击"基本"Tab页。如下图所示。
参数名称 | 参数意义 |
---|---|
活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID一致,默认为"finishActivity"。 |
活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"结束"。 |
聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。 |
描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置连接线属性
双击流程编辑器中的一根连接线,弹出连接线的属性窗口,如下图所示。
参数名称 | 参数意义 |
---|---|
显示名称 | 连接线在流程图中显示的名称。 |
优先级 | 该连接线被实例化的优先级别,从高到低依次分为高、次高、中、次中、低、次低6个级别。当活动的分支模式为"单一分支",而该活动引出的若干分支的判断条件都满足的情况下,系统将以连接线的优先级级别的高低来判断该执行哪个活动。 |
是否为默认连线 | 选中此项即表明该连接线是默认连接线,表达式不可编辑。一个活动后如果引出多条连接线,则只能有一条为默认,其它均是有判断条件的连接线。非默认连接线用"*"标注。当所有的判断条件均不满足时,业务流程会走默认连接线。 |
简单表达式 | 利用一些常用的比较操作来进行条件判断的表达式。 |
分支规则 | 利用当前流程中所定义的分支规则来进行条件判断。 |
简单表达式各部分说明:
设置项 | 描述 | 备注 |
---|---|---|
左值 | 表达式中比较操作符左边的部分。 | 流程相关数据以及流程的内置变量都可以作为左值比较对象。 |
比较操作符 | 表达式中用来表述左值和右值关系的部分。常用的有"=="、">"、"<"等。 | 根据实际情况在下拉列表中选择。 |
右值 | 表达式中比较操作符右边的部分。 | 分为"常量"和"变量"两种。常量:可以是字符串、数字等。变量:流程相关数据以及流程的内置变量都可以作为右值比较对。 |
右值类别 | 右值的类型,分为常量、业务变量和相关数据"两种。 | 如果是"常量"则代表设置项"右值"的内容就是一个常量 |