内置动作定义

​ 在之前的内容当中我们了解到,如果要在决策集、决策表、交叉决策表、决策树、评分卡、复杂评分卡或决策流中使用某个Spring Bean中定义的方法,那么可以使用动作库将目标Bean及相应的方法定义到其中,然后在具体的决策集、决策表、交叉决策表、决策树、评分卡、复杂评分卡或决策流中导入这个动作库就可以使用了,这种类型方法调用,需要我们的显式的将目标动作库导入后方可使用。

​ 在URule Pro中还提供了一种不需要导入动作库就可以调用类方法的方式,我们称之为内置的动作,对于这些内置的动作,按规范要求定义好后,用户无需导入就可以直接在所有规则文件中使用。

​ 对于内置动作的使用与用户自定义的动作库完全相同,不同地方在于内置动作不需要用户定义,也不需要用户导入,在任何一个决策集、决策表、交叉决策表、决策树、评分卡、复杂评分卡或决策流中可以直接使用,如下图所示:

​ 如上图所示,URule Pro中目前默认提供子大量的内置动作,用于获取当前规则以及针对日期、字符串、List集合、Map集合以及在决策集中调用其它规则文件或知识包等操作的动作。

​ 大部分的内置动作都比较简单,比如循环操作的内置动作就一个,那就是中断循环,该动作只能用在循环规则里,用于在一定条件下中断当前的循环规则。这里挑一些常用的内置动作加以介绍。

本文档是 URule Pro 4.0.0 所有内置动作、内置函数和比较操作符的汇总索引。


当前规则(CurrentRuleAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 当前规则对象 getCurrentRule Rule 返回当前执行的规则对象
2 当前规则名 getCurrentRuleName String 返回当前规则的名称
3 当前规则匹配的条件 getCurrentRuleCriterias Set<Criteria> 返回当前规则匹配时经历的条件节点集合

字符串(StringAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 去空格 trim 目标字符串 String 去除两边空格
2 指定起止的字符串截取 substring 目标字符串, 开始位置, 结束位置 String 截取指定区段
3 指定开始的字符串截取 substringForStart 目标字符串, 开始位置 String 从指定位置截取到末尾
4 指定结束的字符串截取 substringForEnd 目标字符串, 结束位置 String 从开始截取到指定位置
5 转小写 toLowerCase 目标字符串 String 转小写(仅英文)
6 转大写 toUpperCase 目标字符串 String 转大写(仅英文)
7 获取长度 length 目标字符串 Integer 返回字符串长度
8 获取字符 charAt 目标字符串, 位置 Character 返回指定位置字符
9 字符首次出现位置 indexOf 目标字符串, 要查找的字符串 Integer 查找子串首次出现位置
10 字符最后出现位置 lastIndexOf 目标字符串, 要查找的字符串 Integer 查找子串最后出现位置
11 替换字符串 replace 目标字符串, 原字符串, 新字符串 String 替换指定子串
12 拆分字符串为集合 split 目标字符串, 分隔符 List<String> 按分隔符拆分为集合

数学函数(MathAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 求绝对值 abs 数字 Number 返回绝对值
2 求最大值 max 数字1, 数字2 Number 返回两数中最大的
3 求最小值 min 数字1, 数字2 Number 返回两数中最小的
4 求正弦 in 数字 Number 返回正弦值
5 求余弦 cos 数字 Number 返回余弦值
6 求正切 tan 数字 Number 返回正切值
7 求余切 cot 数字 Number 返回余切值
8 求e为底的对数 log 数字 Number 返回自然对数
9 求10为底的对数 log10 数字 Number 返回以10为底的对数
10 向下取整 floor 数字 Number 向下取整
11 向上取整 round 数字 Number 向上取整
12 四舍五入 halfUp 数字, 小数位数 Number 按指定位数四舍五入
13 求指数 exp 底数, 幂 Double 计算指定幂次方

日期(DateAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 当前日期 getDate Date 返回当前日期
2 格式化日期 format 目标日期, 格式 String 按指定格式格式化日期
3 解析字符串为日期 formatString 日期字符串, 格式 Date 将字符串解析为日期
4 加日期 addDate 目标日期, 年数, 月数, 天数, 小时, 分钟, 秒数 Date 对日期加减年月日时分秒
5 日期加年 addDateForYear 目标日期, 年数 Date 加指定年数
6 日期加月 addDateForMonth 目标日期, 月数 Date 加指定月数
7 日期加天 addDateForDay 目标日期, 天数 Date 加指定天数
8 日期加小时 addDateForHour 目标日期, 小时数 Date 加指定小时数
9 日期加分钟 addDateForMinute 目标日期, 分钟数 Date 加指定分钟数
10 日期加秒 addDateForSecond 目标日期, 秒数 Date 加指定秒数
11 减日期 subDate 目标日期, 年数, 月数, 天数, 小时, 分钟, 秒数 Date 对日期减年月日时分秒
12 减日期减年 subDateForYear 目标日期, 年数 Date 减指定年数
13 减日期减月 subDateForMonth 目标日期, 月数 Date 减指定月数
14 减日期减天 subDateForDay 目标日期, 天数 Date 减指定天数
15 减日期减小时 subDateForHour 目标日期, 小时 Date 减指定小时数
16 减日期减分钟 subDateForMinute 目标日期, 分钟 Date 减指定分钟数
17 减日期减秒 subDateForSecond 目标日期, 秒数 Date 减指定秒数
18 取年份 getYear 目标日期 Integer 取年份
19 取月份 getMonth 目标日期 Integer 取月份(返回比实际少1)
20 取星期 getWeek 目标日期 Integer 取星期(星期日=1)
21 取天 getay 目标日期 Integer 取所在月份的天
22 取小时 getHour 目标日期 Integer 取小时
23 取分钟 getMinute 目标日期 Integer 取分钟
24 取秒 getSecond 目标日期 Integer 取秒
25 日期相减返回毫秒 dateDifMillSecond 日期, 减去的日期 Long 两日期相差毫秒
26 日期相减返回秒 dateDifSecond 日期, 减去的日期 Long 两日期相差秒
27 日期相减返回分钟 dateDifMinute 日期, 减去的日期 Long 两日期相差分钟
28 日期相减返回小时 dateDifHour 日期, 减去的日期 Long 两日期相差小时
29 日期相减返回天 dateDifDay 日期, 减去的日期 Long 两日期相差天数
30 日期相减返回星期 dateDifWeek 日期, 减去的日期 Long 两日期相差星期数
31 日期相减返回月 dateDifMonth 日期, 减去的日期 Integer 两日期相差月数
32 取指定月份天数 buildIncludeMonthDays 开始日期, 结束日期, 月份 int 时间段内指定月份的天数
33 取非指定月份天数 buildExcludeMonthDays 开始日期, 结束日期, 月份 int 时间段内非指定月份的天数

List集合(ListAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 求List大小 size 集合对象 int 返回集合大小
2 取List中指定位置对象 get 集合对象, 索引 Object 按索引取元素
3 求List中所有的数字最大值 max 包含所有数字的集合对象 Number 返回集合中最大数字
4 求List中所有的数字最小值 min 包含所有数字的集合对象 Number 返回集合中最小数字
5 向List中添加对象 add 集合对象, 要添加的对象 void 添加元素
6 集合排序 sort 集合对象, 属性名, 排序方式 List<Object> 按属性排序
7 抽取集合属性 retrive 集合对象, 属性名 List<Object> 抽取元素属性生成新集合
8 从List中删除对象 remove 集合对象, 要删除的对象 void 删除指定元素
9 指定对象是否存在 contains 集合对象, 要判断的对象 boolean 判断元素是否存在
10 List是否为空 isEmpty 集合对象 boolean 判断集合是否为空
11 实例化一个ArrayList newArrayListInstance ArrayList<Object> 创建空ArrayList

Map集合(MapAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 添加到Map put Map对象, key, value void 添加键值对
2 从Map中删除 remove Map对象, key void 删除指定键
3 指定Key是否存在 containsKey Map对象, key boolean 判断键是否存在
4 从Map中取值 get Map对象, key Object 根据键取值
5 返回Map大小 size Map对象 int 返回元素数量
6 返回Map的Key集合 keys Map对象 Set<String> 返回所有键
7 返回Map的值集合 values Map对象 Collection<Object> 返回所有值
8 创建一个HashMap实例 newHashMap HashMap<String, Object> 创建空HashMap

对象(ObjectAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 空字符串 toEmptyString String 返回空字符串""
2 null toNull Object 返回null
3 对象实例化 newObjectInstance 完整类路径 Object 根据类路径创建实例
4 根据对象创建新实例 newObjectInstanceByObject 目标对象 Object 根据对象创建新实例(非clone)
5 对象取值 getObjectProperty 目标对象, 属性名 Object 从对象中取属性值

调用(InvokeAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 知识包 invokeKnowledgePackage 知识包 void 调用已发布的知识包
2 规则文件 invokeFile 文件 void 调用规则文件

IF_ERROR(CommonAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 IF_ERROR iferror 值, 出错后值 Object 类似Excel的iferror,出错返回备用值

循环操作(LoopAction)

# 方法名 方法名(英文) 参数 返回值 说明
1 中断循环 breakLoop String 中断当前循环规则
2 当前循环对象 currentLoopObject Object 获取当前循环对象

内置函数系列

# 函数名 label(中文) 参数名 needProperty 说明
1 ActiveRule 激活当前互斥组规则 规则名 false 激活互斥组中指定名称的规则
2 ActiveAgenda 激活执行组 执行组名 false 激活执行组中的规则使其进入可匹配状态
3 ActivePended 激活执行组并执行 执行组名 false 激活执行组并立即执行匹配的规则
4 Sin 求正弦 对象 true 对象属性值的正弦
5 Cos 求余弦 对象 true 对象属性值的余弦
6 Tan 求正切 对象 true 对象属性值的正切
7 Ln 求自然对数 对象 true 对象属性值的自然对数
8 Exp 求e为底指数 对象 true 对象属性值的 e 指数
9 Trim 字符去空格 对象 true 对象属性值去空格
10 StringLength 计算字符长度 对象 true 对象属性值的字符串长度
11 Abs 求绝对值 对象 true 对象属性值的绝对值
12 Avg 求平均值 集合对象 true 集合元素属性值的平均值
13 MinValue 求最小值(数字) 集合对象 true 集合元素属性值的最小数字
14 InsertFact 插入对象到工作区 要插入的对象 false 插入Fact到工作区并触发更新
15 MaxValue 求最大值(数字) 集合对象 true 集合元素属性值的最大数字
16 Max 求最大值对象 集合对象 true 返回属性值最大的集合元素对象
17 Min 求最小值对象 集合对象 true 返回属性值最小的集合元素对象
18 Sum 求和 集合对象 true 集合元素属性值的总和
19 Count 统计数量 集合对象 false 返回集合大小

比较操作符系列

# 符号 Op枚举 Assertor类 左值类型 右值类型 说明
1 == Equals EqualsAssertor 任意 任意 相等比较,支持String/Number/Date/Boolean/Enum
2 != NotEquals NotEqualsAssertor 任意 任意 不相等(对null有特殊处理)
3 EqualsIgnoreCase EqualsIgnoreCase EqualsIgnoreCaseAssertor 任意 任意 忽略大小写相等
4 NotEqualsIgnoreCase NotEqualsIgnoreCase NotEqualsIgnoreCaseAssertor 任意 任意 忽略大小写不等
5 > GreaterThen GreaterThenAssertor 数字/日期 数字/日期 大于
6 >= GreaterThenEquals GreaterThenEqualsAssertor 数字/日期 数字/日期 大于等于
7 < LessThen LessThenAssertor 数字/日期 数字/日期 小于
8 <= LessThenEquals LessThenEqualsAssertor 数字/日期 数字/日期 小于等于
9 In In InAssertor 元素/集合 集合(字符串或Collection) 属于集合
10 NotIn NotIn NotInAssertor 元素/集合 集合 不属于集合
11 StartWith StartWith StartWithAssertor 字符串 字符串(前缀) 以…开头
12 NotStartWith NotStartWith NotStartWithAssertor 字符串 字符串(前缀) 不以…开头
13 EndWith EndWith EndWithAssertor 字符串 字符串(后缀) 以…结尾
14 NotEndWith NotEndWith NotEndWithAssertor 字符串 字符串(后缀) 不以…结尾
15 Null Null NullAssertor 任意 (忽略) 为null或空字符串
16 NotNull NotNull NotNullAssertor 任意 (忽略) 非null且非空字符串
17 Match Match MatchAssertor 字符串 字符串(正则) 正则匹配
18 NotMatch NotMatch NotMatchAssertor 字符串 字符串(正则) 正则不匹配
19 Contain Contain ContainAssertor 字符串/集合 子串/元素/集合 包含
20 NotContain NotContain NotContainAssertor 字符串/集合 子串/元素/集合 不包含
21 Between Between BetweenAssertor 数字/日期 区间字符串[a,b] 在区间内
22 NotBetween NotBetween NotBetweenAssertor 数字/日期 区间字符串[a,b] 不在区间内

results matching ""

    No results matching ""