DMN Decision Table(决策表)

什么是决策表

    盘古BPM平台实现了如下的几种决策。

dmn标准说明

决策表表示决策逻辑(decision logic) 。它由输入,输出和规则组成。

规则策略素说明

UNIQUE:多个规则配置的时候,必须保证条件的输出唯一性。比如a<10 a<20 无论是否输出一致,直接报错。
FIRST:第一个规则满足条件之后就停止匹配后面的规则。
ANY:当多个规则都满足条件的时候,如果这些规则的输出不一样,则报错。
RULE_ORDER:当多个规则都满足条件的时候,依次将这些规则的执行结果存储起来
COLLECT:配合如下函数进行使用,SUM、COUNT、MIN、MAX。

dmn计算策略说明

    UNIQUE:多个规则配置的时候,必须保证条件输入唯一性。 如果多个规则满足,无论是否输出一致,直接报错。 如果没有满足条件的返回空。如果有1个规则满足条件,返回当前的。如果有多个规则满足条件,无论是否输出一致,直接报错。

    ANY:当多个规则都满足条件的时候,如果这些规则的输出不一样,则报错。如果有多个规则满足条件,但是输出一致,直接返回。

    FIRST:第一个规则满足条件之后就停止匹配后面的规则。如果没有满足条件的返回空。如果有多个规则满足条件,返回第一个。
 
    RULE ORDER当 多个规则都满足条件的时候,依次将这些规则的执行结果存储起来。
   COLLECT配合如下函数进行使用,SUM、COUNT、MIN、MAX。如果只使用hitPolicy="COLLECT"  == RULE ORDER 。如果使用aggregation,则使用了多输出条件,会报错。输出条件不是number类型,会报错。
 
 
dmn决策表定义说明
 
决策表说明
决策的名称以及值:分别对应decision标签的id和name
 input以及output分别对应输入和输出。
“U”对应策略,当有多个规则的时候该怎么输出
注释:规则的描述。
 
规则中支持的类型
  1. String
  2. boolean
  3. date
  4. Integer
  5. long
  6. double

规则文件格式

规则文件格式

input:定义输入参数,启动的时候需要传递该参数

output:定义输出参数
rule:定义规则,一个文件中可以定义多个规则
inputEntry:定义条件
outputEntry:满足条件之后,输出的结果

dmn决策表说明

决策表依赖

 

如果A依赖B,B依赖A,运行的时候会报错。

如果A依赖B,B依赖c,c依赖A,运行的时候会报错。
如果A依赖A,运行的时候会报错。(自我依赖也会报错)
 

技术支持:盘古BPM工作流平台

相关教程