用于标识表达式计算路径的方法技术

技术编号:35195728 阅读:29 留言:0更新日期:2022-10-12 18:25
本申请公开了一种用于标识表达式计算路径的方法,该方法包括:获取Fel引擎表达式规范的表达式;从该表达式中提取一个或多个变量,并获取该变量的定义值和当前值;基于该表达式、该定义值和该当前值来计算并输出表达式树;若该计算结果为真,则遍历该表达式树以生成具有业务含义且具有标识的表达式树的文字描述;以及若该计算结果为假,则继续获取下一表达式,并重复上述步骤。并重复上述步骤。并重复上述步骤。

【技术实现步骤摘要】
用于标识表达式计算路径的方法


[0001]本申请涉及带流程条件的流程审批控制领域,并且更为具体地,涉及一种用于标识表达式计算路径的方法。

技术介绍

[0002]如众所周知的,Fel轻量级高效的表达式计算引擎。Fel源自于企业项目,其设计目的是为了满足不断变化的功能需求和性能需求。Fel是开放的,其引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现运算符(例如,+、-等都是Fel函数)。所有这些函数都是可以替换的,扩展函数也非常简单。
[0003]Fel具有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)。
[0004]在流程控制中,后台根据流程条件对流程中输入的变量进行计算。如果满足流程条件,即可进入审批流程的下一阶段。用户界面用于向用户展示进入此审批阶段的原因(即,流程条件表达式)。表达式中满足设置条件的部分被高亮展示,以向用户做出提示。
[0005]然而,现有技术只能满足得到整个表达式的计算结果,却无法精细化地得到表达式树的各个节点的计算结果。因此,在冗长的表达式计算中不能看到表达式的各段的计算结果,从而无法判断究竟是哪些变量不满足当前条件。
[0006]因此,本领域中急需一种能够对表达式的计算路径进行显式标识,从而能够使用户根据标识结果对不符合要求的变量进行修改,以使表达式顺利通过的方法。

技术实现思路

[0007]以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在标识出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以作为稍后给出的更加详细的描述之序。
[0008]如上,现有技术无法满足向客户展示业务含义的表达式的各个节点的结果的需求。为了解决上述问题,本申请提出了一种用于标识表达式的计算路径的方法。该方法能够通过遍历Fel计算引擎返回的表达式树节点,对计算结果为T(真)的节点,通过增加HTML来增加颜色标识,从而能够实现表达式的关键节点的高亮显示。基于此,用户就能够确认究竟是表达式中哪些变量出现了问题导致无法满足表达式,从而进行相应的适配,以保证审批流程的正常进行。
[0009]根据一示例,描述了一种用于标识表达式计算路径的方法。
[0010]该方法包括:获取Fel引擎表达式规范的表达式;
[0011]从该表达式中提取一个或多个变量,并获取该变量的定义值和当前值;
[0012]基于该表达式、该定义值和该当前值来计算并输出表达式树;
[0013]若该计算结果为真,则遍历该表达式树以生成具有业务含义且具有标识的表达式树的文字描述;以及
[0014]若该计算结果为假,则继续获取下一表达式,并重复上述步骤。
[0015]根据本申请的优选实施例,该表达式树具有各节点的计算结果。
[0016]根据本申请的优选实施例,该标识基于该表达式树的节点计算结果。
[0017]根据本申请的优选实施例,该标识用于区分计算结果为真的节点和计算结果为假的节点。
[0018]根据本申请的优选实施例,通过增加HTML来增加该表达式树的颜色标识以区分该表达式树的关键节点。
[0019]根据本申请的优选实施例,通过增加HTML以外格式的其他数据结构以标识该表达式树以区分该表达式树的关键节点。
[0020]为能达成前述及相关目的,这一个或多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或多个方面的某些解说性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方案。
附图说明
[0021]为了能详细理解本申请的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本申请的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。
[0022]在附图中:
[0023]图1是解说根据本申请的实施例的用于标识表达式计算路径的方法的流程图;以及
[0024]图2是解说根据本申请的实施例的方法对Fel引擎进行代码修改的示意图;以及
[0025]图3是解说根据本申请的实施例的方法对Fel引擎进行代码修改的又一示意图。
具体实施方式
[0026]以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在某些实例中,以框图形式示出众所周知的组件以便避免淡化此类概念。
[0027]应当理解,基于本公开,其他实施例将是显而易见的,并且可以在不脱离本公开的范围的情况下做出系统、结构、过程或机械改变。
[0028]以上已经介绍了Fel引擎,本申请的技术方案基于该引擎的功能。
[0029]现有技术中用于表达式的展示的方法通常包括以下步骤:
[0030]第一,构建一个Fel引擎表达式规范的表达式(例如,a>10&&b<5);
[0031]第二,实例化Fel,传入表达式及表达式中包含变量的值(a=1,b=2);以及
[0032]第三,经Fel引擎计算后返回结果F(表明计算结果不通过)。
[0033]然而,如上所述,这种方法存在的问题是:用户无法看出该表达式的哪个步骤中的哪个变量导致表达式未通过,因此无法对相应变量进行调整和适配,从而造成大量的人员和时间成本的浪费。
[0034]因此,本申请对上述流程进行了改进,以解决上述问题。
[0035]以下结合附图来详细描述根据本申请的实施例的用于标识表达式计算路径方法的具体实现过程。
[0036]图1中解说了根据本申请的实施例的用于标识表达式计算路径的方法的流程图。
[0037]如图1中所示,根据本申请的用于标识表达式计算路径的方法10主要包括以下步骤。
[0038]首先,在步骤101,从流程管理引擎获取一个Fel引擎表达式规范的表达式(例如,a>10&&b<5)。
[0039]接着,在步骤102,从所获取的表达式中取出一个或多个变量,并从交易系统获取各个变量的定义值和当前值。
[0040]以下结合示例来进行描述。
[0041]例如,变量为:a,b;
[0042]定义值为:a=交易金额,b=单笔金额;
[0043]当前值为:a=11,b=2。
[0044]接下来,在步骤103,将在步骤101处获取的表达式本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于标识表达式计算路径的方法,其特征在于,所述方法包括:获取Fel引擎表达式规范的表达式;从所述表达式中提取一个或多个变量,并获取所述变量的定义值和当前值;基于所述表达式、所述定义值和所述当前值来计算并输出表达式树;若所述计算结果为真,则遍历所述表达式树以生成具有业务含义且具有标识的表达式树的文字描述;以及若所述计算结果为假,则继续获取下一表达式,并重复上述步骤。2.如权利要求1所述的方法,其特征在于,所述表达式树具有各节点的...

【专利技术属性】
技术研发人员:汪宏斌杨敏健陈述贾浩陈美秋
申请(专利权)人:上海中汇亿达金融信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1