# 流程资源
# 导出流程部署包
# 功能描述
流程部署包是包含有业务流程及业务资源的可部署压缩包,以par为扩展名;.par文件结构图如下:
说明
JAR构建包是所有包含业务流程的构件包,可能存在多个。
部署包里构件包中的文件全部是编译后的文件,如果需要导出的构件包有编译错误,则不允许导出。
# 操作步骤
在"项目资源管理器"视图中,单击鼠标右键,选择[导出]快捷菜单项。
系统弹出[导出]向导,在"EOS"列表框中选择"导出流程部署包",如下图所示。
点击<下一步>按钮,系统显示"导出流程"对话框,如下图所示。
选择用来导出的工程、导出的par包存放的位置,在业务资源树上选择要导出到par包中的流程。
说明
"导出部署包"向导页介绍:
可填写相对路径也可以选择绝对路径用于部署包的存放目录,在对话框中的信息描述框中会显示导出部署包的绝对路径;
在"工程"下拉框中可以选择工作空间中的其他工程进行导出,但每次只能导出一个工程的部署包;
默认选中在项目资源管理器中点击<导出>按钮时选择的节点下的资源以及属于此节点的子资源,也可以重新选择需要导出的补丁文件;
编译出错的文件不允许导出。
点击<下一步>按钮,系统显示"导出业务资源"对话框,如下图所示。
说明
选中要导出的流程后,所有和该流程直接或间接相关的业务资源都会被默认选中导出。
选择要导出到par包中的业务资源,点击<完成>按钮,即可导出流程部署包到指定路径下。
# "导出BPS部署包"向导参数配置说明
| 参数 | 如何理解 | 如何设置 |
| :----------------- | :----------------------------------------- | :----------------------------------------------------------- |
| 参数 | 如何理解 | 如何设置 |
| 工程 | 要导出的流程部署包所在的项目 | 从下拉列表框中选择。 |
| 请选择要导出的内容 | 要导出的构件包及构件包中的文件 | 从下拉列表框中选择。说明在选择好项目后,"请选择要导出的内容"列表框中会列出该项目中的所有可导出文件。 |
| 导出到 | 导出的流程部署包的目标存放路径及压缩文件名 | 从下拉列表框中选择或浏览选择。 举例:F:\work\2.par说明可单击<浏览>按钮选择存放目录及文件名,导出的BPS部署包以"par"文件形式存在。 |
说明
任意选择项目资源树的一个节点进行导出部署包时,将会默认选择此节点和此节点对应的子节点资源。
导出的par默认是在本项目下以项目名称命名的以par为扩展名的压缩包。
# 导入流程部署包
# 功能描述
导入流程部署包是将BPS或Platform导出的部署包中的流程文件作为源文件导入到BPS项目中。如果是导入Platform的部署包,则会过滤掉其它文件,只导入流程文件。
# 操作步骤
在"项目资源管理器"视图中选择目标项目节点,点击鼠标右键,选择[导入]快捷菜单项。
系统弹出"导入"向导,如下图所示。
在"EOS"列表框中选择"导入流程部署包",点击<下一步>按钮,系统显示"导入流程"对话框,如下图所示。
选择要导入的部署包,可以选择是否覆盖同名流程和业务资源而不警告,完成后会显示流程资源目录树,选择要导入的流程,如下图所示。
注意
BPS项目没有定义业务资源,生成的PAR包中不包含业务资源定义文件,因此,对BPS导出的部署包,在导入初始化界面上,PAR包中的所有流程都会显示在业务资源树上的默认业务目录下。
导入完成后会和默认业务目录相关联。
说明
"导入流程部署包"向导页介绍:
可以从本地文件选择par格式的部署包文件,并且只能选择par文件。
选择流程部署包后会以资源树的方式展示流程部署包的结构目录,点选根结点"/"可以全选/全不选所有文件。
默认不选中任何文件。
目标默认为在资源管理器中点击<导入>按钮时选择的项目。
注意:必须有单独的源文件夹,或以项目根文件夹为源文件夹。
勾选左下方"覆盖同名流程和业务资源而不警告"复选框,则提取的流程和业务资源文件将对本地相同名称的文件进行覆盖更新,取消勾选则默认只将项目中不存在的流程和业务资源更新到本地,对本地已经存在的流程资源不进行覆盖更新操作。
点击<下一步>,进入"导入业务资源"向导,选择要导入的业务资源,点击<完成>,将部署包中所选中的资源导入到目标项目中。
# "导入流程部署包"向导参数配置说明
| 参数 | 如何理解 | 如何设置 |
| :----------------- | :----------------------- | :----------------------------------------------------------- |
| PAR部署包 | 选择要导入的流程部署包 | 从弹出的资源选择器中选择。 |
| 请选择要导入的内容 | 要导入的流程 | 从资源树上选择。说明在选择好待导入部署包后,列表框中会列出该包中的所有可导入文件。 |
| 源码目录 | 导入的流程文件存放的项目 | 浏览选择。说明可单击<浏览>按钮选择存放目录,必须在源文件夹下。 |
# 导出多租户流程部署包
# 功能描述
流程部署包是包含有业务流程及业务资源的可部署压缩包,以par为扩展名;多租户流程部署包的.par文件结构和流程部署包结构一致,具体参考流程部署包 (opens new window)。
说明
在导出的多租户流程部署包中,在exf/META-INF目录下存在primeton_tenant.token文件,在此多租户流程部署包导入的时候,根据此primeton_tenant.token文件记录的信息导入到特定的租户下
在导出多租户流程部署包的时候,需要先将租户令牌文件primeton_tenant.token放入到导出项目的根目录下,租户令牌文件需要管理员从workspace中下载。
# 操作步骤
多租户流程部署包导出的操作步骤和流程部署包操作步骤一致,具体参考导出流程部署包 (opens new window)。
在第二步中,显示"导出流程"对话框,会出现勾选是否导出租户令牌的复选框,如下图所示。
如果勾选了导出租户令牌复选框,则必须将primeton_tenant.token文件放到导出项目的根目录下,否则会提示错误,不让导出。
其他的配置信息,和导出流程部署包一致,具体参考导出流程部署包 (opens new window)。
# 流程设计器
# 创建项目
# 开发步骤
在资源管理器中右键单击空白处,在弹出的菜单中选择"创建->EOS项目",弹出"新建EOS项目"窗口,如下图所示。
说明
打开新建项目向导有3种方式(主菜单方式、工具栏方式、资源管理器视图方式),具体请参见《BPS产品介绍》中的"使用参考\新建\创建BPS项目\打开创建项目向导"。这里使用资源管理器视图方式。
选中"后端项目",单击<下一步>按钮,填入相应的项目名称、GroupId、ArtifactId、版本、创建SPI构件包,选中引入BPS引擎复选框,如下图所示。
单击<完成>按钮,该BPS流程项目即创建完毕。在资源管理器中生成了一个新项目,结构如下图所示。
# 创建BPS流程
# 操作步骤
BPS Studio环境中,右键单击impl构件包、源码目录、包目录、逻辑构件,在弹出的菜单中选择"新建->BPS流程",进入"创建BPS流程向导"界面,如下图所示:
在新建过程中增加了"业务目录"配置,用户可以通过点击"浏览"按钮,选择业务目录。
说明
- 新建的流程将与选中的业务目录绑定,业务目录与流程是1对多的关系。
# 添加活动
# 操作步骤
拖拽图元方式
打开一个流程,在流程编辑器中有一个选用板,选用板中罗列了可以在流程中添加的活动,包括:"开始"、"结束"、"自动活动"、"人工活动"、"子流程"、"路由活动"、"EOS服务活动"、"REST服务活动"。
一般我们要在流程中添加一个活动可按如下方式操作:在选用板中点击选中需要添加的活动图元,拖动到流程编辑区中释放鼠标,图元就自动放置到流程编辑区中了。如下图所示。
说明
由于在新建业务流程时,"开始图元"和"结束图元"默认已经生成,所以一般情况下无需拖拽这两个图元,并且在一个流程当中"开始图元"和"结束图元"都有且仅有一个,不能重复拖拽。
拖曳构件方式
除直接拖拽图元外,BPS Studio还提供了如下一些较为特殊的添加活动的方法,即将某些资源视图或构件视图中的构件直接拖拽到编辑器中变成活动图元。具体的一些对应关系如下表所示:
| 资源文件 | 对应流程编辑器中图元 |
| :------- | :------------------- |
| Java方法 | 自动活动 |
| 流程文件 | 子流程 |
# 添加连接线
# 操作步骤
如上图所示,添加一条连接线可以分为如下步骤:
单击"选用板"视图中的"连接线"图元(鼠标图形变为 ),如图中A所示;
将鼠标移入编辑器视图区,单击连接线的起始节点和终止节点,如图中B、C所示;
鼠标图形仍为 状态时,可连续连接起始节点和终止节点。
连线完成后,鼠标单击编辑器视图的空白区,鼠标图形还原为
停止使用连接线,如需重新使用连接线,重复前面3个步骤。
说明
上述步骤1也可以使用快捷键"C":按下"C"鼠标图形也变为 ,然后继续步骤2~4。
# 添加注释
# 操作步骤
如上图所示,为流程添加注释只需要将"选用板"中的"注释"图元拖拽到流程编辑器中即生成注释框。双击编辑器中的注释框,即可对它进行编辑。
# 设置流程属性
# 功能描述
创建完一个BPS流程后,需要对该流程进行属性设置。在流程编辑器中打开业务流程后,双击流程编辑器的空白处,弹出"BPS流程属性设置"对话框。"BPS流程属性设置"对话框共有9个Tab页,分别为"基本"、"相关数据"、"流程参数"、"触发事件"、"时间限制"、"流程启动者"、"业务变量"、"业务规则"、"扩展"。下面将分别介绍这9部分内容如何设置。
# 设置流程基本信息
双击流程编辑器中的空白处,弹出"BPS流程属性设置"对话框,如下图所示:
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 显示名称 | 默认为创建业务流程时的文件名,是BPS管理监控界面中左边树节点显示名称,可以根据需要修改。 如上图中中文名称为"测试流程",则BPS管理监控中的显示如下图所示。 |
| 作者 | 默认为创建业务流程时的作者,在文档生成功能中根据作者统计就是指本处设置的作者,可以根据需要修改。 |
| 部门 | 作者所在的部门,根据实际情况填写。 |
| 分割事务 | 分割事务是指流程级操作与第一个活动的操作事务分开,比如在启动流程后会启动第一个活动,假设第一个活动启动出错,流程也会处于启动状态。本项默认"不选中"。 |
| 长流程 | 选中复选框为"长流程",否则为"短流程"。默认值为"长流程"。注意BPS中,短流程不能包含人工活动,其他配置特性和长流程相同。 |
| 描述 | 对该业务流程的描述,中英文字符,长度为"0~1000"。 |
# 流程级日历定义
安装了业务资源组件的BPS Studio提供日历定义,在流程属性当中定义的日历可以在时间限制配置页通过选择"流程日历"使用当前配置的流程日历。
"流程日历"可选项有:
| 日历名称 | 日历含义 |
| :------- | :----------------------------------------------------------- |
| 7×24小时 | 用于兼容6.0版本流程的日历,时间以每周7天乘每天24小时设计,当导入6.0版本流程时,打开流程属性配置页时默认选中"7×24小时",打开流程属性编辑器,默认选中"默认流程"。 |
| 默认日历 | 系统中的默认日历,具有唯一性。 |
| 其他 | 其他指的是用户编辑业务资源时,全局业务目录当中包含的日历列表。 |
# 设置流程相关数据
打开流程的"BPS流程属性设置"对话框后,单击"相关数据"Tab页,即显示"相关数据"设置页面,如下图所示。
相关数据包含"名称"、"数据类型"、"数组"、"初始值"、"描述"这5部分信息,下表是对它们的说明:
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 名称 | 所定义的变量的名称或路径(针对类型org.w3c.dom.Node),默认为"var#",其中"#"表示的是从1开始的自然数系列。 |
| 数据类型 | BPS Studio当中支持各种Java类型,支持java.lang.Object以及对应的子类。如果变量为Java类型,需要提供默认的无参构造函数。如下图所示: DataObject数据类型的定义。符合SDO规范的数据定义所产生的Java对象 数组 以上各种数据类型的数组,仅支持一维数组。 |
| 数组 | 该变量为数组时选中此项,默认"不选中"。 |
| 初始值 | 设置该变量的初始值,根据需要来设置,可以为空。 |
| 描述 | 对该变量的描述,中/英文字符串,可以为空。 |
# 设置流程参数
打开流程的"BPS流程属性设置"对话框后,单击"流程参数"Tab页,即显示"流程参数"设置页面,如下图所示。
在参数配置表格的右上角的图标分别对应"增加参数"、"增加返回值"、"上移"、"下移"、"删除"操作。每一个参数包含"类型"、"名称"、"数据类型"、"数组"、"描述"这5部分信息,下表是对它们的说明:
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 类型 | 该参数的类型,分"参数"和"返回值"两种类型。 |
| 名称 | 该参数的名称,"参数"的名称默认为"param#",返回值默认为"out#",其中"#"表示的是从1开始的自然数递增系列。注意此处设置的参数必须在相关数据 (opens new window)中有定义,否则会报编译错误。 |
| 数据类型 | 参见相关数据的数据类型 (opens new window)。 |
| 数组 | 该变量为数组时选中此项,默认不选中。 |
| 描述 | 对该变量的描述,中/英文字符串,可以为空。 |
# 设置流程触发事件
打开流程的"BPS流程属性设置"对话框后,单击"触发事件"Tab页,即显示"触发事件"设置页面。
流程触发事件是指流程级别操作的触发事件,包含序号、触发时机、事件动作、调用方式、事务策略、异常处理、描述几个属性,具体设置参见"设置触发事件"中的流程的触发事件 (opens new window)。
# 设置流程时间限制
流程时间限制是指设置整个流程完成的时间限制以及设置在完成之前某时间内进行提醒的时间限制。
打开流程的"BPS流程属性设置"对话框后,单击"时间限制"Tab页,即显示"时间限制"设置页面,具体设置参见"流程/活动通用属性"中的设置时间限制 (opens new window)。
# 设置流程启动者
设置流程启动者是指配置哪些人有权限去启动一个流程,参与者是从组织机构模型中获取的。
打开流程的"BPS流程属性设置"对话框后,单击"流程启动者"Tab页,即显示"流程启动者"设置页面,如下图所示。
如果该业务流程任意人员都可以启动,则选择"任意人员启动";如果需要对启动该业务流程的人员进行限制,则可以选择"从参与者列表获得"。可对参与者进行增加,删除等操作。在增加流程启动者时,需要从组织机构中获取,因此必须保证已经配置好组织机构。下图为系统默认的参与者选择对话框。
# 设置流程级业务变量
BPS Studio提供开发目录级业务变量 (opens new window)和流程级业务变量,"流程业务变量"可以在当前流程内所有可以使用业务变量的地方使用。"流程业务变量"的设计界面如下:
说明
业务变量名称不可以重复;
业务变量的Xpath需要符合Xpath规范;
Studio提供Xpath的代码提示,可以提示当前流程中相关数据定义过的变量;
业务变量的使用请参考目录级业务变量 (opens new window)。
# 设置流程级业务规则
BPS Studio提供开发目录级业务规则(目录级分支规则开发 (opens new window)和目录级参与者规则开发 (opens new window))和流程级业务规则(流程级分支规则开发 (opens new window)和流程级参与者规则开发 (opens new window)),"流程业务规则"同样分为"分支规则"和"参与者规则"。
"流程业务规则"的设计界面如下:
# 分支规则开发
分支规则用于流程中非默认分支连线的规则条件,规则条件需要返回boolean类型,编辑界面如下:
| 区域 | 描述 |
| :--- | :----------------------------------------------------------- |
| A | 基本信息区,用于设置规则的名称和基本描述信息 |
| B | 选择区,用于选择脚本的配置方式 |
| C | 资源和上下文数据展现区,用于显示当前流程可以使用的业务资源和上下文环境资源 |
| D | 配置编辑区,用于实现规则条件的表达式 |
| E | 符号区,提供编辑过程中可以使用的各种逻辑符号 |
| F | 组织模型区,这个按钮提供当前流程可以引用的组织模型列表 |
| G | Groovy编辑区,用于编写Groovy规则的脚本 |
| H | 操作区,用于对编写的Groovy脚本进行操作 |
# 编辑规则配置时的注意事项
业务资源
业务资源视图显示了当前规则可以使用到的业务操作和业务变量,用户可以通过双击业务资源树上的节点设置业务资源,双击后业务资源显示在规则编辑区域光标所在位置。
范围:
- 可用业务操作条件:
使用范围设置为分支规则的业务操作;
全局业务目录下的业务操作;
规则所在目录及递归父目录下的业务操作(流程级规则根据流程所在业务目录决定)。
- 可用业务变量条件:
规则所在目录及递归父目录下的业务变量(流程级规则根据流程所在业务目录决定);
流程级业务变量。
格式:
全局目录下的业务操作显示为:@G.业务操作名称()
领域级业务变量显示为:【父目录名称的关键路径.业务变量名称】
领域级业务操作显示为:【父目录名称的关键路径.业务操作名称】
流程级业务变量显示为:【PROC:业务变量名称】
业务操作需要传入参数时,可以在业务操作表达式后面的括号里添加所需的参数,参数可以是一个表达式。
上下文环境
上下文环境显示当前流程可以使用的上下文环境数据,双击上下文环境数据节点,在规则编辑区域光标所在位置显示选中的上下文数据,格式为:『数据名称』
组织模型
点击<组织模型>按钮,弹出组织模型选择对话框:
选择需要的组织模型(可以多选),点击<完成>后在规则编辑区域光标所在位置显示选中的组织模型的ID列表,格式为:"参与者ID|参与者ID|参与者ID"
条件表达式
单击符号区的条件符号,可以在在规则编辑区域光标所在位置显示选中的条件符号。
手写输入
所有的手写输入只有在点击完成后的格式相同时方能正确显示。
# 编辑规则时的注意事项
编写Groovy规则
点击<编辑规则>按钮,弹出Groovy编辑框,可在编辑框区域编写脚本。
脚本校验
点击<验证规则>按钮,可以对已编写的Groovy脚本进行规则验证,弹出框返回校验结果。
# 参与者规则开发
参与者规则用于流程中人工活动获取参与者,规则需要可以返回一个可用的参与者,编辑界面如下:
| 区域 | 描述 |
| :--- | :----------------------------------------------------------- |
| A | 基本信息区,用于设置规则的名称和基本描述信息 |
| B | 选择区,用于选择脚本的配置方式 |
| C | 资源和上下文数据展现区,用于显示当前流程可以使用的业务资源和上下文环境资源 |
| D | 配置编辑区,用于实现规则条件的表达式 |
| E | 符号区,提供编辑过程中可以使用的各种逻辑符号 |
| F | 组织模型区,这个按钮提供当前流程可以引用的组织模型列表 |
| G | 条件编辑,可以新增自定义条件和永真条件,可以改变选中条件的优先级,可以删除选中条件 |
| H | 累加,不选中累加时,按照优先级顺序执行到第一个值为真的条件; 选中累加时,需要执行所有条件,并将所有值为真的条件的结果返回 |
| I | Groovy编辑区,用于编写Groovy规则的脚本 |
| J | 操作区,用于对编写的Groov |
条件的基本操作参考分支规则编辑 (opens new window)。
条件编辑
用户可以根据需要添加"自定义条件"和"永真条件",
永真条件
添加永真条件
选中组织模型时,通过浏览可以选择多个参与者,格式为:
{role:rolea:rolea},{organization:10000:company},{role:rolec:rolec}
选中规则计算时,需要通过方法返回参与者,设置参考分支规则条件 (opens new window)设置,只是返回值应当是一个或多个参与者,而不是boolean型。
自定义条件
自定义条件的"如果"参考分支规则条件 (opens new window)设置;"那么"参考永真条件 (opens new window)设置。
添加自定义条件
更改条件优先级
提升条件优先级
降低条件优先级
# 设置流程扩展属性
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置活动属性
# 设置开始活动属性
# 设置基本信息
双击"开始"活动图元,弹出"开始活动设置"对话框,点击"基本"Tab页。如下图所示。
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 活动ID | 为有意义的不带空格的英文字符串,必须以字母、""或者"$"开头,可以包含字母、数字、""、"["、"]"、"/"或者"$"。该项必填,默认为"startActivity"。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"开始"。 |
| 分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况。 |
| 描述 | 填写该活动相关的说明信息,中/英文字符,该项可以为空。 |
# 设置启动表单
双击"开始"活动图元,弹出"开始活动设置"对话框,点击"启动表单"Tab页。显示如下图:
启动表单是用于流程启动者在启动流程之前所填写的表单,在需要的时候进行设置。下表对如何进行表单的参数配置加以说明:
| 参数名称 | 参数意义 |
| :----------- | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 显示名称 | 执行表单时,每一数据项显示的名称,中/英文字符,默认为"字段#",其中"#"表示的是从1开始的自然数序列,该项必填。 |
| 来源 | 可选项为"业务变量"、"相关数据",选择业务变量时右面一列通过双击text框选择业务变量,选择相关数据时与相关数据设置相同(提供代码提示功能),该项必填 |
| 名称/path | 参照"来源"描述,该项必填 |
| 相关数据路径 | 数据项存放在相关数据区中的路径,该项必填。 |
| 类型 | 表示该数据项的Html的控件类型,有字符串、长字符串、编号、布尔型、日期、电子邮件、用户、选项列表、单选钮列表9种类型。可根据实际情况选择。 |
| 是否必需 | 表示该数据项在客户端执行提交时是否必填,选中后,在客户端填写表单时,页面上会用"*"提示用户此数据项必须填写。默认未选中。 |
| 默认值 | 表示该数据项在客户端表单显示时的初始值。 |
| 访问方法 | 有"只读"和"读写"两种方法,"只读"表示该数据项在客户端中不可被修改,只能读取显示;而"读写"表示该数据项在客户端中不仅可读取显示,也可被修改。 |
| 描述 | 对该数据项的文字描述,中/英文字符,长度为"0~200"。 |
# 设置扩展属性
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置人工活动属性
# 置基本信息
双击"人工活动"图元,弹出"人工活动设置"对话框,选择"基本"页签。
| 参数名称 | 参数意义 |
| :------------------ | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 活动ID | 在流程定义中标识该活动的唯一ID,必须以字母、""或者"$"开头,可以包含字母、数字、""、"["、"]"、"/"或者"$",长度不超过64个英文字符,该项必填,默认为"manualActivity"。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"人工活动"。 |
| 分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。具体用法可参见《入门学习》中的"业务概念\分支模式"。 |
| 聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动的启动条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
| 允许代理 | 设置该活动在客户端是否可以代理,不选中"允许代理"时,表示该活动被禁止代理。在设置部分代理关系时,该活动会被过滤掉,属于不可被代理的活动范围内。 |
| 分割事务 | 需要将该活动与它后继的活动分属不同的事务控制时,则选中此项,默认不选中。 |
| 描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
| 默认URL | 流程实例运行到此活动时会跳转到默认URL。 |
| 人工任务 | 当设置了人工任务后,流程实例运行到此活动时会执行人工任务。 |
| 技术手段:自定义URL | 自定义URL相当于下面的"URL类型"与"调用URL"的合并,请参照"URL类型"和"调用URL"。 |
| 自定义URL | 流程实例运行到此活动时会跳转到指定的URL处,需要时选中此项。 |
| URL类型 | URL的类型,当前版本只有"其他..."一种情况。 |
| 调用URL | 根据URL类型,输入或单击<浏览>按钮从流程定义所在项目中选择要调用的URL。 |
# 设置参与者
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"参与者"Tab页,将显示参与者设置界面,用户可以根据需要灵活地赋予当前活动不同的参与者。
# BPS安装了业务组件的Studio的界面
# 参与者的获取方式共包括6种:
业务手段设置(4种)
技术手段设置(2种)
# 从参与者列表获得
选择组织机构中的一个或者多个参与者作为人工活动的参与者。点击增加图标,会弹出"选择参与者资源"对话框,如下图所示。
"选择参与者资源"对话框中,参与者可以分为"简单参与者"和"复杂参与者"两种类型,可以根据实际情况选择其中一种类型。
简单参与者:选择类型单一的参与者,如个人、机构、或角色作为参与者;
复杂参与者:选择岗位作为参与者,这个岗位可以是真实存在的组织模型中的岗位,也可以是由一个角色加上一个机构的交集组成的虚拟岗位。
复杂参与者的设置可以设置为常量,如想用角色ID为rolea和机构号为100的交集,那么设置参与者ID为@{rolea}{100};
如果采用变量方式设置参与者,那么在启动该活动之前必须在相关数据中设置该变量的值。假设变量roleID代表某角色,变量orgID代表某机构,那么设置参与者ID为 {roleID}{@orgID}。
说明
如果选中"是否允许前驱活动根据如上参与者列表指派活动的参与者"复选框,则表示当前活动的前驱活动可以根据如上指定的参与者列表指派该活动的参与者。
# 流程启动者
该活动的参与者即为该流程的启动者。
如果流程启动者是外部系统,在组织模型中找不到,那么这个活动被启动后会报错。
人工活动默认设置的参与者是流程启动者。
# 活动执行者
选择活动执行者作为活动的参与者只能选择人工活动,也就是被选中的人工活动的执行者将作为本活动的参与者,如果被选中的活动还没有被执行完成,本活动就被启动,则会报错,因为被选中活动没有执行者。
选择该流程定义中的某一个人工活动的参与者作为本活动的参与者,如下图所示。
# 参与者规则
BPS提供了通过参与者规则获取参与者的功能。关于开发"参与者规则",可以参考流程级规则开发 (opens new window)和目录级规则开发 (opens new window)。
点击<浏览>按钮,弹出选择"参与者规则"的对话框:
对话框中列出了流程可以引用的"参与者规则"资源,选择需要的"参与者规则",点击<确定>按钮完成设置。
如果没有选到合适的参与者,可以通过<新增>按钮添加参与者,新增对话框如下图:
说明
可以引用的参与者的规则:
流程级参与者规则;
默认目录下的流程只能使用流程级规则;
领域级目录下的流程可以使用流程所在目录以及递归上级目录下包含的规则,不能递归使用子目录规则。
# 相关数据
活动的参与者如果设置为相关数据,是指活动的参与者会从相关数据中所定义的变量中获取。该变量支持的类型有Java类型,包含字符串(叶子参与者ID)、参与者对象、参与者对象集合、参与者数组;该变量支持的类型还有XML结构的数据。
# Java类型
从相关数据获得一个具体的参与者
相关数据可以是一个字符串,此时只能为一个具体的参与者,也就是个人。如相关数据中有participantID=tiger,则在Studio的相关数据设置成participantID,BPS引擎会根据tiger去组织模型中的叶子参与者也就是个人上找,如果找到则将此任务分配给tiger;否则抛异常。
从相关数据获得某一类型的参与者(指定一个或一组人员)
相关数据也可以是一个参与者对象,对象的结构如下:
参与者(WFParticipant)
| 属性 | 名称 |
| :------- | :--------- |
| Id | 参与者ID |
| Name | 参与者名称 |
| Email | 参与者邮件 |
| typeCode | 参与者类型 |
从相关数据获得一系列参与者
相关数据也可以是一个参与者对象集合List<WFParticipant>,该对象的结构和上表中参与者对象结构一致。
从相关数据获得一组同类型的参与者
相关数据也可以是一个参与者对象数组WFParticipant[],该对象的结构和上表中参与者对象结构一致。
# XML结构
相关数据也可以是XML结构的数据,对于XML也有如下几种设置方法。
从相关数据获得一个具体的参与者
【算法说明】
从相关数据的Xpath中,直接指定一个参与者。
注意
这种方式获得的参与者只能是个人。
相关数据必须满足下面的结构。
<XXXX>tiger</XXXX>
【示例】
若某个流程实例的相关数据如下所示:
<root>
<data>
<person>tiger</person>
</data>
</root>
要从相关数据获取某个活动的参与者,它的Xpath可以写成"person",则该活动的参与者即为"tiger"。
从相关数据获得某一类型的参与者(指定一个或一组人员)
【算法说明】
从相关数据的Xpath中,获得某一类型的参与者。可以是一个人,也可以是某一角色或某一机构的一组人。相关数据必须满足下面的结构。
<XXXX>
<id/>
<name/>
<type/>
</XXXX>
在上面Xpath结构中:
- 如果type是"person",则id即为用户ID;
- 如果type是"role",则id即为角色ID;
- 如果type是"organization",则id即为机构ID;
- 如果type是 "position",则id即为岗位ID;
- 如果type是"position_list",则id即需满足如下格式:
<Condition type="OR"> // type="OR"表示组织机构
<roleID>rolea</roleID> // 角色ID
<orgID>$orgID</orgID>
// 获取机构ID的XPATH(相对相关数据根的路径);"$"表示其后是个XPATH。
</Condition>
【示例】
若某个流程实例的相关数据如下所示:
<root>
<data>
<A>
<id>500</id>
<type>person</type>
<name>tiger</name>
</A>
<B>
<id>rolea</id>
<type>role</type>
<name>角色A</name>
</B>
<C>
<id>
<Condition type="OR">
<roleID>rolea</roleID>
<orgID>$orgID</orgID>
</Condition>
</id>
<type> position_list </type>
<name>岗位列表</name>
</C>
</data>
</root>
例如获取参与者的Xpath写成"A",则该活动的参与者是"tiger"这个人;如果Xpath为"B",则该活动的参与者是"角色A"内的所有人;如果Xpath为"C",则该活动的参与者是"角色A与指定的机构ID结合所得出的岗位列表"内的所有人。
从相关数据获得一系列参与者
【算法说明】
从相关数据的Xpath中,获得一组参与者。可以是一个人、一个角色、一个岗位、一个机构,也可以是机构、角色或个人的集合,还可以是岗位列表的集合。相关数据必须满足下面的结构。
<list>
<Participant>
<id/>
<name/>
<type/>
</Participant>
<Participant>
<id/>
<name/>
<type/>
</Participant>
</list>
id和type的含义如上所示。
【示例】
若某个流程实例的相关数据如下所示:
<root>
<data>
<list>
<Participant>
<id>tiger</id>
<name>person</name>
<type>person</type>
</Participant>
<Participant>
<id>rolea</id>
<name>角色A</name>
<type>role</type>
</Participant>
</list>
</data>
</root>
例如,获取参与者的Xpath写成"list",则该活动的参与者是tiger和角色A内的所有人。
# 规则逻辑
活动的参与者由调用的逻辑的返回值来决定。约定为所调用的逻辑的第一个返回值作为参与者,并且返回值的数据类型为相关数据中支持的数据类型,请参见相关数据 (opens new window)中的描述。
规则逻辑广泛应用在BPS流程开发当中,适用于获取参与者、启动策略、自动活动应用配置、异常处理、触发事件等等。
选中"规则逻辑"单选按钮后,点击<浏览>按钮,弹出"规则逻辑属性设置"对话框,如下图所示:
[comment]: <> (![img](./imgs/02.02.02.03.07.02.06_2.png))此图初始版本即不存在
- 服务:如果选择类型为服务,需要配置应用名、应用名类型、动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 应用名 | 即应用名称,如eos-default,如果没有配置,默认为当前应用。在Platform中有一张系统表EOS_SERVICE_ENDPOINT,其中APP_NAME表示该应用名称,SERVICE_NAME表示动作所对应的服务名称,这两个字段唯一标识服务所对应的IP、端口以及所调用的协议等;也可以是变量名,具体由"应用名类型"的设置决定。 更详细的说明请参考《EOS基础参考手册》中的"系统服务"部分。 |
| 应用名类型 | 可以选择"变量"、"常量";默认为"常量"。 |
| 动作 | 选择一个定义好的服务,BPS构件库中所有构件都是服务。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- 逻辑流:如果选择类型为逻辑流,需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的逻辑流,可以编辑动作的url,用于添加应用。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- 运算逻辑:如果选择类型为运算逻辑,需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- Java方法:需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个公共Java类下的公共的方法。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
# 设置表单
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"表单"Tab页,即显示表单设置页面。该表单的设置和开始活动的启动表单完全相同,请参见"设置开始活动属性"中的设置启动表单 (opens new window)。
# 设置时间限制
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"时间限制"Tab页,即显示"时间限制"设置页面,具体设置参见"流程/活动通用属性"中的设置时间限制 (opens new window)。
# 设置多工作项
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"多工作项"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页,即显示"触发事件"设置页面,具体设置参见"设置触发事件"中的活动的触发事件 (opens new window)。
# 设置回退
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面,具体设置参见"流程/活动通用属性"中的设置回退 (opens new window)。
# 设置自由流
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"自由流"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的后继活动。
自由流设置规则
自由流设置规则中有一个"流向的目标活动仅限于人工活动"复选框,如果选中,表明后继活动自由范围只能是人工活动,否则就包括人工活动、自动活动以及结束活动。
# 设置所有人工活动为自由流
要设置一个流程中所有的人工活动为自由流,在流程编辑区内单击鼠标右键,在右键菜单里选中"设置所有人工活动为自由流"即可。要取消这个设置,则只需在右键菜单里选中"取消设置所有人工活动为自由流"。如下图所示。
[comment]: <> (![img](./imgs/04.03.06.02.08_4.png_))此图初始版本即不存在
说明
若在某个人工活动上设置了"自由流",并在运行时为其指定了后继活动,那么引擎将不再按分支模式及连接线条件来决定此活动的后继活动;
若在某个人工活动上设置了"自由流",但在运行时该活动的执行者并没有为其指定后继活动,那么引擎仍然按分支模式及连线上的条件决定此活动的后继活动。
# 设置启动策略
双击"人工活动"图元,弹出"人工活动属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见"流程/活动通用属性"中的设置启动策略 (opens new window)。
# 设置通知
双击"人工活动"图元,弹出"人工活动设置"对话框,选择"通知"页签。如下图所示。
说明
"启动通知"复选框默认是没有选中的,只有选中它,才可以设置通知的相关信息。
通知是指对某个人工动作进行传阅、通知、抄送等等动作,这些动作都只是抄送给相关人看一下,并不影响流程本身的流转。下面分别对通知设置进行说明。
- 点击"通知"基本tab页签,各项参数含义解释如下。
| 参数名称 | 参数意义 |
| :-------- | :----------------------------------------------------------- |
| 标题 | 通知发送的后显示的标题。该项不能为空。 |
| 内容 | 通知发送的后显示的内容。该项不能为空。 |
| 自定义URL | 点击通知查看时,会链接到此处定义的URL,目前只支持URL的其他类型,其他类型是指除开页面流、jsp页面之外的URL。默认是不勾选的。 |
- 点击"通知"接受者tab页签,如下图所示。
通知到人的含义是:如果参与者为角色,机构等参与者时,则展开到人的参与者,"通知到人"复选框默认是不勾选的。
其中参与者设置的规则和工作项的参与者规则设置是相同的,具体设置可参考"设置活动属性/设置人工活动属性"的设置参与者 (opens new window)。
- 点击"通知"时间限制tab页签,如下图所示。
通知时间限制策略的含义:通知时间限制是指从通知创建算起,需在设置的时限范围内完成此通知的确认,否则认为此通知超时。通知时间限制和通知对外接口结合起来进行超时操作,设置了时间限制之后,可以实现通知对外接口触发超时事件,进行相关的超时业务操作。
通知超时预警策略的含义:通知超时预警设置是指在通知的时限未到的某时间进行提前预警的时间设置,比如通知还有2天就快超时了,用户要求提前一天进行超时警告,那么就可以设置超时预警的相关时间。通知超时预警策略和通知对外接口结合起来进行超时预警操作,设置了超时预警策略后,可以实现通知对外接口触发超时预警事件,进行相关的超时业务操作。
设置时间限制的规则和设置人工活动的时间限制规则是一样的,具体参见"设置活动属性/设置人工活动属性"的设置时间限制 (opens new window)。
# 设置扩展属性
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置自动活动属性
# 设置基本信息
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"基本"Tab页。如下图所示。
[comment]: <> (![img](./imgs/04.03.06.03.01_1.png))此图初始版本便不存在
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID (opens new window)一致。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"自动活动"。 |
| 分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。具体用法可参见《入门学习》中的"业务概念\分支模式"。 |
| 聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
| 结束方式 | 执行完"应用配置 (opens new window)"Tab页中配置的动作后,该自动活动结束的方式。有"自动"和"人工"两种方式,默认为"自动"。"自动"指的是执行完动作后,BPS引擎自动结束该活动;"人工"指的是执行完动作后,等待外部调用来结束该活动。 |
| 分割事务 | 需要将该活动与它后继的活动分属不同的事务时,则选中此项,默认不选中。 |
| 描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置应用配置
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"应用配置"页签,如下图所示。
应用配置的实现可以设置为业务手段或者技术手段;其中,业务手段分为"赋值"和"业务操作",技术手段分为"逻辑流"、"运算逻辑"和"Java方法"。
选择实现为"赋值"时:
如上图所示。
赋值配置表中包含"序号"、"左值类别"、"左值"、"右值"、"右值类别"这5部分信息,表中的每项赋值操作右值将赋给左值。
下表是对它们的说明:
| 名称 | 说明 |
| :------- | :----------------------------------------------------------- |
| 序号 | 赋值操作项的序号 |
| 左值类别 | 左值类型有业务变量和相关数据两种 |
| 左值 | 填写左值内容,类型为业务变量时,可双击输入区打开业务变量选择对话框进行选择 |
| 右值 | 填写右值内容,类型为业务变量时,可双击输入区打开业务变量选择对话框进行选择 |
| 右值类别 | 右值的类别,类别有常量、业务变量、相关数据三种 |
选择实现为"业务操作"时,可以点击<浏览>按钮,选择项目中已配置的业务操作:
说明
如何新增/编辑业务操作,请参见"业务资源管理编译器"中的业务操作编辑 (opens new window)。
仅当业务操作的"适用范围"选中了"自动活动",此处才可选该业务操作。
如果选中的业务操作定义了参数,则参数配置表中会自动填入已定义的参数(不能修改参数个数以及数据类型,可以通过刷新更新参数列表),用户仅需填写具体的"值"即可,如下图所示。
说明
如果勾选了"回填相关数据"复选框,表示调用Java方法后的相关参数以及返回值将加入到相关数据中去。
选择实现为"逻辑流"时:
需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的逻辑流,可以编辑动作的url,用于添加应用。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
选择实现为"运算逻辑"时:
需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
选择实现为"Java方法"时:
需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个公共Java类下的公共的方法。 |
| 参数配置表 | 需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
# 设置高级配置
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"高级设置"选项卡,如下图所示。
# 异常处理策略
在执行"应用配置"的动作的过程中发生异常时,所采取的一种处理策略。共分6种策略,根据业务需要选择其中的一种。
回滚异常
自动活动配置的逻辑出错直接回滚异常,回滚到上个事务分割点。
忽略异常
自动活动配置的逻辑出错忽略异常,自动活动完成,继续执行后继动作。默认配置。
进入异常状态,等待人工干预
自动活动出错进入异常状态不继续流转;用户可以在管理监控端的"流程实例管理/活动实例监控/应用异常处理"页面,选择执行"重新启动活动"、"单步回退,并且终止当前活动",或"路由到其它活动,并且终止当前活动",如下图所示。
自动执行单步回退,活动终止
自动活动出错,直接执行单步回退,回退到上个节点,当前自动活动终止。
自动路由到其它活动,活动终止
自动活动出错,直接根据配置跳转到下一个活动,当前自动活动终止。通过点击<浏览>按钮选择跳转的活动,如下图所示。
自动执行规则逻辑
自动活动出错后,自动执行设定的一个"规则逻辑",当规则逻辑执行完后,活动结束,继续执行后继活动。选择规则逻辑配置的具体情况和"流程/活动通用属性"中的"设置触发事件"中的
事件动作一致。
说明
上面描述的第1、2、6三种异常处理策略对应的"事务策略"可以是"Join"或"Suspend";第3、4、5三种异常处理策略只能在"事务策略"为"Suspend"的情况下使用;
"调用方式"为"异步"时,"事务策略"只能为"Suspend"。
# 设置触发事件
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"触发事件"Tab页,即显示"触发事件"设置页面,具体设置参见"设置触发事件"中活动的触发事件 (opens new window)。
# 设置回退(自动活动)
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面,具体设置参见"流程/活动通用属性"中的设置回退 (opens new window)。
# 设置启动策略(自动活动)
双击"自动活动"图元,弹出"自动活动属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见"流程/活动通用属性"中的设置启动策略。
# 设置自动活动扩展属性
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置子流程活动属性
# 设置基本信息(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"基本"Tab页。如下图所示。
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID (opens new window)一致。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"子流程"。 |
| 分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。具体用法可参见《入门学习》中的"业务概念\分支模式"。 |
| 聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
| 分割事务 | 需要将该活动与它后继的活动分属不同的事务时,则选中此项,默认不选中。 |
| 描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置子流程参数
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"子流程参数"Tab页。如下图所示。
| 参数名称 | 参数意义 |
| :--------- | :----------------------------------------------------------- |
| 调用方式 | 子流程的调用方式分为"同步"和"异步"方式,默认为"同步",根据实际业务需要来选择。它们各自的含义如下:同步:以"同步"的方式调用子流程,等待子流程运行完成后,该子流程活动才结束;异步:以"异步"的方式调用子流程,当前活动在子流程启动后就结束,而无需等待子流程运行完成。 |
| 子流程 | 通过点击<浏览>按钮所弹出的对话框来设置子流程。 |
| 参数配置表 | 子流程一经确定,子流程中的"流程参数"就会显示在"参数配置表"中,对参数的说明参见"流程/活动通用属性"中的"设置触发事件"中的事件动作 (opens new window)的参数,如果回填相关数据被选中,表示调用运算逻辑后的相关参数以及返回值将加入到相关数据中去。 |
# 设置触发事件(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"触发事件"Tab页,即显示"触发事件"设置页面,具体设置参见"流程/活动通用属性"中的设置触发事件 (opens new window)。
# 设置多子流程策略
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"多子流程策略"Tab页。如下图所示。
多子流程指的是BPS引擎可以根据相关数据设定的数据产生多个子流程。选中"启用多子流程设置"复选框时,才能进行多子流程的配置,默认未选中。"被迭代元素"的设置提供代码提示功能(使用"ALT"+"/"组合键实现)。
迭代变量:为被迭代元素中每个迭代对象配置一个变量名,该变量名可配置在"子流程参数 (opens new window)"中传入到子流程中去。
被迭代元素:流程相关数据区中存放的一个迭代,迭代长度等于所产生的子流程实例的个数。
# 设置回退(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"回退"Tab页,即显示"回退"设置页面,具体设置参见"流程/活动通用属性"中的设置回退 (opens new window)。
# 设置启动策略(子流程)
双击"子流程活动"图元,弹出"子流程属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见"流程/活动通用属性"中的设置启动策略 (opens new window)。
# 设置扩展属性(子流程)
请参考"流程和活动通用属性"中的设置扩展属性 (opens new window)。
# 设置路由活动属性
路由活动不会进行任何业务处理,只是起到活动与活动之间的路由作用。
# 设置基本信息(路由活动)
双击"路由活动"图元,弹出"路由活动属性设置"对话框,显示"基本"Tab页,如下图所示。
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID (opens new window)一致。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"路由活动"。 |
| 分支模式 | 确定流程运行时该活动结束后,它的后继活动将以何种方式启动。包括全部分支、单一分支和多路分支三种情况,默认为"全部分支"。具体用法可参见《入门学习》中的"业务概念\分支模式"。 |
| 聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
| 描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置扩展属性(路由活动)
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置EOS服务活动属性
EOS服务活动图元用于调用一个外部Eos服务的接口。接口的输入参数和返回值支持SDO数据格式,即对于输入参数可以传入一个DataObject对象,或者DataObject的Xpath(如:order/orderID),或一个基本类型变量,返回值则可以得到的是一个DataObject对象或一个基本类型。支持多返回值。
# 设置基本信息(EOS服务活动)
双击"EOS服务活动"图元,选择"基本"页签,具体设置请参见"设置自动活动属性"的设置基本信息 (opens new window)。
# 配置EOS服务参数
双击"EOS服务活动"图元,选择"EOS服务参数"属性页,如下图所示。
其参数说明如下:
| 输入/配置项 | 输入/编辑方式 | 数据范围 | 规则 |
| :---------- | :---------------------------------------------------------- | :----------------------------------------------------- | :----------------------------------------------------------- |
| EOS服务 | 文件选择框 | 当前项目API构件包以及依赖的API构件包中的Eosservice文件 | 选择Eosservice文件后,会自动填充EOS服务文本框,为选中文件中的方法路径; |
| URL | 文本输入框 | 一个规范的http URL | 远程调用EOS服务的调用地址,根据服务器信息修改ip、port的变量值。 |
| 参数配置表 | “名称”、“值”可编辑”,“数据类型”、“传参类型”、“值类型”可选择 | 传参类型为下拉框,选项有:URL、HEADER、BODY。 | |
# 高级设置(EOS服务活动)
双击"EOS服务活动"图元,选择"高级设置"页签,具体设置请参见"设置自动活动属性"的设置高级配置 (opens new window)。
# 设置触发事件(EOS服务活动)
双击"EOS服务活动"图元,选择"触发事件"页签,具体设置请参见"流程和活动通用属性"的设置触发事件 (opens new window)。
# 设置回退(EOS服务活动)
双击"EOS服务活动"图元,选择"回退"页签,具体设置请参见"流程和活动通用属性"的设置回退 (opens new window)。
# 设置启动策略(EOS服务活动)
双击"EOS服务活动"图元,选择"启动策略"页签,具体设置请参见"流程和活动通用属性"的设置启动策略 (opens new window)。
# 设置扩展属性(EOS服务活动)
双击"EOS服务活动"图元,选择"扩展"页签,具体设置请参见"流程和活动通用属性"的设置扩展属性 (opens new window)。
# 设置REST服务活动属性
REST服务活动图元用于调用一个外部Rest服务的接口。接口的输入参数和返回值支持SDO数据格式,即对于输入参数可以传入一个DataObject对象,或者DataObject的Xpath(如:order/orderID),或一个基本类型变量,返回值则可以得到的是一个DataObject对象或一个基本类型。仅支持单个返回值,可以将返回值封装为ResponseEntity对象。
# 设置基本信息(REST服务活动)
双击"REST服务活动"图元,选择"基本"页签,具体设置请参见"设置自动活动属性"的设置基本信息 (opens new window)。
# 配置REST服务参数(REST服务活动)
双击"REST服务活动"图元,选择"EOS服务参数"属性页,如下图所示。
其参数说明如下:
| 输入/配置项 | 输入/编辑方式 | 数据范围 | 规则 |
| :---------- | :---------------------------------------------------------- | :-------------------------------------------- | :----------------------------------------------------------- |
| 远程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。 | 其中"URI"类型,同时支持Path上的变量和Query的变量, 如: http://SERVICE-PROVIDER:8082/say-hi/ (opens new window){name}?pp={name}。 |
# 高级设置(REST服务活动)
双击"REST服务活动"图元,选择"高级设置"页签,具体设置请参见"设置自动活动属性"的设置高级配置 (opens new window)。
# 设置触发事件(REST服务活动)
双击"REST服务活动"图元,选择"触发事件"页签,具体设置请参见"流程和活动通用属性"的设置触发事件 (opens new window)。
# 设置回退(REST服务活动)
双击"REST服务活动"图元,选择"回退"页签,具体设置请参见"流程和活动通用属性"的设置回退 (opens new window)。
# 设置启动策略(REST服务活动)
双击"REST服务活动"图元,选择"启动策略"页签,具体设置请参见"流程和活动通用属性"的设置启动策略 (opens new window)。
# 设置扩展属性(REST服务活动)
双击"REST服务活动"图元,选择"扩展"页签,具体设置请参见"流程和活动通用属性"的设置扩展属性 (opens new window)。
# 设置结束活动属性
一个流程有且只有一个结束活动,结束活动完成后,代表流程实例完成。
# 设置基本信息(结束活动)
双击"结束活动"图元,弹出"结束活动属性设置"对话框,点击"基本"Tab页。如下图所示。
| 参数名称 | 参数意义 |
| :------- | :----------------------------------------------------------- |
| 参数名称 | 参数意义 |
| 活动ID | 在流程定义中标识该活动的唯一ID,命名规则和人工活动的活动ID (opens new window)一致,默认为"finishActivity"。 |
| 活动名称 | 活动的显示名称,中文/英文字符串。该项不能为空,默认为"结束"。 |
| 聚合模式 | 确定流程运行时该活动启动前,它的前驱活动触发该活动启动的条件。包括全部聚合,单一聚合,多路聚合三种情况,默认为"全部聚合"。具体用法可参见《入门学习》中的"业务概念\聚合模式"。 |
| 描述 | 对该活动的描述,中/英文字符,长度为"0~200"。 |
# 设置启动策略(结束活动)
双击"结束活动"图元,弹出"结束活动属性设置"对话框,点击"启动策略"Tab页,即显示"启动策略"设置页面,具体设置参见"流程/活动通用属性"中的设置启动策略 (opens new window)。
# 设置扩展属性(结束活动)
参考流程活动通用属性:设置扩展属性 (opens new window)
# 设置连接线属性
双击流程编辑器中的一根连接线,弹出连接线的属性窗口,如下图所示。
| 参数名称 | 参数意义 |
| :------------- | :----------------------------------------------------------- |
| 显示名称 | 连接线在流程图中显示的名称。 |
| 优先级 | 该连接线被实例化的优先级别,从高到低依次分为高、次高、中、次中、低、次低6个级别。当活动的分支模式为"单一分支",而该活动引出的若干分支的判断条件都满足的情况下,系统将以连接线的优先级级别的高低来判断该执行哪个活动。 |
| 是否为默认连线 | 选中此项即表明该连接线是默认连接线,表达式不可编辑。一个活动后如果引出多条连接线,则只能有一条为默认,其它均是有判断条件的连接线。非默认连接线用"*"标注。当所有的判断条件均不满足时,业务流程会走默认连接线。 |
| 简单表达式 | 利用一些常用的比较操作来进行条件判断的表达式。表达式的各部分说明如下表 (opens new window)所示。 |
| 连线规则 | 利用当前流程中所定义的分支规则来进行条件判断。 |
| 复杂表达式 | 复杂表达式是支持Java语法的boolean表达式,复杂表达式中可以使用相关数据中的任何变量,包括用户自定义的变量、内部变量、未定义的相关数据变量。具体使用请参考《EOS入门指南》中的"逻辑流开发/场景/按照条件进行分支判断/复杂条件判断"。 |
简单表达式各部分说明:
| 设置项 | 描述 | 备注 |
| :--------- | :----------------------------------------------------------- | :----------------------------------------------------------- |
| 左值 | 表达式中比较操作符左边的部分。 | 流程相关数据以及流程的内置变量都可以作为左值比较对象,可以用"alt+/"组合键来进行提示。 |
| 比较操作符 | 表达式中用来表述左值和右值关系的部分。常用的有"=="、">"、"<"等。 | 根据实际情况在下拉列表中选择。 |
| 右值 | 表达式中比较操作符右边的部分。 | 分为"常量"和"变量"两种。常量:可以是字符串、数字等。变量:流程相关数据以及流程的内置变量都可以作为右值比较对象,可以用"alt+/"组合键来进行提示。 |
| 右值类别 | 右值的类型,分为"常量"和"变量"两种。 | 如果是"常量"则代表设置项"右值"的内容就是一个常量,如果是"变量"则代表设置项"右值"是相关数据中变量或者内置变量。 |
# 流程/活动通用属性
# 设置时间限制(通用属性)
时间限制是指在流程或者活动启动后,在设置在一定时间段内完成工作流程或进行超时预警。在流程、人工活动的属性设置中均有"时间限制"Tab页,现以流程的"时间限制"设置为例进行说明。
BPS界面如下:
说明
选中"启用时间限制"复选框后,"日历设置"、"时间限制策略"和"超时预警策略"三部分内容被激活,才可进行配置。
# 日历设置(安装了业务化组件的Studio具有设置日历的功能)
BPS中安装了业务组件的Studio可以根据日历控制"时间限制"和"超时预警",可以选择方式获取日历,也可以通过"相关数据"设置。
- 选择日历时的可选列表如下:
| 日历名称 | 日历含义 |
| :--------- | :----------------------------------------------------------- |
| 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的取值范围和上面一样。
启用邮件通知:选中此项即表明当该活动或流程达到预警时间后,采用邮件的方式通知活动的参与者或流程的启动者。默认为不选中。
说明
超时预警不需要设置天属性;
小时数上限为"9999",分钟数上限为"9999";
相关数据格式为"H.M"。
# 邮件服务设置
如果上面配置了"启用邮件通知",则必须要配置邮件服务器,收件人邮箱等信息。
邮件服务器配置
通过Governor配置界面可以配置邮件服务器,配置界面如下图所示:
相关的参数说明见下表:
| 参数名称 | 参数意义 |
| :--------- | :----------------------------------------------------------- |
| 用户名 | SMTP服务器的用户名 |
| 密码 | SMTP的用户口令 |
| 邮件服务器 | 邮箱服务器的SMTP地址 |
| 端口 | SMTP端口,一般设置为25 |
| 发件人地址 | 发件人邮箱地址 |
| 发件人 | 发件人姓名 |
| 自动登录 | SMTP服务器是否需要进行用户验证,选中则需要进行用户认证,不选中则不需要进行认证 |
收件人邮箱配置
配置文件"$BPSApp_Home\work\system\com.primeton.workflow.core\META-INF\OMServiceModel.xml"中的相关部分如下:
<person>
<id>tiger</id>
<name>tiger</name>
<email>tiger@primeton.com</email>
</person>
相关的参数说明见下表:
| 节点名称 | 说明 |
| :------- | :----------------------- |
| id | 组织机构中成员的id编号 |
| name | 组织机构中成员的姓名 |
| email | 组织机构中成员的邮箱地址 |
# 设置触发事件(通用属性)
触发事件分为流程的触发事件 (opens new window)和活动的触发事件 (opens new window),流程和活动的触发事件除了触发时机不同之外,其余设置都是一样的。
# 业务化的触发事件
BPS提供了业务化触发事件
未安装业务化的Studio界面与6.0版本保持一致,如下图:
安装了业务化组件的Studio配置流程和活动的"触发事件"界面如下:
# 流程的触发事件
流程触发事件表示按照流程定义中的设置,流程实例在运行到某个阶段所需要BPS引擎做某种类型的动作。"某个阶段"即为事件的"触发时机","某种类型的动作"即为"事件动作"。
# 序号
流程触发事件排列的序号,自然数增加。
# 触发时机
包括流程级别的触发时机,如下图下拉框所示:
流程启动前:表示指定的事件在流程创建后启动前触发,此时流程实例处于"待启动"状态;
流程启动后:表示指定的事件在流程启动后触发,即流程状态设置为启动后进行事件的触发;
流程完成前:表示指定的事件在流程实例完成前触发,即流程实例状态在"完成"之前进行事件的触发;
流程完成后:表示指定的事件在流程实例完成后触发,即流程实例状态在"完成"之后进行事件的触发;
流程恢复后:表示指定的事件在流程恢复某个挂起的流程实例后触发;
流程挂起后:表示指定的事件在流程实例被挂起后触发;
流程超时后:表示指定的事件在流程实例超时后触发;
流程提醒后:表示指定的事件在流程实例设置的提醒时间到达后触发。如设定的超时时间为2分钟,提醒时间为1分钟,那么从流程实例被创建的那一刻开始计时,1分钟后如果流程实例没有完成,所定义的事件就触发。
# 事件动作
事件动作是指触发事件被触发时,业务流程引擎触发的动作。
配置"业务事件"(安装了业务组件的Studio可以使用)
选中需要编辑的"业务事件"行,双击"事件动作"列,弹出"事件动作属性设置"窗口,点击<浏览>按钮,选择项目中已配置的"业务操作",如下图所示:
说明
如何新增/编辑业务操作,请参见"业务资源管理编译器"中的业务操作编辑 (opens new window)。
仅当业务操作的"适用范围"选中了"触发事件",此处才可选该业务操作。
如果选中的业务操作定义了参数,则参数配置表中会自动填入已定义的参数(不能修改参数个数以及数据类型,可以通过刷新更新参数列表),用户仅需填写具体的"值"即可,如下图所示。
说明
如果勾选了"回填相关数据"复选框,表示调用Java方法后的相关参数以及返回值将加入到相关数据中去。
配置"技术事件"
选中需要编辑的"技术事件"行,双击"事件动作"列(6.0版本选中"事件动作"单选按钮后,点击<浏览>按钮),弹出"事件动作属性设置"对话框,如下图所示。
- 逻辑流:如果选择类型为逻辑流,需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的逻辑流,可以编辑动作的url,用于添加应用。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- 运算逻辑:如果选择类型为运算逻辑,需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
- Java方法:需要配置动作、参数,如下表所示。
| 配置项 | 配置说明 |
| :--------- | :----------------------------------------------------------- |
| 动作 | 选择一个公共Java类下的公共的方法。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,如果回填相关数据被选中,表示调用运算逻辑后的相关参数以及返回值将加入到相关数据中去,可以通过刷新更新参数列表。 |
# 调用方式
同步:业务流程引擎等待触发事件调用的操作执行完之后再运行。
异步:业务流程引擎无需等待触发事件调用的操作执行完就可以直接运行。
说明
当"触发时机"为"流程提醒后"或"流程超时后"时,"调用方式"只能设置为"异步"。
# 事务策略
业务流程引擎触发事件动作时有两种事务策略,Suspend和Join。
Suspend:被触发的事件与业务流程引擎是分开的事务。事务由触发事件动作单独控制。
Join:被触发的事件与业务流程引擎是一个事务,事务由业务流程引擎控制。
# 异常处理
忽略异常:当事件动作执行过程中产生异常时,业务流程引擎继续执行后面的操作,不把事务回滚,异常在日志中进行记录。
回滚异常:当事件动作执行过程中产生异常时,业务流程引擎回滚事务,异常在日志中进行记录。
# 描述
对该事件动作的描述,为中/英文字符串,可以为空。
# 活动的触发事件
活动触发事件表示按照流程定义的设置在活动实例运行到某个阶段所需要BPS引擎做某种类型的动作。"某个阶段"即为事件的"触发时机","某种类型的动作"即为"事件动作"。可以设置"人工活动"、"自动活动"以及"子流程活动"的触发事件。
除了"触发时机"外,活动触发事件中的"事件动作"、"调用方式"、"事务策略",以及"异常处理"都和流程的触发事件中的含义、操作一致,此处不再赘述,如需查看请参考流程的触发事件 (opens new window)中的相关描述。
人工活动触发时机
活动启动前:表示指定的事件在活动实例启动前触发,此时活动实例处于"待启动"状态,并没有工作项产生;
活动启动后:表示指定的事件在活动实例启动后触发;
活动完成前:表示指定的事件在活动实例完成前触发;
活动完成后:表示指定的事件在活动实例完成后触发;
活动恢复后:表示指定的事件在活动实例恢复某个挂起后触发;
活动挂起后:表示指定的事件在活动实例被挂起后触发;
工作项创建后:表示指定的事件在工作项被创建后触发;
工作项领取后:表示指定的事件在工作项被参与者领取后触发;
工作项取消领取后:表示指定的事件在工作项被参与者取消领取后触发;
工作项完成前:表示指定的事件在工作项完成之前被触发;
工作项完成后:表示指定的事件在工作项完成之后被触发;
工作项恢复后:表示指定的事件在工作项恢复某个挂起后被触发;
工作项挂起后:表示指定的事件在工作项被挂起后触发;
工作项超时后:表示指定的事件在工作项超时后触发;
工作项提醒后:表示指定的事件在工作项的提醒时间到来后触发。如设定的超时时间为2分钟,提醒时间为1分钟,那么从工作项被创建的那一刻开始计时,1分钟后如果工作项没有完成,所定义的事件就触发。
自动活动/子流程触发时机
活动启动前:表示指定的事件在活动实例启动前触发;
活动启动后:表示指定的事件在活动实例启动后触发;
活动完成前:表示指定的事件在活动实例完成前触发;
活动完成后:表示指定的事件在活动实例完成后触发;
活动恢复后:表示指定的事件在活动实例恢复某个挂起后触发;
活动挂起后:表示指定的事件在活动实例被挂起后触发。
# 设置回退(通用属性)
回退是指当该活动被回退的时候会触发的动作,只有当调用BPS构件库中的backActivity方法回退到本活动的时候才触发。在人工活动、自动活动、子流程活动、EOS服务活动、REST服务活动的属性设置中均有"回退"Tab页,它们在意义和设置上基本一致,现以自动活动的"回退"设置为例进行说明。在自动活动的属性对话框中,点击"回退"Tab页,即显示如下图所示的设置界面。
回退动作表示的是当该活动被回退的时候所需要做的动作,它可以是一个服务、一个逻辑流,或一个运算逻辑。具体的设置可参见"设置人工活动属性/设置参与者"中参与者是规则逻辑 (opens new window)的内容。
# 设置启动策略(通用属性)
在人工活动、自动活动、子流程活动、结束活动的属性设置中均有"启动策略"Tab页,它们在意义和设置上是一致的,现以人工活动的"启动策略"设置为例进行说明。在人工活动的属性对话框中,点击"启动策略"Tab页,即显示如下图所示的设置界面。
启动策略表示在流程实例运行过程中,当流程实例流转至此活动时,该活动将以何种方式启动。
激活规则
直接运行:只要当前活动的前驱活动执行完,并且当前活动满足启动条件,即可转入"运行"状态。这是"启动策略"的默认配置。
待激活:当前活动的前驱活动执行完后不管当前活动是否满足启动条件,都将转入"待激活"状态。直到外界调用com.eos.workflow.component.instance.ActivityInstManagerComponent/ActivityInstManagerService.activateActivityInstance方法才能激活该活动。
由规则逻辑返回值确定:在当前活动满足启动条件的前提下,由一个逻辑的返回值来确定是否启动该活动,一个规则逻辑的动作可以是一个服务、一个逻辑流,或一个运算逻辑。具体的设置可参见"设置人工活动属性/设置参与者"中参与者是
规则逻辑
的内容。
规定这种逻辑的返回值必须是"0"、"1"、"true"或"false"。
当规则逻辑的返回值是"1"或"true"时,当前活动转入"运行"状态;
当规则逻辑的返回值是"0"或"false"时,当前活动转入"待激活"状态。
重新启动规则
针对"人工活动"除了可以设置启动规则以外,还可设置"重新启动规则",是指当活动被重新启动时会根据规则进行的一些操作。
最初参与者:人工活动实例发生"重启"时,该活动实例所对应的工作项以它首次被启动时的参与者作为新的参与者。
最终参与者:人工活动实例发生"重启"时,该活动实例所对应的工作项以最近一次执行该活动的执行者作为本次重启的参与者。
重新设置URL:选中此项表明,人工活动实例发生"重启"后,在执行活动实例对应的工作项时,可以重新指定URL。默认不选中。
URL类型:URL的类型,目前版本只包括"其它"一种情况。
调用URL:根据URL类型,输入或单击"浏览"按钮从流程定义所在项目中选择要调用的URL。
说明
重新启动是将已经运行过的最近的活动实例和该活动实例对应的工作项重新启动,通过调用方法com.eos.workflow.component.instance.ActivityInstManagerComponent/ActivityInstManagerService.restartActivityInstance进行重启,不会增加新的活动实例或工作项。
# 设置扩展属性(通用属性)
流程编辑器为用户提供了编辑流程和活动的扩展属性功能,编辑流程和活动时可以根据需要添加用户自定义的扩展属性,扩展属性以键值对方式存在。编辑页面如下图:
说明
扩展的键值对是平面结构的,相当于properties配置文件,结构如下:
<extendNodes>
<extendNode>
<key>name</key>
<value>jim</value>
<desc></desc>
</extendNode>
<extendNode>
<key>age</key>
<value>12</value>
<desc></desc>
</extendNode>
<extendNode>
<key>school</key>
<value>复旦大学</value>
<desc>东校区</desc>
</extendNode>
</extendNodes>
# 组织模型
# 组织机构简介
企业的组织机构就是企业人员的集合和分类,它具有一定的层次关系,根据组织成员所在组织机构的不同而拥有了不同的权限和任务。将这种组织机构的组成方式通过抽象和总结,描述出来就是组织机构模型。组织机构模型是业务流程的重要组成部分和基础。在组织机构模型中,机构、角色、岗位、用户等都是具体的参与者。
一个流程在运行时,会经常与参与者进行交互。比如一个任务可以分配给一个人,也可以分配给某个部门,此时该部门下的所有人都可以完成这个任务。交互中必须让流程能够识别用户的组织机构。
BPS提供了一套组织机构接口。用户可以通过实现该接口,将实际业务中的组织机构模型告诉流程引擎,从而在流程和活动中控制权限和任务。
# 在Studio中默认的组织模型刷新的效果如下图所示:
# 自定义参与者类型的图标
# 功能描述
在自定义组织机构时,用户实现组织机构接口并在配置文件中指定实现类后,BPS引擎即可与自定义组织机构配合运行。此时使用BPS提供的选人标签与BPS Studio的刷新组织机构功能,可以看到相应的参与者。如果用户使用了自定义的参与者类型,比如增加了一个名为"职称(level)"的参与者类型,并且希望其相应的图标能够自定义,就需要按指定命名规则,定义需要添加图片的名称,并且放到相应的位置中。
# 图片命名规则
图片名称为:type+".gif"
其中,type为图片对应的参与者类型的type,比如上面说到的"职称(level)"类型对应的图片名称就应为"level.gif"。
# web应用中的使用
在web应用的目录"/workflow/wfcomponent/web/images/participant/"下增加该类型对应的图片,注意图片名称应为type+".gif"。按照这样的规则新增一个level.gif图片到上面指定的目录下,刷新页面即可看到选人标签能正确显示了。
# BPS Studio中的使用
此时在Studio中刷组织机构会使用默认图片,如果要显示自定义的图标,则需要将名称为type+".gif"的图片放到Studio中的指定路径下:
"/bpstools/eclipse/plugins/com.primeton.studio.workflow.ui_6.0.0/icons/eview16/participant_type/",即可在Studio中看到相应的图片和内容。
# 业务资源
# 业务资源管理编辑器
# 功能描述
业务资源管理编辑器提供了可视化的编辑环境,并帮助您为项目中的业务资源进行建模,可以在项目资源管理器中双击项目下的业务资源节点或右键点击业务资源节点,选择[打开方式/业务资源]菜单项打开编辑器界面,如图:
编辑器界面如图:
编辑器左边显示业务资源树,可以通过工具栏和右键菜单添加业务目录和业务资源;
选择资源树上的节点,在右侧显示该节点资源的属性界面,可以对业务资源的属性进行编辑操作。
# 业务目录编辑器
# 功能描述
在业务资源编辑器的业务资源树上,可以在领域业务目录及其业务目录下进行添加业务目录、编辑业务目录名称和描述信息、删除业务目录的操作。
# 操作步骤
# 新增
用户可以在领域业务目录下添加新业务目录,也可以在业务目录中添加子业务目录。
选中新目录要关联的上级目录节点,通过右键菜单和工具栏两种方式进行新增业务目录操作:
右键菜单方式:
工具栏方式:
说明
全局业务目录和默认业务目录中不能添加业务目录。
# 编辑
在业务资源树上选中业务目录,可以在右侧编辑业务目录的名称和描述信息:
注意
全局业务目录、默认业务目录、领域业务目录本身不能编辑;
同级业务目录名称不能相同;
目录ID不能编辑。
# 删除
选中要删除的业务目录,通过右键菜单和工具栏删除按钮可以删除该目录:
注意
全局业务目录、默认业务目录、领域业务目录本身不可以删除;
删除业务目录操作会同时删除目录下所有资源和子目录。
# 业务变量编辑
# 功能描述
在业务资源编辑器的业务资源树上,可以在业务目录下进行添加业务变量、编辑业务变量属性、删除业务变量的操作。
# 操作步骤
# 新增
用户可以在业务目录下添加业务变量。
选中新业务变量要关联的上级目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
全局业务目录、默认业务目录和领域业务目录下不能添加业务变量。
# 编辑
在业务资源树上选中业务变量,可以在右侧编辑业务变量的名称、XPATH和描述信息:
| 属性名称 | 描述 |
| :------- | :----------------------------------------------------------- |
| 名称 | 业务变量名称,必填。说明名称不能为空,同级目录下的业务变量名称不能相同。 |
| XPATH | 业务变量的XPATH,必填。说明XPATH不能为空,且必须符合XPath命名规则,应符合Xpath格式(例如:a/b/c)。 |
| 描述 | 该业务变量的描述信息。 |
# 删除
选中要删除的业务变量,通过右键菜单和工具栏删除按钮可以删除该变量:
说明
如果该变量已经被引用,删除该变量,编译后会在问题视图中提示所引用的该变量信息不存在的警告信息:
# 业务操作编辑
# 功能描述
在业务资源编辑器的业务资源树上,可以在业务目录下进行添加业务操作、编辑业务操作属性、删除业务操作。
# 操作步骤
# 新增
用户可以在业务目录下进行添加业务操作。
选中新业务操作要关联的上级目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
默认业务目录和领域业务目录下不能添加业务操作。
# 编辑
在业务资源树上选中业务操作,可以在右侧编辑业务操作的名称、类型、实现、参数、描述信息和适用范围:
| 属性名称 | 描述 |
| :--------- | :----------------------------------------------------------- |
| 名称 | 业务操作名称,必填。说明同一业务目录下的业务操作名称不能相同。 |
| 类型 | 业务操作类型,必填。可选择"服务"、"逻辑流"、"运算逻辑"或"Java方法"。 |
| 实现 | 该业务操作的指定类型的具体实现,必填。"类型"为"逻辑流"时:选择一个定义好的逻辑流,可以编辑动作的url,用于添加应用。"类型"为"运算逻辑"时:选择一个定义好的运算逻辑,基础构件库中所有的构件都是运算构件。"类型"为"Java方法"时:选择一个公共Java类下的公共的方法。说明java方法类型的业务操作,其实现必须为可调用的public class的public方法。 |
| 参数配置表 | 服务需要的参数,不能修改参数个数以及数据类型,可以通过刷新更新参数列表。 |
| 描述 | 该业务操作的描述信息。 |
| 适用范围 | 该业务操作可以适用的应用环境,包括自动活动、触发事件、分支规则、参与者规则。 |
业务操作的实现需要通过向导选择。
例如:类型为java方法时,可以点击"实现"的<浏览>按钮,打开选择实现向导,选择java类,点击<下一步>按钮。
选择类的方法实现,点击<完成>按钮。
# 删除
选中要删除的业务操作,通过右键菜单和工具栏删除按钮可以删除该操作。
说明
如果该业务操作已经被引用,删除该操作编译后会在问题视图中提示所引用的资源信息不存在的警告信息。
# 工作日历编辑
# 功能描述
在业务资源编辑器的业务资源树上,可以在全局业务目录中进行工作日历的添加、编辑和删除操作。
# 操作步骤
# 新增
用户只能在全局业务目录下添加工作日历。
选中全局业务目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
工作日历只能放在全局业务目录中。
# 编辑
在业务资源树上选中工作日历节点,可以在右侧编辑工作日历属性:
| 属性名称 | 描述 |
| :--------------- | :----------------------------------------------------------- |
| 属性名称 | 描述 |
| 名称 | 工作日历名称,必填。说明同一项目下的工作日历名称不能相同。 |
| 时间段1~时间段4 | 该工作日历定义的时间段。说明每个日历至少要设置一个时间段,最多可以设置四个时间段,每个时间段的开始时间必须在终止时间之前;时间格式为"HH:MM:SS"形式。 |
| 描述 | 该日历的描述信息。 |
# 删除
选中要删除的工作日历,通过右键菜单和工具栏删除按钮可以删除该操作。
说明
如果该日历已经被引用,删除该日历编译后会在问题视图中提示所引用的该资源信息不存在的警告信息。
# 人工任务编辑
# 功能说明
在业务资源编辑器的业务资源树上,可以在全局业务目录和业务目录中进行人工任务的添加、编辑和删除操作。
# 操作步骤
# 新增
用户可以在全局业务目录和业务目录下添加人工任务。
选中全局业务目录或业务目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
默认业务目录下和领域业务目录下不能添加人工任务。
# 编辑
在业务资源树上选中人工任务节点,可以在右侧编辑人工任务属性。
| 属性名称 | 描述 |
| :------- | :----------------------------------------------------------- |
| 属性名称 | 描述 |
| 名称 | 人工任务名称,必填。说明同一业务目录下的人工任务名称不能相同。 |
| 类型 | 人工任务类型。说明人工任务类型当前版本只有"其他..."类型。 |
| 实现 | 对应该人工任务类型的具体实现url,必填。 |
| 描述 | 该人工任务的描述信息。 |
# 删除
选中要删除的人工任务,通过右键菜单和工具栏删除按钮可以删除该操作。
说明
如果该任务已经被引用,删除该任务编译后会在问题视图中提示所引用的该资源信息不存在的警告信息。
# 规则编辑
# 功能描述
规则编辑器主要功能有:
提供流程流转运行到不同活动的分支规则设置;
提供自定义的参与者者规则设置;
# 分支规则
# 功能描述
在业务资源编辑器的业务资源树上,可以在业务目录中进行分支规则的添加、编辑和删除操作。
# 操作步骤
# 新增
用户可以在业务目录下添加分支规则。
选中业务目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
全局业务目录、默认业务目录下和领域业务目录下不能添加分支规则。
# 编辑
在业务资源树上选中分支规则节点,可以在右侧编辑分支规则属性:
| 属性名称 | 描述 |
| :------- | :----------------------------------------------------------- |
| 名称 | 分支规则名称,必填。说明同一业务目录下的分支规则名称不能相同。 |
| 描述 | 该分支规则的描述信息。 |
点击<编辑>按钮,可以打开分支规则向导,对分支规则的规则信息进行编辑操作:
分支规则编辑对话框的使用可参见设置流程级业务规则 (opens new window)。
# 删除
选中要删除的分支规则,通过右键菜单和工具栏删除按钮可以删除该操作。
说明
如果该规则已经被引用,删除该规则,编译后会在问题视图中提示所引用的该资源信息不存在的警告信息。
# 参与者规则
# 功能描述
在业务资源编辑器的业务资源树上,可以在业务目录中进行参与者规则的添加、编辑和删除操作。
# 操作步骤
# 新增
用户可以在业务目录下添加参与者规则。
选中业务目录节点,通过右键菜单和工具栏两种方式进行添加操作:
右键菜单方式:
工具栏方式:
说明
全局业务目录、默认业务目录下和领域业务目录下不能添加参与者规则。
# 编辑
在业务资源树上选中参与者规则节点,可以在右侧编辑参与者规则属性:
| 属性名称 | 描述 |
| :------- | :----------------------------------------------------------- |
| 名称 | 参与者规则名称,必填。说明同一业务目录下的参与者规则名称不能相同。 |
| 描述 | 该参与者规则的描述信息。 |
点击<编辑>按钮,可以打开参与者规则向导,对参与者规则的规则信息进行编辑操作:
参与者规则编辑对话框的使用可参见设置流程级业务规则 (opens new window)。
# 删除
选中要删除的参与者规则,通过右键菜单和工具栏删除按钮可以删除该操作:
说明
如果该规则已经被引用,删除该规则,编译后会在问题视图中提示所引用的该资源信息不存在的警告信息。
# 业务资源校验
对不同类型的业务资源,编辑器会对其属性进行校验,主要有非空校验、是否存在同名校验、值有效性校验等。
对业务目录的校验请参考业务目录编辑器 (opens new window);
对业务变量的校验请参考业务变量编辑 (opens new window);
对业务操作的校验请参考业务操作编辑 (opens new window);
对工作日历的校验请参考工作日历编辑 (opens new window);
对人工任务的校验请参考人工任务编辑 (opens new window);
对规则的校验请参考规则编辑 (opens new window)。
# 业务资源右键菜单
# 业务资源树的业务目录节点的右键菜单
菜单用分隔符分成四组,每组功能如下:
| 组 | 功能 |
| :------------- | :----------------------------------------------------------- |
| 新增资源菜单组 | 在目录下新增资源或目录,不同类型的目录下,可以新增的资源类型也有所不同 |
| 资源操作菜单组 | 提供对节点资源的剪切、复制、粘帖和删除等常用操作 |
| 位置移动菜单组 | 提供对目录的上下移动操作 |
| 提交提取菜单组 | 提供节点资源的提交提取操作 |
# 业务资源树的业务资源节点的右键菜单
菜单用分隔符分成四组,每组功能如下:
| 组 | 功能 |
| :------------- | :----------------------------------------------- |
| 新增资源菜单组 | 在所选资源的同级目录下新增的相同类型的资源 |
| 资源操作菜单组 | 提供对节点资源的剪切、复制、粘帖和删除等常用操作 |
| 位置移动菜单组 | 该组功能对非目录资源不可用 |
| 提交提取菜单组 | 提供节点资源的提交提取操作 |
# 业务资源树的流程节点的右键菜单
菜单用分隔符分成五组,每组功能如下:
| 组 | 功能 |
| :--------------- | :----------------------------------------------- |
| 组 | 功能 |
| 新增资源菜单组 | 在所选流程的同级目录下新增流程 |
| 资源操作菜单组 | 提供对节点资源的剪切、复制、粘帖和删除等常用操作 |
| 位置移动菜单组 | 该组功能对非目录资源不可用 |
| 提交菜单 | 该组功能对流程不可用 |
| 打开相关连接菜单 | 使用流程编辑器打开流程进行查看或编辑操作 |
下面将依次对[提交]和[提取]功能进行介绍。
# 提交
# 功能描述
在业务资源编辑器的业务资源树上,可以提交指定的业务资源。
# 操作步骤
选中业务资源编辑器中业务资源树视图上要提交的资源节点或目录节点,点击右键,在弹出菜单中选择[提交业务资源]:
如果选择的业务资源是非空目录(包括业务目录或者全局业务目录和领域业务目录),会弹出提示框:
| 选择项 | 结果 |
| :------------- | :----------------------------------------------------------- |
| 选择是: | 会同时提交当前目录下的资源。 |
| 选择全部为是: | 当前选中列表的所有资源和所有选中目录及其子目录下的资源都会被提交。 |
| 选择否: | 仅提交当前目录,不提交目录下的资源。 |
| 选择全部为否: | 仅提交当前选中列表的所有资源和目录,不提交所选目录下的资源。 |
说明
领域业务目录中仅包含流程,不包含其它资源,不能对领域业务目录进行提交和提取操作;
可以同时选择多个目录和资源提交;
提交资源或目录操作会同步提交资源的上级目录结构。
提交完成后,会返回提交结果信息框,显示所提交资源是否成功提交,如果提交失败,提示提交失败的错误信息。
# 提取
# 功能描述
在业务资源编辑器的业务资源树上,可以提取指定的业务资源。
# 操作步骤
选中业务资源编辑器中业务资源树视图上要提取的资源节点或目录节点,点击右键,在弹出菜单中选择[提取业务资源]:
如果选择的业务资源是非空目录(包括业务目录或者全局业务目录和领域业务目录),会弹出提示框:
| 选择项 | 结果 |
| :------------- | :----------------------------------------------------------- |
| 选择是: | 会同时提取当前目录下的资源。 |
| 选择全部为是: | 当前选中列表的所有资源和所有选中目录及其子目录下的资源都会被提取。 |
| 选择否: | 仅提取当前目录,不提取目录下的资源。 |
| 选择全部为否: | 仅提取当前选中列表的所有资源和目录,不提取所选目录下的资源。 |
说明
领域业务目录中仅包含流程,不包含其它资源,不能对领域业务目录进行提交和提取操作;
可以同时选择多个目录和资源提取。
提取完成后,会返回提取结果信息框,显示所提取资源是否成功提取,如果提取失败,提示提取失败的错误信息。
提取操作成功完成后,可以在业务目录树上查看更新后的业务资源信息。
# 快捷键
| 快捷键 | 功能说明 |
| :------------- | :------------- |
| 快捷键 | 功能说明 |
| Ctrl + Alt + F | 新增业务目录 |
| Ctrl + Alt + O | 新增业务操作 |
| Ctrl + Alt + M | 新增人工任务 |
| Ctrl + Alt + P | 新增参与者规则 |
| Ctrl + Alt + T | 新增分支规则 |
| Ctrl + Alt + V | 新增业务变量 |
| Ctrl + Alt + D | 新增工作日历 |
| Ctrl + Alt + W | 新增流程 |
| Ctrl + Alt + F | 新增业务目录 |
| Ctrl + C | 复制 |
| Ctrl + X | 剪切 |
| Ctrl + V | 粘帖 |
| Delete | 删除 |
# 流程部署
# 部署BPS流程
# 功能描述
在开发流程结束后可以开始着手部署流程,要使用"部署BPS流程"功能必须首先确认服务器已经启动。
在项目资源管理器中,选中待编辑项目后,弹出的右键菜单中,有"流程定义库交互",对应的有两个子菜单:提交流程、提取流程。
如下图所示:
在流程编辑器中"流程定义库交互"右键菜单同样支持对编辑器对应流程进行部署操作,对应的有两个子菜单:提交流程、更新流程。
如下图所示:
# 提交流程
# 功能描述
将指定的本地流程提交到服务器上。
用户可以一次提交一个或者多个流程到流程定义库中。提交流程时可以指定各流程的提交模式。
在Studio开发环境中提交流程方式有两种:
流程编辑器中提交 (opens new window):在流程编辑器中右键选择[流程定义库交互/提交流程]菜单项提交;
项目资源管理器视图中提交 (opens new window):通过在项目资源管理器视图中项目节点、流程上级包节点或者流程节点上右键选择[流程定义库交互/提交流程]菜单项提交。
下面将逐一介绍两种方式的操作步骤。
# 流程编辑器中提交流程
在流程编辑器中提交流程的方式可以提交编辑器打开的单个流程和该流程所引用的业务资源,操作步骤如下:
# 操作步骤
操作前首先请确认BPS Platform Server已经启动。
使用流程编辑器打开流程文件,在流程编辑器中右键,中选择[流程定义库交互/提交流程]菜单项。
系统弹出"提交流程"对话框。
说明
提交流程操作会将被选中的流程所引用的业务资源同步提交到服务器上
选择提交模式,如下图所示。
三种提交方式的区别
按照默认方式提交
用户选择按照默认方式提交流程时会有两种情况:
如果流程定义库已经存在业务流程则覆盖最新版本的流程。
如果流程定义库中不存在流程定义,则创建新版本流程。
覆盖已有版本
如果流程不是第一次提交,用户可以从已经存在的版本列表中选择,指定一个已有的版本进行覆盖操作。
创建新版本
用户提交业务流程时,可以选择创建新版本。版本生成规则是由BPS引擎控制的。如:当前流程版本为"1.1.1",则会创建新版本"1.1.2";如果第一次提交版本则会创建版本"1.1.1"。
输入版本描述,选择是否立即发布。
用户可随需输入版本描述信息,系统默认的注释信息为用户名和提交时间。
用户可以决定是否立即发布流程:
选中"立即发布"复选框,则为部署后马上执行发布动作,如果有已经发布的旧版本则取消发布旧版本,马上发布当前版本。
不选中"立即发布"复选框,则为部署后不执行发布动作。如果是覆盖旧版本则不会改变原来版本的发布状态;如果是新版本则部署后为未发布状态。
点击<确定>按钮,提交流程到服务器。
提交完成后会显示提交结果信息,可以查看流程和流程所引用的业务资源是否成功提交,对于提交失败的资源,会显示失败的错误信息。
# 项目资源管理器视图中提交流程
在项目资源管理器视图提交流程方式的操作与在编辑器中操作基本相同,该方式可以提交一个或多个流程和各流程所引用的业务资源,用户也可以在向导中手动对要提交的资源进行选择,操作步骤如下:
# 操作步骤
操作前首先请确认BPS Platform Server已经启动。
在项目资源管理器视图中流程节点、项目节点、源码目录节点或者流程上级包节点上右键选择[流程定义库交互/提交流程]菜单项。
系统弹出"提交流程"向导。
说明
"提交流程"向导页左方显示节点资源所属工程的业务资源树,用户可以在树上勾选要提交的流程,默认会选中所选节点对应的流程,如果节点为项目节点或包节点,会选中其中包含的所有已定义流程;
在左边业务资源树上点击任意节点,右侧会显示该节点资源的属性配置信息,可以点击要提交的流程节点,配置该流程的提交模式,提交方式选择参见在流程编辑器中提交流程 (opens new window)的说明;
如果勾选左下方"在下一步中选中关联业务资源"复选框,下一页业务资源树中会默认选中本次页面所选择的流程所引用的业务资源,取消勾选则不会。
点击<下一步>,选择要同步提交的业务资源。
点击<完成>,提交所选的流程和业务资源,提交完成后显示提交结果信息,参见在流程编辑器中提交流程 (opens new window)。
# 提取流程/更新流程
# 功能描述
从服务器上提取指定的流程到本地。
用户可以一次提交一个或者多个流程到流程定义库中。提交流程时可以指定各流程的提交模式。
在Studio开发环境中提取流程可以通过在项目资源管理器视图中右键选择[流程定义库交互/提取流程]菜单项提取指定流程到项目中;也可以在流程编辑器中右键选择[流程定义库交互/更新流程]菜单项,更新当前流程,下面将逐一介绍两种方式。
# 在项目资源管理器视图中提取流程
在项目资源管理器视图中项目节点、源码目录节点、包节点或流程节点上右键选择[流程定义库交互/提取流程]菜单项可以将服务器上的一个或多个流程和相关的资源提取到项目中,操作步骤如下:
# 操作步骤
操作前首先请确认BPS Server已经启动。
在"项目资源管理器"视图中单击鼠标右键选择一个项目、源码目录、包目录或流程,选择[流程定义库交互/提取流程]菜单项。
系统弹出"提取流程"对话框,如下图所示:
说明
"提取流程"向导页左方显示当前服务器上的业务资源树,用户可以在树上选择要提取到项目中的流程;
在左边业务资源树上点击任意节点,右侧会显示该节点资源的属性配置信息;
勾选左下方"覆盖已存在的流程和资源"复选框,则提取的流程和资源文件将对本地相同名称的文件进行覆盖更新,取消勾选则默认只将项目中不存在的流程和资源更新到本地,对本地已经存在的流程资源不进行覆盖更新操作;
勾选左下方"在下一步中选中关联业务资源"复选框,则在下一页业务资源树中会默认选中本页面所选择的流程所引用的业务资源,取消勾选则不会。
点击<下一步>,选择要同步提取的业务资源。
点击<完成>按钮开始进行流程提取操作,完成后显示提取结果信息。
# 在流程编辑器中更新流程
在流程编辑器中更新流程的方式可以将服务器上指定流程和该流程所引用的业务资源的最新内容更新到本地,操作步骤如下:
# 操作步骤
操作前首先请确认BPS Server已经启动。
使用BPS流程编辑器打开流程文件,在流程编辑器中右键菜单中选择[流程定义库交互/更新流程]菜单项。
说明
只有已经提交到服务器上的流程才可以更新,如果当前流程在服务器上找不到对应流程信息,则不能够进行更新操作,提示如下:
系统弹出"更新流程"对话框,如下图所示。
说明
更新流程操作会将流程和流程所引用的业务资源同步更新至本地文件。
点击<确定>按钮开始进行流程提取操作,完成后显示提取结果信息。参见在项目资源管理器视图中提取流程 (opens new window)。