Skip to end of metadata
Go to start of metadata

URule2技术交流QQ群及在线体验示例

在线体验示例:http://58.246.62.194:16808/urule-sample/ 为了不同用户操作互不影响,需要注册账号登录体验操作。

URule2技术交流QQ群:423339793

URule2规则引擎产品教学视频:https://pan.baidu.com/s/1oAeJeCM,密码:evsk


简介

       在之前的内容当中我们了解到,如果在决策集、决策表、决策树、评分卡或决策流中使用某个Spring Bean中定义的方法,那么可以使用动作库将目标Bean及相应的方法定义到其中,然后在具体的决策集、决策表、决策树、评分卡或决策流中导入这个动作库就可以使用了,这种类型方法调用,需要我们的显式的将目标动作库导入后方可使用。在URule中还提供了一种不需要导入动作库就可以调用类方法的方式,我们称之为内置的动作库,对于这些内置的动作库,用户无需导入可以直接使用。

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

       如上图所示,URule中目前提供的内置动作有三个,分别用于针对日期、字符串及常用数学函数的计算。这三类内置动作库中包含的方法及其作用描述如下表所示:

动作名称方法名 
日期  







格式化日期对给定日期按指定格式进行格式化,返回字符串。它需要两个参数:"目标日期","格式";目标日期是进行格式化的日期对象,格式是指怎样对这个日期进行格式化,它采用的是java中的日期格式化模式,常用值如:yyyy-MM-dd HH:mm:ss或yyyy年MM月dd日等
加日期对给定日期的年月日时分秒各字符添加值,返回日期对象,参数:"目标日期","年数","月数","天数","小时","分钟","秒数";如果只加其中某些区段,那么其它的可以加0,也就是不加。
日期加年

对给定日期的增加指定的年数,返回日期对象,参数:"目标日期","年数"。

日期加月对给定日期的增加指定的月数,返回日期对象,参数:"目标日期","月数"。
日期加天对给定日期的增加指定的天数,返回日期对象,参数:"目标日期","天数"。
日期加小时对给定日期的增加指定的小时数,返回日期对象,参数:"目标日期","小时数"。
日期加分钟对给定日期的增加指定的分钟数,返回日期对象,参数:"目标日期","分钟数"。
日期加秒对给定日期的增加指定的秒数,返回日期对象,参数:"目标日期","秒数"。
减日期对给定日期的年月日时分秒各字符减值,返回日期对象,参数:"目标日期","年数","月数","天数","小时","分钟","秒数";如果只减其中某些区段,那么其它的可以减0,也就是不减。
减日期减年对给定日期的减指定的年数,返回日期对象,参数:"目标日期","年数"。
减日期减月对给定日期的减指定的月数,返回日期对象,参数:"目标日期","月数"。
减日期减天对给定日期的减指定的天数,返回日期对象,参数:"目标日期","天数"。
减日期减小时对给定日期的减指定的小时数,返回日期对象,参数:"目标日期","小时数"。
减日期减分钟对给定日期的减指定的分钟数,返回日期对象,参数:"目标日期","分钟数"。
减日期减秒对给定日期的减指定的秒数,返回日期对象,参数:"目标日期","秒数"。
取年份取指定日期的年份,返回数字,参数:"目标日期"
取月份取指定日期的月份,返回数字,参数:"目标日期"
取星期取指定日期的星期,返回数字,参数:"目标日期"
取天取指定日期的天,返回数字,参数:"目标日期"
取小时取指定日期的小时,返回数字,参数:"目标日期"
取分钟取指定日期的分钟,返回数字,参数:"目标日期"
取秒取指定日期的秒,返回数字,参数:"目标日期"
日期相减返回毫秒两个日期相差操作,返回毫秒,参数:"日期","减去的日期"
日期相减返回秒两个日期相差操作,返回秒,参数:"日期","减去的日期"
日期相减返回分钟两个日期相差操作,返回分钟,参数:"日期","减去的日期"
日期相减返回小时两个日期相差操作,返回小时,参数:"日期","减去的日期"
日期相减返回天两个日期相差操作,返回天数,参数:"日期","减去的日期"
日期相减返回星期两个日期相差操作,返回星期数,参数:"日期","减去的日期"
字符串去空格去除目标字符串两边空格,返回字符串,参数:"目标字符串"
指定起始的字符串截取截取指定区段的字符串,返回字符串,参数:"目标字符串","开始位置","结束位置"
指定开始的字符串截取截取指定开始位置到结束的字符串,返回字符串,参数:"目标字符串","开始位置"
指定结束的字符串截取截取从第一个字符开始到指定位置结束的字符串,返回字符串,参数:"目标字符串","结束位置"
转小写将指定字符串换成小写(仅限英文),返回字符串,参数:"目标字符串"
转大写将指定字符串换成大写(仅限英文),返回字符串,参数:"目标字符串"
获取长度获取指定字符串长度,返回数字,参数:"目标字符串"
获取字符获取指定位置字符,返回字符,参数:"目标字符串","位置"
字符首次出现位置获取指定字符在当中字符串中首次出现的位置,返回数字,参数:"目标字符串","要查找的字符串"
字符最后出现位置获取指定字符在当中字符串中最后出现的位置,返回数字,参数:"目标字符串","要查找的字符串"
替换字符串用新字符串替换指定字符串,返回替换后的字符串,参数:"目标字符串","原字符串","新字符串"
数学函数求绝对值返回一个数字的绝对值,参数:"数字"
求最大值求给定两个数字中最大的那个数字,返回那个最大的数字,参数:"数字1","数字2"
求最小值求给定两个数字中最小的那个数字,返回那个最小的数字,参数:"数字1","数字2"
求正弦返回一个数字的正弦值,参数:"数字"
求余弦返回一个数字的余弦值,参数:"数字"
求正切返回一个数字的正切值,参数:"数字"
求余切返回一个数字的余切值,参数:"数字"
求e为底的对数返回一个数字以e为底的对数值,参数:"数字"
求10为底的对数返回一个数字以10为底的对数值,参数:"数字"
四舍五入返回一个数字四舍五入后的值,参数:“数字”

 

自定义内置动作库

 

       在用户使用过程当中,如果有一些自己内部常用的操作,而这些操作在URule中的内置动作库中又没有,那么可以利用URule中提供的自定义内置动作的方式定义自己的内置动作库。

       定义URule的内置动作库非常简单,只需要在需要暴露给用户使用的Spring bean中添加相应的annotation即可。我们先来看看URule中提供的针对字符串的内置动作库类的源码代码:

内置库代码示例

       可以看到,首先我们需要在”类“层面添加一个名为ActionBean的annotation,它只有一个属性,就是要定义这个内置动作的名称。然后在需要暴露的方法中添加两个annotation,分别是ActionMethod和ActionMethodParameter,ActionMethod是用来定义用户看到的方法名称的,而ActionMethodParameter则是用来定义用户看到的各个参数名称,它的names属性是一个数组,要求给出的描述参数要与当前方法的参数个数匹配,如果小于参数个数,那么用户将会看到后面的参数无描述信息。

       在类中定义好这些Annotation之后,将这个类配置到Spring当中,让其成为一个标准的Spring Bean,这样URule在启动时就会自动加载,并让其成为内置动作库,用户就可以直接使用了。

Labels
  • No labels