业务规则

业务规则可以自定义词汇表和规则,实现矩阵式的规则管理。例如以下采购申请审核矩阵:

参与者

办公用品

生产设备

采购金额<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种方式调用(详细操作参考数据模型业务方法):

    数据模型方法绑定业务规则

    

    由业务表单调用时,则直接通过系统API函数进行调用,参考接口手册:Engine.BizBus.Invoke方法。


业务动作节点-调用: