CN101500040A - 基于任意扩展属性规格的可配置流程调度和环节选取方法 - Google Patents
基于任意扩展属性规格的可配置流程调度和环节选取方法 Download PDFInfo
- Publication number
- CN101500040A CN101500040A CNA2009100249795A CN200910024979A CN101500040A CN 101500040 A CN101500040 A CN 101500040A CN A2009100249795 A CNA2009100249795 A CN A2009100249795A CN 200910024979 A CN200910024979 A CN 200910024979A CN 101500040 A CN101500040 A CN 101500040A
- Authority
- CN
- China
- Prior art keywords
- value
- expression
- link
- rule
- flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种基于任意扩展属性规格的可配置流程调度和环节选取方法,把输入的动态条件定义成有规则的组合表达式,具体步骤包括:1)配置流程和环节,指定这个流程需求经过所有环节;2)配置流程对应的动态规则,包括建立规则表达式,指明某种条件对应某个环节;3)针对所选流程,结合流程配置的一组动态规则动态运算出流程应该经过环节。本发明与现有技术相比,简化代码开发量,大量的判断性逻辑代码开发可以直接通过表达式的组合配置达到效果。
Description
技术领域
本发明属于电信业务管理技术领域,具体是一种基于任意扩展的属性规格的、可配置的流程调度和环节选取方法,它可以应用在电信行业业务支撑软件系统中,对业务处理流程、企业管理流程、服务保障流程等企业流程进行管理的应用软件里,就流程调度规则包括流程模板选择、流程环节选取、流程运行条件判断而需要应用某种规则算法的场合。
背景技术
当前使得流程调度和环节选取的规则可配置的方法在实现方案上还不是十分明确和较具有系统性,简单的参数配置设计可以在一定程度上实现可配置性,引入第三方的规则引擎软件也是解决方案之一。但无疑前者未经过理论指导且只能部分地解决问题,而后者解决问题的能力就完全取决于引入的第三方软件了。
正则表达式:用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如表达式“ab+”描述的特征是“一个’a’和任意个’b’”,那么’ab’,’abb’,’abbbbbbbbbb’都符合这个特征。正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活方便。(3)用来替换,比普通的替换更强大。
发明内容
发明目的:此发明是针对目前生产流程中,根据输入的条件动态判断流程的走向问题,输入的条件是灵活多变的,所以条件的变动会引起代码的修改,代码的修改和维护带来每更改一处就要更新软件版本的问题。此发明把输入的动态条件定义成有规则的组合表达式,减少了版本的更新频率,通过数据库配置就可以达到之前修改代码的目的。在发明应用后,效果良好。
技术方案:
一种基于任意扩展属性规格的可配置流程调度和环节选取方法,把输入的动态条件定义成有规则的组合表达式,具体步骤包括:
1)配置流程和环节,指定这个流程需求经过所有环节;
2)配置流程对应的动态规则,包括建立规则表达式,指明某种条件对应某个环节;
3)针对所选流程,结合流程配置的一组动态规则动态运算出流程应该经过环节。
在属性动态规格的基础上配置规则,步骤包括:
1)先根据一定的规则对表达式做递归处理分解出原子表达式,并记录每步操作符;
2)对原子表达式进行规则判断,得到一组判断结果。
3)根据记录下的操作符和这组判断结果,得到最终结果。
4)根据最终结果选取当前流程环节是否需要经过。
所述规则如下:
1)″=″:用于判断值相当,包括空值的判断(即表示值为空),例如(10045=1)表示判断10045的新值是否为1;
2)!(10045=1):用于判断值为非,例如订单类型不是1的情况;
3)″<>″:用于判断不等的值,包括空值的判断(即表示值不为空);
4)″MOD″:用于判断值是否发生变化(即新旧值发生变化);
5)″ADD″:用于判断值是否是新增(即新值有,旧值没有);
6)″DEL″:用于判断值是否是删除(即新值没有,旧值有);
7)″KIP″:用于判断值是否是不变(即新旧值相同);
8)(O@10002=2)表示旧的产品规格是2的情况,@前是大写的字母O,没有则默认判断新值;
9)各个规则通过||和&&来表示之间的关系,所以要尽量加括号,如:
(10002=2)&&(10045=1)||(10002=4)&&(10045=3);应改为
((10002=2)&&(10045-1))||((10002=4)&&(10045二3));
10)(10045=1)||(10045=7):订单类型是1或者订单类型是7;
(10002=2)&&(10045=1):产品规格为2,且订单类型为1。
有益效果:本发明与现有技术相比,简化代码开发量,大量的判断性逻辑代码开发可以直接通过表达式的组合配置达到效果。
附图说明
图1:数据模型示意图
流程模板:对于某类相同流程抽象出的流程应用模板。
环节:对于某一流程模板中流程所涉及的环节配置。
流程规则:配置某种产品的某种业务应用的流程模板及动态规则。
动态规则配置:配置各种动态规则的自定义表达式及所涉及环节。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
在电信行业业务支撑软件系统中,在对业务处理流程、企业管理流程、服务保障流程等需要对流程进行管理的应用软件里,某种产品的某种业务需要配置流程模板以确定流程,流程模板上需要配置环节,以确定流程模板的全部走向。而不同产品不同业务输入属性值各不相同,需要配置动态规则判断在不同的属性值输入下,具体选取出所应用的流程模板中流程所要经过的不同环节。
本方法的核心思想是在使用数字编码的属性规格集上,属性规格是对一个特定属性做定义,比如产品代码10002等于2,通过自定义的表达式,以Java程序处理模块为驱动引擎,实现流程调度和环节选取策略的动态配置。自定义表达式是一组按一定规则,可自己定义的逻辑表达式,如:(10045=1)||(10045=7)。通过Java程序代码,处理规则并运算出结果,程序运行的基础是该方法的专有数据模型。
本方法以正则表达式的理论基础为理论指导,通过严密设计的一系列应用数据模型,辅以Java编写的一段解析语言,达到由用户自定义有规则的组合表达式的目的,并可由用户输入的条件过滤出一组或几组表达式,在此基础上进一步运用递归算法,解析出多组解析后的表达式,最后计算出结果。表达式的基本元素即为属性规格,这些属性规格是采用数字编码的,从而可以任意扩展。
该方法被设计为一个较通用的引擎部分,从而可以运用于流程调度、环节选取等多个需要可配置策略的场合。对于流程调度和环节选取的应用,配置人员事先配置好自定义表达式,也就是正确设定有规则的逻辑表达式,当系统运行时有不同属性值输入时,由于属性值可以随意输入,为判断是否满足环节选取条件,java程序处理模块会对事先配置好的自定义表达式进行解析,再结合输入的属性值进行逻辑运算,得到正确的环节以便选取出以供使用。)
本例中,步骤是,对数据模型变更脚本进行安装;对流程环节规则配置数据进行导入;对任意扩展性和可配置流程环节的程序进行同步更新。
具体来说,通过应用的数据模型(参见图1),根据输入的控制串表达式:如((10002=2)&&(10045=1))||((10002=4)&&(10045=3)),通过可配置流程调度和环节模块的逻辑进行编译和判定,步骤如下:
1、先根据一定的规则用同一方法对表达式做递归处理分解出原子表达式,并记录每步操作符。表达式规则如下:
1)″=″:用于判断值相当,包括空值的判断(即表示值为空),(10045=1)表示判断10045的新值是否为1;
2)!(10045=1)订单类型不是1的情况;
3)″<>″:用于判断不等的值,包括空值的判断(即表示值不为空);
4)″MOD″:用于判断值是否发生变化(即新旧值发生变化);
5)″ADD″:用于判断值是否是新增(即新值有,旧值没有);
6)″DEL″:用于判断值是否是删除(即新值没有,旧值有);
7)″KIP″:用于判断值是否是不变(即新旧值相同);
8)(O@10002=2)表示旧的产品规格是2的情况,@前是大写的字母O,没有则默认判断新值;
9)各个规则通过||和&&来表示之间的关系,所以要尽量加括号,如:(10002=2)&&(10045=1)||(10002=4)&&(10045=3);应改为((10002=2)&&(10045=1))||((10002=4)&&(10045=3));
10)(10045=1)||(10045=7)订单类型是1或者订单类型是7;
11)(10002=2)&&(10045=1)产品规格为2,且订单类型为1;
2、对原子表达式进行规则判断,得到一组判断结果。
3、根据记录下的操作符和这组判断结果,得到最终结果。
4、根据最终结果选取当前流程环节是否需要经过。
对于现在的这样一个配置,如:
((10045=72)||(10045=1165)||(10045=2)||(10045=280104)||(10045=7)||(10045=1171)||(10045=1172)||(10045=19)||(10045=20)||(10045=41)||(10045=48)||(10045=66)||(10045=67)||(10045=68)||(10045=3))&&((10005=618)||(10005=636))&&(11371=189)在当10045等于72,1165,2,280104,7,1171,1172,19,20,41,48,66,67,68,4这组数字其中之一的,并且10005等618或者636,并且11371等于189,这三组条件成立时,得到一个结果,为达到判断的目的,在同样条件下,通过原先程序来这样判断的话,必须先设计一组if((10045=72)||(10045=1165)||(10045=2)||(10045=280104)||(10045=7)||(10045=1171)||(10045=1172)||(10045=19)||(10045=20)||(10045=41)||(10045=48)||(10045=66)|(10045=67)||(10045=68)||(10045=3))这样的判断,再交集一组(10005=618)||(10005=636)这样的判断之后,再交集一组(11371=189)这样的条件判断,才能达到最终想要的结果,如果需要加一个条件值10045=333,则必需更新程序代码,而此本方法可使这三组程序转换为一组数据配置表达式,通过更新表达式达到修改的目的,而不需要修改程序发布更新等,表达式可作为数据配置,可动态更新,简化了程序修改和添加更多程序判断的复杂语句。
Claims (3)
1、一种基于任意扩展属性规格的可配置流程调度和环节选取方法,其特征是把输入的动态条件定义成有规则的组合表达式,具体步骤包括:
1)配置流程和环节,指定这个流程需求经过所有环节;
2)配置流程对应的动态规则,包括建立规则表达式,指明某种条件对应某个环节;
3)针对所选流程,结合流程配置的一组动态规则动态运算出流程应该经过环节。
2、根据权利要求1所述的基于任意扩展属性规格的可配置流程调度和环节选取方法,其特征是在属性动态规格的基础上配置规则,步骤包括:
1)先根据一定的规则对表达式做递归处理分解出原子表达式,并记录每步操作符;
2)对原子表达式进行规则判断,得到一组判断结果;
3)根据记录下的操作符和这组判断结果,得到最终结果;
4)根据最终结果选取当前流程环节是否需要经过。
3、根据权利要求2所述的基于任意扩展的属性规格的、可配置的流程调度和环节选取方法,其特征是所述规则如下:
1)″=″:用于判断值相当,包括空值的判断,即表示值为空;
2)!:用于判断值为非;
3)″<>″:用于判断不等的值,包括空值的判断,即表示值不为空;
4)″MOD″:用于判断值是否发生变化,即新旧值发生变化;
5)″ADD″:用于判断值是否是新增,即新值有,旧值没有;
6)″DEL″:用于判断值是否是删除,即新值没有,旧值有;
7)″KIP″:用于判断值是否是不变,即新旧值相同;
8)(0@xxxx)表示旧的产品xxxx的情况,@前是大写的字母0,没有则默认判断新值;
9)各个规则通过||和&&来表示之间的关系,所以要加括号;
10)||:用于表示“或”;
11)&&:用于表示“与”。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100249795A CN101500040A (zh) | 2009-03-02 | 2009-03-02 | 基于任意扩展属性规格的可配置流程调度和环节选取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100249795A CN101500040A (zh) | 2009-03-02 | 2009-03-02 | 基于任意扩展属性规格的可配置流程调度和环节选取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101500040A true CN101500040A (zh) | 2009-08-05 |
Family
ID=40946915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100249795A Pending CN101500040A (zh) | 2009-03-02 | 2009-03-02 | 基于任意扩展属性规格的可配置流程调度和环节选取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101500040A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446309A (zh) * | 2010-10-13 | 2012-05-09 | 清华大学 | 基于流程模式的工作流动态规划系统及方法 |
CN102495842A (zh) * | 2011-11-14 | 2012-06-13 | 安徽久鼎软件科技开发有限公司 | 交换需求描述模型及多应用域统一数据交换方法 |
CN102929973A (zh) * | 2012-10-16 | 2013-02-13 | 南京通达海信息技术有限公司 | 基于xml的规则定义和执行检查方法 |
CN105607942A (zh) * | 2015-12-23 | 2016-05-25 | 北京京东尚科信息技术有限公司 | 一种投票判定的方法和装置 |
-
2009
- 2009-03-02 CN CNA2009100249795A patent/CN101500040A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446309A (zh) * | 2010-10-13 | 2012-05-09 | 清华大学 | 基于流程模式的工作流动态规划系统及方法 |
CN102446309B (zh) * | 2010-10-13 | 2014-09-17 | 清华大学 | 基于流程模式的工作流动态规划系统及方法 |
CN102495842A (zh) * | 2011-11-14 | 2012-06-13 | 安徽久鼎软件科技开发有限公司 | 交换需求描述模型及多应用域统一数据交换方法 |
CN102929973A (zh) * | 2012-10-16 | 2013-02-13 | 南京通达海信息技术有限公司 | 基于xml的规则定义和执行检查方法 |
CN105607942A (zh) * | 2015-12-23 | 2016-05-25 | 北京京东尚科信息技术有限公司 | 一种投票判定的方法和装置 |
CN105607942B (zh) * | 2015-12-23 | 2019-01-08 | 北京京东尚科信息技术有限公司 | 一种投票判定的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101888655B (zh) | 网管系统中以模板方式配置网元数据的方法及装置 | |
CN106528129A (zh) | 一种Web应用界面生成系统及方法 | |
CN106844190B (zh) | 测试脚本自动生成方法及装置 | |
CN103164333B (zh) | 嵌入式设备系统web调测方法及系统、web服务器 | |
CN106293664A (zh) | 代码生成方法及装置 | |
CN104484269A (zh) | 一种自动生成测试脚本的方法 | |
CN102012945B (zh) | 一种面向用户的数据库管理系统 | |
CN103593456B (zh) | 表单自定义设计方法及装置 | |
CN105577475A (zh) | 自动化性能测试系统及方法 | |
CN101383871A (zh) | 一种网元配置的实现方法及装置 | |
CN102298739A (zh) | 一种变更物料清单的方法及装置 | |
CN101500040A (zh) | 基于任意扩展属性规格的可配置流程调度和环节选取方法 | |
CN102857949A (zh) | 一种规划数据一致性保证的方法和装置 | |
CN102236709A (zh) | 一种基于Flex的监控页面显示方法及系统 | |
CN110389766A (zh) | HBase容器集群部署方法、系统、设备及计算机可读存储介质 | |
CN111208982A (zh) | 基于可视化配置方式的erp系统快速定制平台 | |
CN107291522A (zh) | 一种面向自定义规则文件的编译优化方法及系统 | |
CN104391731A (zh) | 一种基于c#的与数据类型无关的编辑方法 | |
CN1329818C (zh) | 基于纯文本的命令脚本文件的人机命令实现方法 | |
CN103530134A (zh) | 一种可配置软件平台结构 | |
CN102103513B (zh) | 一种使用元数据和中间件快速开发软件的方法 | |
CN103500099A (zh) | 一种通过扩展点和扩展实现软件快速二次开发的方法 | |
CN102609494B (zh) | 台帐数据的处理方法及装置 | |
CN112100984A (zh) | 一种由ebom到sbom的数据转换方法及系统 | |
CN104731804A (zh) | 一种建立通用查询框架的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090805 |