欢迎来到天天文库
浏览记录
ID:38374161
大小:66.62 KB
页数:3页
时间:2019-06-11
《CKRule在线帮助-规则库-主规则-客户规则池初始化》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、在线帮助-规则库-主规则-客户规则池初始化1,客户规则池初始化初始化就是传入客户定义的规则数据,这部分数据可能来自于CKRule规则池测试界面,但常常是来自于数据库。即业务系统编辑好数据之后就把规则放入数据库中。在本站的一些测试项目中,主规则会出现如下的代码:var_table=LookDB(@"select''asid,sindexas""index"",''asreturnType,'Get'+nameaspropname,0ascodestyle,''asifcode,0asthencodeisscript
2、,'SET(""'+name+'"",'+CalcCode+');'asthencode,0aspriority,''asexecstepfrompoolset");InitPool(_table);ExePool();这一小段代码,只有3个方法。LookDB,InitPool和ExePool,意思分别为查找数据库,返回DataTable类型数据,使用数据初始化规则池,执行规则池。其中DataTable的格式如下:字段名.Net格式说明Idstring标识Id,可为空。Indexint规则显示顺序,可为0。Ret
3、urnTypestring当前方法返回类型,多数情况下为空。PropNamestring当前代码脚本生成的方法名,不能为空,不能重复。Codestyleint代码样式,0为设置式,1为If/Else式。If/Else式时IfCode一定要有内容,并返回bool类型。IfCodestringIf/Else式时IfCode一定要有内容,并返回bool类型,否则为空。IfCodeIsScriptintIf内容是否为脚本,0为表达式,1为脚本。一般为0。ThenCodestringThen逻辑内容,不能为空。Thenco
4、deIsScriptintThen内容是否为脚本,0为表达式,1为脚本。ElseCodestringElse逻辑内容,If/Else样式时使用,可为空。ElseCodeIsScriptintElse内容是否为脚本,0为表达式,1为脚本。Priorityint规则优先级,不可为空,数字大的规则先执行。ExecStepstring执行时机,设置之后,可以在ExePool中传入时机名称,以选择性地执行规则集合。上面是.Net的DataTable数据类型的格式,而数据库格式是根据业务系统所采用的数据库来确定的,如Orac
5、le可以这样设置。字段名格式IdVarchar2(50)IndexNumber(4)ReturnTypeVarchar2(50)PropNameVarchar2(50)CodestyleNumber(1)IfCodeVarchar2(1000)IfCodeIsScriptNumber(1)ThenCodeVarchar2(2000)ThencodeIsScriptNumber(1)ElseCodeVarchar2(2000)ElseCodeIsScriptNumber(1)PriorityNumber(4)Exe
6、cStepVarchar2(20)2,数据库访问LookDB方法是当前开发的唯一一个数据库访问接口,但CKRule自身没有数据访问能力,其定义了一个数据访问的基类,业务系统开发商实现该基类和相关数据访问代码之后就有数据库访问能力了。请打开CKRule设计程序,在工具-选项-数据库接口填写数据访问类的名称。而CkPoolSet.DBHandler是一个这样的类。该类实现了CKExpr.IDBHandler接口。
此文档下载收益归作者所有