CN115081393B - 用于表达式实时组装文字展示的方法 - Google Patents
用于表达式实时组装文字展示的方法 Download PDFInfo
- Publication number
- CN115081393B CN115081393B CN202210850880.6A CN202210850880A CN115081393B CN 115081393 B CN115081393 B CN 115081393B CN 202210850880 A CN202210850880 A CN 202210850880A CN 115081393 B CN115081393 B CN 115081393B
- Authority
- CN
- China
- Prior art keywords
- expression
- expression tree
- assembling
- value
- tree
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
Abstract
本申请公开了一种用于表达式实时组装文字展示的方法。该方法包括:获取Fel引擎表达式规范的表达式;从该表达式中提取一个或多个变量,并获取该变量的定义值和当前值;基于该表达式、该定义值和该当前值来计算并输出表达式树;若该计算结果为真,则按照遍历规则将该表达式树组装成具有业务含义的表达式树文字描述;以及将该表达式树文字描述返回至客户端以供展示。
Description
技术领域
本申请涉及流程审批领域,并且更为具体地,涉及一种应用于带表达式的审批流程的控制方法。
背景技术
BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA、MBA等均将BPM包含在内。
通常,BPM也指针对流程管理的信息化系统,其特点是注重流程驱动为核心,实现端到端全流程信息化管理。
在日常应用中,表达式通常被用于控制流程的走向。表达式的解析用于向客户展示流程之所以这么走的原因是是否满足了表达式设置的条件,及当前条件的业务规则。
BPM已经是当下很多流程控制所使用流程管理平台。但其流程模版中针对流程表达式的设置是写死在模版中的,这样就存在以下两个问题:
第一、用户无法看出该表达式的实际含义究竟是什么;
第二、当表达式中所定义的变量名称、自定义计算函数名称、变量枚举值名称有修改的时候,客户端不能以新的名称向客户展示。
因此,本领域中急需一种能够实时解析表达式及组装表达式文字描述的方法,以实现对经修改表达式的实时显示。
发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在标识出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以作为稍后给出的更加详细的描述之序。
如上,现有技术无法满足向客户实时展示业务含义的表达式的各种参数的需求,也无法满足变量、函数、枚举值等改动后的实时更新展示。为了解决上述问题,本申请提出了一种用于表达式实时组装文字展示的方法。该方法能够展示表达式的具体业务含义,并且因为是实时生成的原因,即使表达式中的变量、函数、枚举值发生任何变化,也能实时在展示中体现出来。
根据一示例,描述了一种用于表达式实时组装文字展示的方法。
该方法包括:
获取Fel引擎表达式规范的表达式;
从该表达式中提取一个或多个变量,并获取该变量的定义值和当前值;
基于该表达式、该定义值和该当前值来计算并输出表达式树;
若该计算结果为真,则按照遍历规则将该表达式树组装成具有业务含义的表达式树文字描述;以及
将该表达式树文字描述返回至客户端以供展示。
根据本申请的优选实施例,基于该表达式、该定义值和该当前值来计算并输出表达式树进一步包括:基于该表达式、该定义值和该当前值来计算并输出计算结果;以及在输出该计算结果输出该表达式树。
根据本申请的优选实施例,将该表达式转换为专用数据结构。
根据本申请的优选实施例,该专用数据结构为BpmFunNode。
根据本申请的优选实施例,该遍历规则为从根节点开始遍历。
根据本申请的优选实施例,该遍历规则为从某个节点开始向下遍历。
根据本申请的优选实施例,按照遍历规则将该表达式树组装成具有业务含义的表达式树文字描述进一步包括:根据当前节点的类型来组装该表达式树。
根据本申请的优选实施例,根据当前节点的类型来组装该表达式树进一步包括:如果该当前节点为自定义函数,则根据自定义函数解析规则进行组装;如果该当前节点为变量,则根据该变量的定义值和当前值的枚举规则进行组装;以及如果该当前节点为具体值,则直接进行组装。
根据本申请的优选实施例,按照遍历规则将该表达式树组装成具有业务含义的表达式树文字描述进一步包括:从当前节点向上组装以生成该表达式树文字描述。
为能达成前述及相关目的,这一个或多个方面包括在下文中充分描述并在所附权利要求中特别指出的特征。以下描述和附图详细阐述了这一个或多个方面的某些解说性特征。但是,这些特征仅仅是指示了可采用各种方面的原理的各种方式中的若干种,并且本描述旨在涵盖所有此类方面及其等效方案。
附图说明
为了能详细理解本申请的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本申请的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。
在附图中:
图1是解说根据本申请的实施例的用于表达式实时组装文字展示的方法的流程图;以及
图2是解说根据本申请的实施例的用于表达式实时组装文字展示的方法中变量定义值的示例。
具体实施方式
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文所描述的概念的仅有配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。在某些实例中,以框图形式示出众所周知的组件以便避免淡化此类概念。
应当理解,基于本公开,其他实施例将是显而易见的,并且可以在不脱离本公开的范围的情况下做出系统、结构、过程或机械改变。
如众所周知的,Fel轻量级高效的表达式计算引擎。Fel源自于企业项目,其设计目的是为了满足不断变化的功能需求和性能需求。Fel是开放的,其引擎执行中的多个模块都可以扩展或替换。Fel的执行主要是通过函数实现运算符(例如,+、-等都是Fel函数)。所有这些函数都是可以替换的,扩展函数也非常简单。
Fel具有双引擎,同时支持解释执行和编译执行。可以根据性能要求选择执行方式。编译执行就是将表达式编译成字节码(生成java代码和编译模块都是可以扩展和替换的)。
以上已经介绍了BPM,而BPM引擎主要用于设计、后加、分析、修改和测试各种业务流程。BPM建模需要考虑业务人员的需求和可用性。建模过程中会出现业务规则——常规的BPM引擎的处理方式一般是支持脚本代码进行简单业务规则的处理,后来的BPM引擎为了保护规则的复用性和独立维护性,引入了规则引擎。但是发展到今天的BPM,渐渐能够将这些去求都整合到一起,甚至引入引擎的功能,连接外部数据,实现跨业务流程触发和驱动。这就是连接型智能BPM引擎。
本申请的技术方案基于上述两个引擎的功能。
现有技术中用于表达式的展示的方法通常包括以下几个步骤。
第一、构建一个Fel引擎表达式规范的表达式(例如:a>10&&b<5);
第二、实例化Fel,输入表达式及表达式中包含变量的值(例如:a=11,b=2);
第三、Fel计算引擎根据第一步骤中构建的表达式和第二步骤中设置的变量值,计算后返回结果T(表明计算结果通过);
第四、依据第三步骤中计算出的结果,系统来判断展示流程规则,并将流程阶段推进到下一阶段。
然而,如上所述,这种方法存在的问题是:用户无法看出该表达式的实际含义究竟是什么;并且当表达式中所定义的变量名称、自定义计算函数名称、变量枚举值名称有修改的时候,客户也无法看到更新的名称。
因此,本申请对上述流程进行了改进,以解决上述问题。
根据本申请的用于表达式实时组装文字展示的方法主要包括以下几个步骤:
第一、构建一个Fel引擎表达式规范的表达式(例如:a>10&&b<5);
第二、实例化Fel,输入表达式及表达式中包含变量的值(例如:a=11,b=2);
第三、Fel根据在第一步骤中构建的表达式和第二步骤中设置的变量值,计算后返回结果T(表明计算结果通过);
第四、依据在第三步骤中计算出的结果,系统根据当前表达式解析成表达式树;以及
第五、获取系统中当前流程中涉及到的相关变量的定义值,并根据第四步骤中生成的表达式树,根据遍历规则组装成具有业务含义的表达式的文字描述字符串以供展示。
以下结合附图来详细描述根据本申请的方法的实现过程。
参照图1和2,参照可执行本文所描述的一种或多种方法描绘了诸方面。尽管以下在图1中所描述的操作以特定次序呈现和/或如由示例组件执行,但应理解这些动作的次序以及执行动作的组件可取决于实现而变化。此外,应当理解,以下动作或功能可由专门编程的处理器、执行专门编程的软件或计算机可读介质的处理器、或由能够执行所描述的动作或功能的硬件组件和/或软件组件的任何其他组合来执行。
图1中描述了根据本申请的用于表达式实时组装文字展示的方法10的流程图。
如图1中所示,首先,在步骤101,从BPM流程管理引擎获取一个Fel引擎表达式规范的表达式(例如,a>10&&b<5)。
接着,在步骤102,从所获取的表达式中提取一个或多个变量,并从交易系统获取各个变量的定义值和当前值。
例如,变量为:a,b;
定义值为:a=交易金额,b=单笔金额;
当前值为:a=11,b=2。
接下来,在步骤103,将在步骤101处获取的表达式和在步骤102处获取的变量及其值输入到Fel计算引擎以供计算,并输出带节点计算结果的表达式树。
如果在步骤103的计算结果为F,则返回到步骤101继续获取下一表达式,并重复步骤102和103,直到BPM流程图中定义的表达式全部执行完毕后结束。
否则,若在步骤103的计算结果为T,则行进至步骤104,再次调用Fel引擎将表达式解析为表达式树。具体地,按照遍历规则将表达式树组装成具有业务含义的文字描述。
其中可以从系统获取表达式的各个变量的定义值。并且,根据各变量值,可将将表达式转换为专用数据结构BpmFunNode,即包含变量定义值的树形结构。
并且,如本领域技术人员能够领会的,遍历可以从根节点开始遍历,也可以从某个节点向下遍历。
如果到达最后一个节点,即该节点没有任何子节点时,判断该节点的类型。
如果该节点为自定义函数,则根据自定义函数解析规则来进行组装。
如果该节点为变量,则根据BpmFunNode的变量定义值和当前值枚举规则进行组装。
如果该节点是具体值,诸如以上提及的“a>9中的9”,则直接进行组装。
上述组装过程容易为本领域技术人员所理解,因此再此不进行进一步描述。
然后,根据遍历规则,由该节点向上组装生成表达式树的文字性描述。
最后,在步骤105处,将所生成的文字描述字符串返回至客户端以进行展示。
以下结合具体实施例来进一步描述该过程。
从BMP流程管理引擎获取Fel规范的表达式,例如:
(currency({SECURITY_nominal},"CNY")>100.00*10000.00&&{SECURITY_issuerRatingLevel}<=98)||in({SECURITY_securityTypeNew},"1","4")。
随后,将该表达式及其变量SECURITY_nominal,SECURITY_issuerRatingLevel,SECURITY_securityTypeNew的当前值输入到Fel引擎进行计算,得到计算结果。
如果计算结果为T,则将表达式解析为表达式树。
从系统中获取SECURITY_nominal,SECURITY_issuerRatingLevel,SECURITY_securityTypeNew三个变量的定义值。
图2中示出了变量定义值的示例。
然后,将解析结果按遍历规则组装成表达式具有业务含义的文字描述以供客户端进行展示。
例如,上述实施例中的表达式经采用本申请的方法进行解析组装后,最终展示的表达式为:
([单比券面总额]>100万AND[主体评级]小于等于BBB)OR[债券类别]属于([国债],[企业债])。
与现有技术相比,采用根据本申请的根据本申请的用于表达式实时组装文字展示的方法具有以下技术优势:
第一、能够向用户展示表达式的具体业务含义,从而实现了真正的可视化和人性化;
第二、在表达式中的变量、函数、枚举值发生任何变化的情况下,由于本申请中的变文字描述是实时生成的,因此能够向用户实时展示和体现这些变化,以加快工作节奏,提高工作效率。
根据本公开的各方面、要素、或要素的任何部分、或者要素的任何组合可用包括一个或多个处理器的“处理系统”来实现。处理器的示例包括:微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立的硬件电路以及其他配置成执行本公开中通篇描述的各种功能性的合适硬件。处理系统中的一个或多个处理器可以执行软件。软件应当被宽泛地解释成意为指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行件、执行的线程、规程、函数等,无论其是用软件、固件、中间件、微代码、硬件描述语言、还是其他术语来述及皆是如此。软件可驻留在计算机可读介质上。该计算机可读介质可以是非瞬态计算机可读介质。作为示例,非瞬态计算机可读介质包括:磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,紧致盘(CD)、数字多用盘(DVD))、智能卡、闪存设备(例如,记忆卡、记忆棒、钥匙驱动器)、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦式PROM(EPROM)、电可擦式PROM(EEPROM)、寄存器、可移动盘、以及任何其他用于存储可由计算机访问与读取的软件与/或指令的合适介质。作为示例,计算机可读介质还可包括载波、传输线、以及任何其他用于传送可由计算机访问和读取的软件和/或指令的合适介质。计算机可读介质可以驻留在处理系统中、在处理系统外部、或跨包括该处理系统的多个实体分布。计算机可读介质可以在计算机程序产品中实施。作为示例,计算机程序产品可包括封装材料中的计算机可读介质。本领域技术人员将认识到如何取决于具体应用和加诸于整体系统上的总体设计约束来最佳地实现本公开中通篇给出的所描述的功能性。
应该理解,所公开的方法中各步骤的具体次序或阶层是示例性过程的解说。基于设计偏好,应该理解,可以重新编排本文描述的方法或方法体系中各步骤的具体次序或阶层。所附方法权利要求以样本次序呈现各种步骤的要素,且并不意味着被限定于所呈现的具体次序或阶层,除非在本文中有特别叙述。
提供先前描述是为了使本领域任何技术人员均能够实践本文中所述的各种方面。对这些方面的各种改动将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。因此,权利要求并非旨在被限定于本文中所示出的各方面,而是应被授予与权利要求的语言相一致的全部范围,其中对要素的单数形式的引述并非旨在表示“有且仅有一个”(除非特别如此声明)而是“一个或多个”。除非特别另外声明,否则术语“一些”指的是一个或多个。引述一列项目中的“至少一个”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一者”旨在涵盖:至少一个a;至少一个b;至少一个c;至少一个a和至少一个b;至少一个a和至少一个c;至少一个b和至少一个c;以及至少一个a、至少一个b和至少一个c。本公开通篇描述的各种方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文中所公开的任何内容都并非旨在贡献给公众,无论这样的公开是否在权利要求书中被显式地叙述。
Claims (7)
1.一种用于表达式实时组装文字展示的方法,其特征在于,所述方法包括:
获取Fel引擎表达式规范的表达式;
从所述表达式中提取一个或多个变量,并获取所述变量的定义值和当前值;
基于所述表达式、所述定义值和所述当前值来计算并输出表达式树;
若计算结果为真,则按照遍历规则将所述表达式树组装成具有业务含义的表达式树文字描述;以及
将所述表达式树文字描述返回至客户端以供展示,
其中按照遍历规则将所述表达式树组装成具有业务含义的表达式树文字描述进一步包括:根据当前节点的类型来组装所述表达式树,
根据当前节点的类型来组装所述表达式树进一步包括:
如果所述当前节点为自定义函数,则根据自定义函数解析规则进行组装;
如果所述当前节点为变量,则根据所述变量的定义值和当前值的枚举规则进行组装;以及
如果所述当前节点为具体值,则直接进行组装。
2.如权利要求1所述的方法,其特征在于,基于所述表达式、所述定义值和所述当前值来计算并输出表达式树进一步包括:
基于所述表达式、所述定义值和所述当前值来计算并输出计算结果;以及
在输出所述计算结果输出所述表达式树。
3.如权利要求1所述的方法,其特征在于,将所述表达式转换为专用数据结构。
4.如权利要求3所述的方法,其特征在于,所述专用数据结构为BpmFunNode。
5.如权利要求1所述的方法,其特征在于,所述遍历规则为从根节点开始遍历。
6.如权利要求1所述的方法,其特征在于,所述遍历规则为从某个节点开始向下遍历。
7.如权利要求1所述的方法,其特征在于,按照遍历规则将所述表达式树组装成具有业务含义的表达式树文字描述进一步包括:
从当前节点向上组装以生成所述表达式树文字描述。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210850880.6A CN115081393B (zh) | 2022-07-19 | 2022-07-19 | 用于表达式实时组装文字展示的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210850880.6A CN115081393B (zh) | 2022-07-19 | 2022-07-19 | 用于表达式实时组装文字展示的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115081393A CN115081393A (zh) | 2022-09-20 |
CN115081393B true CN115081393B (zh) | 2023-09-15 |
Family
ID=83259141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210850880.6A Active CN115081393B (zh) | 2022-07-19 | 2022-07-19 | 用于表达式实时组装文字展示的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115081393B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460476A (zh) * | 2009-04-29 | 2012-05-16 | 诺基亚公司 | 用于书写数学表达式分析的方法、装置和计算机程序产品 |
CN103810152A (zh) * | 2013-11-11 | 2014-05-21 | 远光软件股份有限公司 | 可视化公式编辑器 |
CN106951427A (zh) * | 2016-01-07 | 2017-07-14 | 阿里巴巴集团控股有限公司 | 一种业务对象的数据抽取方法及装置 |
CN112068815A (zh) * | 2019-06-11 | 2020-12-11 | 华为技术有限公司 | 一种业务规则的处理方法及装置 |
CN113312392A (zh) * | 2021-06-04 | 2021-08-27 | 中国建设银行股份有限公司 | 轻量级的规则引擎处理方法及装置 |
CN113947297A (zh) * | 2021-09-30 | 2022-01-18 | 广州市玄武无线科技股份有限公司 | 一种基于模板变量的公式转换方法及系统 |
CN113987405A (zh) * | 2021-11-02 | 2022-01-28 | 山东新汉唐数据科技有限公司 | 一种基于ast的数学表达式计算算法 |
-
2022
- 2022-07-19 CN CN202210850880.6A patent/CN115081393B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460476A (zh) * | 2009-04-29 | 2012-05-16 | 诺基亚公司 | 用于书写数学表达式分析的方法、装置和计算机程序产品 |
CN103810152A (zh) * | 2013-11-11 | 2014-05-21 | 远光软件股份有限公司 | 可视化公式编辑器 |
CN106951427A (zh) * | 2016-01-07 | 2017-07-14 | 阿里巴巴集团控股有限公司 | 一种业务对象的数据抽取方法及装置 |
CN112068815A (zh) * | 2019-06-11 | 2020-12-11 | 华为技术有限公司 | 一种业务规则的处理方法及装置 |
CN113312392A (zh) * | 2021-06-04 | 2021-08-27 | 中国建设银行股份有限公司 | 轻量级的规则引擎处理方法及装置 |
CN113947297A (zh) * | 2021-09-30 | 2022-01-18 | 广州市玄武无线科技股份有限公司 | 一种基于模板变量的公式转换方法及系统 |
CN113987405A (zh) * | 2021-11-02 | 2022-01-28 | 山东新汉唐数据科技有限公司 | 一种基于ast的数学表达式计算算法 |
Non-Patent Citations (1)
Title |
---|
互联网金融风控工作流配置与管理系统的研究与实现;余银明;中国优秀硕士学位论文全文数据库 信息科技辑(第01期);第I139-370页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115081393A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tax et al. | Mining local process models | |
CN112394922B (zh) | 决策配置方法、业务决策方法和决策引擎系统 | |
US7032210B2 (en) | Method and system for generating program source code of a computer application from an information model | |
JP5592591B2 (ja) | アイテム間のリレーションシップの生成、およびアイテムのナビゲートをするためのシステム | |
JP5166519B2 (ja) | ソフトウェア資産ベースのソリューションを開発する一貫した方法システムおよびコンピュータ・プログラム | |
JP2013120605A (ja) | 情報の検証 | |
US8849673B2 (en) | Rule generation | |
US8650532B2 (en) | Change notification and information update based on uncompiled software development project | |
JP4001286B2 (ja) | プログラム保守支援装置、プログラム保守支援方法、およびプログラム | |
EP1725922A2 (en) | Methods and systems for automated data processing | |
Filipovikj et al. | Integrating pattern-based formal requirements specification in an industrial tool-chain | |
CN104391731A (zh) | 一种基于c#的与数据类型无关的编辑方法 | |
Durai et al. | A novel approach with an extensive case study and experiment for automatic code generation from the XMI schema Of UML models | |
CN115081393B (zh) | 用于表达式实时组装文字展示的方法 | |
US20210224046A1 (en) | Workflow engine for generating code based on visualizations | |
Nowakowski et al. | Requirements-level language and tools for capturing software system essence | |
Lu et al. | Zen-CC: An automated and incremental conformance checking solution to support interactive product configuration | |
EP4145761A1 (en) | A system and a method for automatic generation of smart contracts across blockchain platforms | |
Gönczy et al. | Methodologies for model-driven development and deployment: An overview | |
Riehl Figueiredo et al. | Automatic generation of ontologies from business process models | |
Ta’a et al. | Goal-ontology approach for modeling and designing ETL processes | |
Babkin et al. | Analysis of the consistency of enterprise architecture models using formal verification methods | |
Leopold | Business process management | |
Subahi et al. | A New Framework for Classifying Information Systems Modelling Languages. | |
CN115169290A (zh) | 用于标识表达式计算路径的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |