业务规则
业务规则可以自定义词汇表和规则,实现矩阵式的规则管理。例如以下采购申请审核矩阵:
参与者 | 办公用品 | 生产设备 | ||
采购金额<2000 | 采购金额>=2000 | 采购金额<10000 | 采购金额>=10000 | |
业务主管 | √ | √ | √ | |
部门总监 | √ | √ | √ | |
财务总监 | √ | √ | ||
总经理 | √ | √ |
该矩阵中,根据【采购类型】、【金额】,需要不同的人员进行审核,如果在流程设计中实现,流程逻辑会复杂化。此时可以使用业务规则进行定义该规则,将业务逻辑在业务规则中进行图形化定义实现,更符合业务角度进行理解。
设置好业务规则后,关联数据模型,即可直接在流程模型中使用。
词汇表
在H3管理中心->业务规则功能菜单,新建规则,在新的规则中定义词汇表。
添加一个新的业务规则。以本章第一小节为例,需要定义采购类型、金额、发起人、审核人四个词汇。
业务规则属性的词汇类型与数据模型中数据项类型进行一一对应;
业务规则参数类型则由3个方式
参数类型 | 说明 |
IN | 由外部输入的参数 |
OUT | 由业务规则返回的参数 |
INOUT | 双向模式,由外部输入后根据业务规则再返回给外部 |
规则定义
规则包含三种类型:脚本规则、选择规则、排序规则。
规则类型 | 名称 | 说明 |
Script | 脚本规则 | 脚本决策表,可以自由在矩阵中输入公式,规则引擎将会计算行列条件都满足单元格的公式; |
SelectiveArray | 选择规则 | 选择决策表,预先设置行列规则和选择人员,然后根据业务逻辑进行勾选满足条件的单元格,系统将满足条件单元格的参与者进行返回。 |
SortedArray | 排序规则 | 排序决策表,预先设置行列规则和选择人员,在需要审核的单元格中按照顺序输入阿拉伯数字,系统将会按照数字顺序将审核人员进行串联起来。 |
基本属性
编码,设置业务规则的编码
显示名称,设置业务规则的显示名称
决策表类型,选择业务规则的类型
作用域,共有和私有2种类型,当为共有类型,可以在其他规则表中引用当前规则,否则不允许其他规则表应用当前规则表
描述,输入描述信息
执行方式
返回结果字段,只允许选择参与者类型,对选择规则和排序规则有效,将在行单元格中的参与者的值返回到指定的词汇中;
行的执行方式,可以选择Full和First,如果是Full会执行所有满足条件的单元格,如果是First则只返回第一个满足条件的单元格;
列的执行方式,与行的执行方式相同
举例说明:
编制规则
点击编辑规则,进入规则制定页面。
规则测试
点击规则工具栏中的运行按钮,将可以直接对规则进行测试验证,显示界面效果如下:
输入传入参数后,点击【运行】按钮,当有输出返回值时表示规则设置成功。
导入导出
当业务规则需要从测试环境迁移至正式环境时,我们可以采用导入导出的方式;
在需要导出的业务规则中,点击右边的导出按钮图标,系统会将该业务规则导出成一个XML文档,如下图所示:
导出的格式为XML文件。
在规则实例或者规则文件夹,右侧工具栏中,点击导入按钮图标,如图:
在导入界面中上传已下载的XML文件,点击导入进行完成导入。
当初次导入时,系统会自动创建,当更新导入时,需要修改业务规则编码和服务名称才能成功进行导入
列信息
列信息一般被用来编辑条件,支持多级表头方式。如下图所示:
我们在生产设备右侧区域的操作中点击新增子列,以添加多级表头。
列字段的定义界面如下:
显示名称,设置当前列的显示名称
默认列,是否默认列,如果选中表示该单元格执行条件永远成立
生效条件,设置当前单元格的生效条件,采用公式编辑器的方式(参考公式编辑器),例如设置:{Category}=='生产设备',表示词汇Category的值等于生产设备时,当前单元格的执行条件满足;
描述,输入描述信息
排序码,输入单元格的排序码;
行信息
行信息设置与列信息相似,一般用来设置参与者或者脚本表达式,如下图所示:
行信息编辑界面:
生效条件采用公式编辑器的方式(参考公式编辑器);
如果是脚本规则在生效条件中,直接输入的是表达式,例如{审核人}==张三;
如果是选择或者排序规则,那么在生效条件中直接输入参与者表达式,例如:张三;
脚本规则
脚本规则是执行所有满足条件的单元格的脚本,对词汇直接进行赋值。
参与者 | 办公用品 | 生产设备 | ||
采购金额<2000 | 采购金额>=2000 | 采购金额<10000 | 采购金额>=10000 | |
审核人 | 审核人=业务主管、部门总监 | 审核人=业务主管、财务总监、总经理 | 审核人=业务主管、部门总监 | 审核人=业务主管、部门总监、财务总监 |
选择规则
选择规则是将需要执行的单元格按照选中状态进行串联起来,将参与者最终赋值给指定的参与者类型词汇,例如以下表格
参与者 | 办公用品 | 生产设备 | ||
采购金额<2000 | 采购金额>=2000 | 采购金额<10000 | 采购金额>=10000 | |
业务主管 | √ | √ | √ | √ |
部门总监 | √ | √ | √ | |
财务总监 | √ | √ | ||
总经理 | √ |
表示含义为:
Ø 当采购类型是办公用品时
金额小于2000,需要业务主管、部门总监审核;
金额大于等于2000,需要业务主管、财务总监、总经理审核;
Ø 当采购类型是生产设备时
金额小于10000,需要业务主管、部门总监审核;
金额大于等于10000时,需要业务主管、部门总监、财务总监审核;
排序规则
排序规则是将所有需要执行的单元格将连续的数值连接起来,将参与者最终赋值给指定的参与者类型词汇,例如以下表格:
参与者 | 办公用品 | 生产设备 | ||
采购金额<2000 | 采购金额>=2000 | 采购金额<10000 | 采购金额>=10000 | |
业务主管 | 1 | 1 | 1 | 1 |
部门总监 | 2 | 2 | 2 | |
财务总监 | 2 | 3 | ||
总经理 | 3 |
表示涵义为:
Ø 当采购类型是办公用品时
金额小于2000,需要业务主管、部门总监按顺序审核;
金额大于等于2000,需要业务主管、财务总监、总经理审核;
Ø 当采购类型是生产设备时
金额小于10000,需要业务主管、部门总监审核;
金额大于等于10000时,需要业务主管、部门总监、财务总监审核;
业务规则方法应用
业务服务方法在流程需要绑定至主数据或者数据模型方法,存在以下2种方式调用(详细操作参考数据模型业务方法):
由系统方法绑定,如:Load/Update/Create/Remove/GetList等,在执行系统方法时自动执行业务服务方法;
由自定义方法绑定,需要通过业务动作节点或者活动节点事件进行调用;
数据模型方法绑定业务规则
由业务表单调用时,则直接通过系统API函数进行调用,参考接口手册:Engine.BizBus.Invoke方法。
业务动作节点-调用: