[发明专利]一种业务规则的处理方法及装置有效
| 申请号: | 201910503129.7 | 申请日: | 2019-06-11 |
| 公开(公告)号: | CN112068815B | 公开(公告)日: | 2022-03-29 |
| 发明(设计)人: | 阮华斌;刘展宏 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F8/30 | 分类号: | G06F8/30 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 王洪 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 业务 规则 处理 方法 装置 | ||
1.一种业务规则的处理方法,其特征在于,包括:
获得输入的用于表征业务规则的因子表达式,所述业务规则用于描述业务对象之间的关系,所述因子表达式为使用因子和/或操作符表示的所述业务规则,所述因子用于表示所述业务对象;
解析所述因子表达式,生成对应的第一表达式节点链;
获得所述第一表达式节点链中各个节点对应的因子描述文件和操作符函数,其中,所述因子描述文件为当前程序语言执行环境所对应的可执行脚本,所述操作符函数为当前程序语言执行环境所对应的可执行函数;所述节点为所述因子或所述操作符;
遍历所述第一表达式节点链中各个节点,根据所述各个节点对应的因子描述文件和操作符函数,计算并输出所述因子表达式的值,所述因子表达式的值用于表示所述业务规则的执行结果;
其中,所述根据所述各个节点对应的因子描述文件和操作符函数,计算所述因子表达式的值,包括:
获取所述因子表达式中的至少一个操作符,并根据所述操作符的优先级,对所述至少一个操作符进行排序;
依次对排序后的至少一个操作符中的当前操作符,获取第七表达式节点链,其中,所述第七表达式节点链为所述第一表达式节点链中与所述当前操作符的关联表达式对应的表达式节点链;
根据所述各个节点对应的因子描述文件和操作符函数,计算所述第七表达式节点链的值;
根据所述至少一个操作符中的每个操作符的计算逻辑和所述每个操作符对应的所述第七表达式节点链的值,计算所述因子表达式的值;
其中,所述解析所述因子表达式,生成对应的第一表达式节点链,包括:
对所述因子表达式进行词法分析,获得N个单词,N为正整数;
遍历所述N个单词,判断所述N个单词中的各个单词是否为预设元素,并根据判断结果,生成所述第一表达式节点链;其中,所述预设元素为因子、左方括号、左圆括号、右圆括号、操作符、常量、右方括号中的一种或者多种。
2.根据权利要求1所述的方法,其特征在于,所述判断所述N个单词中的各个单词是否为预设元素,并根据判断结果,生成所述第一表达式节点链,包括:
针对所述N个单词中的第i个单词,i=1,2,3……N,依次执行以下步骤:
判断所述第i个单词是否为所述预设元素;
当所述第i个单词为因子时,将所述第i个单词添加至所述因子表达式中;
当所述第i个单词为左方括号时,解析所述左方括号内的参数的表达式对应的第二表达式节点链;
当所述第i个单词为左圆括号时,为所述左圆括号前的表达式创建第三表达式节点链,增加所述第三表达式节点链的优先级;
当所述第i个单词为右圆括号时,为所述右圆括号前的表达式创建第四表达式节点链,降低所述第四表达式节点链的优先级;
当所述第i个单词为操作符时,记录所述第i个单词与因子之间的关联关系,并为所述操作符的关联表达式创建第五表达式节点链;
当所述第i个单词为常量时,为所述常量创建第六表达式节点链;
当所述第i个单词为右方括号时,则设置i=i+1,并判断所述第i个单词是否为因子;
将所述第二表达式节点链至所述第六表达式节点链中的一个或者多个表达式节点链确定为所述第一表达式节点链。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910503129.7/1.html,转载请声明来源钻瓜专利网。





