CN113986203B - 一种触发器自动校验方法、***、电子设备及存储介质 - Google Patents
一种触发器自动校验方法、***、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113986203B CN113986203B CN202111242432.XA CN202111242432A CN113986203B CN 113986203 B CN113986203 B CN 113986203B CN 202111242432 A CN202111242432 A CN 202111242432A CN 113986203 B CN113986203 B CN 113986203B
- Authority
- CN
- China
- Prior art keywords
- trigger
- action
- node
- state
- verified
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种触发器自动校验方法***、电子设备及存储介质,包括以下内容:获取新配置的触发器的触发动作和执行动作,分别记为待验证的触发动作和待验证的执行动作;根据所述待验证的触发动作和待验证的执行动作获取平台数据库内的所有关联触发器,并构建虚拟的触发流程网状图;找到所述触发流程网状图上的触发动作源头,记为第一触发动作;以第一触发动作为开始节点,递归遍历所述触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若是,则为死循环,触发器校验不通过;反之,触发器校验通过;本发明能够有效防止死循环,在保证低代码、低成本开发,兼故平台通用性的同时,对于平台服务方价值意义极大。
Description
技术领域
本发明涉及工业互联网平台技术开发领域,尤其涉及一种触发器自动校验方法***、电子设备及存储介质。
背景技术
随着工业互联网管理平台的发展,越来越多的企业实现了生产线的上云服务,通过上云服务可以实现企业工厂的全方面统一管理,包括生产管理、物料管理、仓储管理以及设备管理等。由于工业互联网管理平台服务于各行各业,而每个行业的具体业务也有所不同,若针对每个企业的每个业务都单独开发代码,对于服务于上千家企业甚至上万家企业的平台服务方而言,显然不现实。为此,目前大部分平台服务方致力于通过低代码或者零代码实现业务管理,以降低平台的开发成本。如CN113094037A公开了一种表单和工作流的交互方法,该方法在不需要开发人员编写代码获取数据的情况,便可利用工作流引擎根据实际情况从表单引擎自动获取表单收集到的数据,从而使得表单和工作流的交互能够零代码实现;再如CN108399176A公开的一种基于规则的数据处理方法,该方法中公开了一种规则引擎,该规则引擎俗称“触发器”,通常由触发规则和目标执行动作组成,即当实际情况满足预先设定的触发条件后,***会自动执行固定动作。
通过前述的表单引擎、工作流引擎以及规则引擎的组合配置,即便是非软件工程师的销售人员也可以根据企业实际需求,在平台上快速配置出符合企业业务要求的管理***,大幅缩短了企业上云服务的部署时间,降低了企业的使用成本和平台服务方的开发成本;但是由于配置过于灵活,可能导致配置出来的流程错误或者触发器无法使用,其中最常见的就是触发器配置后出现多个触发器之间形成闭环触发情况,例如:A表单触发了B表单的数据变化,B表单触发了C表单的数据变化,C表单又返回触发了A表单的数据变化,即A、B、C三个表单之间出现了死循环,导致触发器无法使用。
针对这个问题,本领域技术人员致力于开发一种能够自动校验触发器触发逻辑的校验方法。
发明内容
针对上述技术问题,本发明提供了一种触发器自动校验方法,其可以准确判断触发器的配置是否合理,防止配置的触发器出现死循环,提高了平台配置触发器的正确性,间接提高了用户体验感。
一方面,本申请一实施例提供了一种触发器自动校验方法,包括以下步骤:
S100:配置一个触发器,所述触发器包括待验证的触发动作和待验证的执行动作;
S200:根据所述待验证的触发动作和待验证的执行动作获取平台数据库内的所有关联触发器,并构建虚拟的触发流程网状图;
所述触发流程网状图中包括节点和节点与节点之间的单项连线,所述单项连线与其两端连接的节点构成一个新的触发器,所述节点表示触发动作或者执行动作;所述单项连线表示触发动作到执行动作的方向;
S300:找到所述触发流程网状图上的触发动作源头,记为第一触发动作;
S400:以第一触发动作为开始节点,递归遍历所述触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若是,则为死循环,触发器校验不通过;反之,触发器校验通过。
一方面,本申请一实施例提供了一种触发器自动校验的***,包括:
数据获取模块,用于根据新配置触发器的待验证的触发动作和待验证的执行动作获取平台数据库内的所有关联触发器;
构建模块,用于整合、融合所有单个的所述关联触发器,构建一张虚拟的触发流程网状图;
查找模块,用于查找触发流程网状图的触发动作源头;
校验模块,用于以触发动作源头为开始节点,递归遍历所述触发流程网状图上的所有触发器,判定下游节点有无同时作为触发动作和执行动作的节点;若有,则为死循环,触发器校验不通过;反之,触发器校验通过。
可选的,所述步骤S100中所述的触发动作为触发表单或者触发流程;对应的,所述执行动作为执行表单或者执行流程。
可选的,所述步骤S200中构建虚拟的触发流程网状图的具体步骤如下:
S201:根据所述触发动作和执行动作获取数据库内的所有与其关联的触发器,形成触发器集合;
S202:将所述触发器集合内的所有触发器用到的触发动作和执行动作筛选出来,进行动作去重,得到动作节点集合;
S203:以步骤S100中待验证的触发动作和待验证的执行动作为首节点绘制到触发流程网状图中,然后以首节点为中心节点,将触发器集合内所有的触发器绘制到触发流程网状图上,并通过单项连线将节点连接,形成虚拟的触发流程网状图。
可选的,所述步骤S202后包括如下步骤:将所述动作节点集合内的所有动作元素,并将每个动作元素的入度归零;
所述入度表示指向该动作元素的单项连线的数量;
所述步骤S203中通过单项连线连接节点的同时,更新记录每个动作元素的入度数值;
所述步骤S300中的第一触发动作即为入度数值为0的动作元素。
可选的,若无所述入度数值为0的动作元素作为所述第一触发动作,则直接返回触发器校验不通过,后续步骤不再执行。
可选的,所述步骤S400的具体步骤如下:
S401:通过颜色标识每个下游节点进行遍历的过程;
具体的,用不同的颜色表示节点遍历的过程状态,
第一种状态表示该节点未进行校验前的初始状态,该状态用第一种颜色表示;
第二种状态表示该节点已经作为某一触发器的触发动作进行了校验的状态,该状态用第二种颜色表示;
所述第一种状态到第二种状态单向变化,对应的第一种颜色到第二种颜色单向切换;
S402:在递归遍历所述触发流程网状图上的所有触发器过程中,若出现上一触发器的执行动作开始遍历下一个下游节点时,发现该下游节点颜色已经为第二种颜色,则表示该下游节点与已经遍历过的上游节点重复,触发器校验不通过。
可选的,所述S401的节点遍历的过程状态还包括第三种状态,所述第三种状态表示该节点的下游无节点或者下游节点遍历结束的状态;该状态用第三种颜色表示;
所述第一种状态、第二种状态、第三种状态依次单向变化,对应的第一种颜色、第二种颜色、第三种颜色单向切换。
一方面,本申请一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一方面,本申请一实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述方法的步骤。
本发明在触发器配置完成后,自动获取***内与配置触发器相关触发器,形成触发器合集,并对触发器的触发动作和执行动作进行整合去重,得到一个动作合集,然后以配置触发器的触发动作和执行动作为开始节点,以触发器合集内的所有触发器为基础,按照触发逻辑依次将触发器与开始节点建立触发关系,形成虚拟的全***的触发流程网状图,然后以触发流程网状图为依据,递归遍历触发流程网状图上的节点,判断下游节点与已经遍历过的上游节点是否重复,若是,则配置触发器会触发死循环,校验不通过,反之,则通过;通过前述过程进行触发器校验,可以避免配置的触发器在运行过程中出现死循环的情况,有效防止了触发器死循环导致***崩溃的情况,保证了销售和实施人员部署触发器的正确性,间接提高了客户体验感;此外由于防止了触发死循环的情况,因此避免了循环触发产生脏数据和数据覆盖的问题,也达到了提高***数据的准确性的效果。故本发明能够在保证低代码、低成本开发,以及兼故平台通用性的情况下,还能保证平台业务的正确运行,对于平台服务方而言价值意义极大。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,显而易见地,下面所介绍的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中一种触发器自动校验方法的流程示意图;
图2为图1中步骤S200中构建虚拟的触发流程网状图的具体流程示意图;
图3为图1中步骤S400中递归遍历判定是否存在死循环的具体流程示意图;
图4为一个具体实施例中全流程逻辑判断的流程示意图;
图5为一个具体实施例判定是否存在死循环的流程示意图一;
图6为一个具体实施例判定是否存在死循环的流程示意图二;
图7为一个具体实施例判定是否存在死循环的流程示意图三;
图8为本申请一实施例提供的触发器自动校验***的结构示意图;
图9为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
为进一步说明本申请实施例提供的技术方案,下面结合附图以及具体实施方式对此进行详细的说明。虽然本申请实施例提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。
在具体实践过程中,一个企业客户需要使用的触发器并不能一次性配置完成,而是通过使用过程中逐渐配置完善的。当然目前配置触发器也只能一个一个进行配置,一个触发器只有一个触发动作和执行动作,因此一个触发器不能实现连续触发。但是配置触发器的触发动作和执行动作可能与***内已有的触发动作和执行动作重复,因此就极有可能出现,配置的新触发器与已有触发器形成循环触发的情况。为了避免前述情况,本发明提供了一种触发器自动校验方法,通过拉取***内已有的关联触发器,经过触发器集合形成动作节点集合,再利用动作节点集合快熟构建虚拟的全***触发流程网状图,然后进行递归遍历校验,可以保证校验结果的正确性,同时整个计算逻辑简洁,提高了数据校验的运行速度;实现了快速、准确校验,防止了触发器循环触发,提高了平台业务的部署效率和用户使用体验感。
在介绍完本申请实施例的设计思想之后,下面对本申请实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本申实施例而非限定本发明具体使用场景。在具体实施时,可以根据实际需要灵活地应用本申请实施例提供的技术方案。
参照图1至图9,一种触发器自动校验方法,包括以下步骤:
S100:获取新配置的触发器的触发动作和执行动作,分别记为待验证的触发动作和待验证的执行动作;具体的,步骤S100中的触发动作为触发表单或者触发流程;对应的,执行动作为执行表单或者执行流程。
实际应用过程中,触发表单对应执行表单,触发流程对应执行流程。本实施例,将以触发表单对应执行表单进行示例应用。
如图4所示,具体实施时,例如新构建的触发器为“入库单”的“新增”动作触发“库存变动明细表”的“新增”动作,记为A触发器。
S200:根据待验证的触发动作和待验证的执行动作获取平台***数据库内的所有关联触发器,并构建虚拟的触发流程网状图;
触发流程网状图中包括节点和节点与节点之间的单项连线,单项连线与其两端连接的节点构成一个新的触发器,节点表示触发动作或者执行动作;单项连线表示触发动作到执行动作的方向。
在一实施例中,具体构建虚拟的触发流程网状图的步骤包括:
S201:根据待验证的触发动作和待验证的执行动作获取数据库内的所有与其关联的触发器,形成触发器集合;
如图4所示,具体实施时,例如根据“入库单”和“库存变动明细表”去查找***中使用了“入库单”和“库存变动明细表”的触发器,经过查找,没有使用“入库单”的其他触发器,使用了“库存变动明细表”的关联触发器分别有3个,分别是B触发器,C触发器和D触发器。A触发器与前述B、C、D三个触发器组成触发器集合。具体几个触发器得触发、执行关系如下:
A触发器-“入库单”的“新增”触发“库存变动明细表”的“新增”;
B触发器-“库存变动明细表”的“新增”触发“物料表”执行“更新”;
C触发器-“库存变动明细表”的“更新”触发“库存明细台账”执行“更新”;
D触发器-“库存明细台账” 的“更新”触发“库存变动明细表”执行“更新”。
S202:将触发器集合内的所有触发器用到的触发动作和执行动作筛选出来,进行动作去重,得到动作节点集合;
如图4所示,根据前述步骤的例子,本步骤具体实施时,先得到由表单组成的动作节点集合,去掉重复的表单,得到表单集合。去重后表单集合内共包含四个表单,分别是“入库单”、 “库存变动明细表”、 “物料表”、 “库存明细台账”。
S203:以步骤S100中待验证的触发动作和待验证的执行动作为首节点绘制到触发流程网状图中,然后以首节点为中心,先将表单集合内的表单以节点的方式绘制在首节点周围;最后按照触发器集合内的触发关系,通过单项连线将节点连接,形成虚拟的触发流程网状图。
在一实施例中,也可选择这种方式绘制触发流程网状图,即以首节点为中心后,先将表单集合内的表单以节点的方式绘制在首节点周围;最后按照触发器集合内的触发关系,通过单项连线将节点连接,形成虚拟的触发流程网状图。
如图4所示,根据前述步骤的例子,本步骤具体实施时,先将A触发器的节点绘制在图中,然后将表单集合内的表单全部绘制在“库存变动明细”或者“入库单”周围;最后结合触发器集合内的触发关系,参照图4中步骤1、2、3、4的过程,依次将B 、C、D三个触发器绘制在图中。本实施例中,步骤2加入的是D触发器,步骤3加入的是C触发器,步骤4加入的是B触发器,实际过程中加入触发器的过程并不受限制,最后构建形成完整的触发流程网状图,如图5所示。
S300:找到触发流程网状图上的触发动作源头,记为第一触发动作;
具体的,步骤S202后包括如下步骤:为动作节点集合内的每个动作元素设置入度,并将每个动作元素的入度归零;
如图4所示,本实施例将入度记为P,根据前述步骤的例子,本步骤具体实施时,步骤S202中的“入库单”、 “库存变动明细表”、 “物料表”、 “库存明细台账”的P=0;
入度-表示指向该动作节点的单项连线的数量。
步骤S203中通过单项连线连接节点的同时,更新记录每个动作元素的入度数值;
如图4所示,根据前述步骤的例子,本步骤具体实施时,最终得到的“库存明细台账”的P=2,因为有两个单项连线指回;“入库单”的P=0,因为没有单项连线指回;对应的“库存明细台账”和“物料”的P均等于1,因为均只有一个单项连线指回。
步骤S300中的第一触发动作即为入度数值为0的动作元素。
通过采用入度值的方式,可以在触发流程网状图画完的情况,马上找到入度值为0的第一触发动作,即可马上进行递归遍历校验步骤,可以有效提高触发器的校验效率。
若无入度数值为0的动作元素作为第一触发动作,则直接返回触发器校验不通过,后续步骤不再执行。因为当触发流程网状图上没有找到入度值为0的动作元素时,即表示该触发流程网状图非常的复杂和庞大,若此时再进行触发器校验,非常耗时,因此本发明,监测到没有入度值为0的当作元素时,直接结束校验,以进一步保证触发器的校验效率。
通过保证触发器的校验效率,以提升用户配置触发器的体验感,不会因为加了死循环校验规则,而降低用户体验感。
如图4所示,根据前述步骤的例子,本步骤具体实施时,“入库单”的P=0,故第一触发动作为入库单的“新增”动作。若无入度数值为0的动作元素作为第一触发动作,则直接返回触发器校验不通过,后续步骤不再执行。
S400:以第一触发动作为开始节点,递归遍历触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若有,则为死循环,触发器校验不通过;反之,触发器校验通过。
如图5所示,以“入库单”为第一触发动作,将其视为第一级节点,开始进行遍历,以“入库单”的“新增”,触发执行“库存变动明细”的“新增”,第一级节点的触发验证结束;然后,以“库存变动明细”为第二级节点,开始进行遍历,由于第二级别节点验证,存在多个支路触发器,需要全部进行校验,具体验证过程示例如下:
第一支路的验证:通过“库存变动明细”的“新增”,触发执行“物料”的“更新”;
第二支路的验证:通过“库存变动明细”的“更新”,触发执行“库存明细台账”的“更新”。
两个支路验证无先后顺序,其他实施例可以同时进行或者逐个进行,第二级节点校验结束。
继续进行第三级节点的遍历,“物料”表单后无触发动作,则“物料”表单这一支路的触发校验全部终结。“库存明细台账”表单这一支路下有触发动作,继续进行第三级节点的触发校验,该第三级节点的触发过程是“库存明细台账”的“更新”,触发执行“库存变动明细表”的“更新”。此时该触发器的下游节点就与已经遍历过的上有节点重复了,故平台***提示触发校验存在死循环,校验不通过。在一实施例中,步骤S400还包括如下步骤:
S401:通过颜色标识每个下游节点进行遍历的过程,确定下游节点颜色与状态的对应关系;
具体的,用不同的颜色表示节点遍历的过程状态,
第一种状态表示该节点未进行校验前的初始状态,该状态用第一种颜色表示;
第二种状态表示该节点已经作为某一触发器的触发动作(既该节点已经作为上游节点)进行了校验的状态,该状态用第二种颜色表示;
第一种状态到第二种状态单向变化,对应的第一种颜色到第二种颜色单向切换;
如图5至图7所示,根据前述步骤的例子,本步骤具体实施时,第一种颜色为白色,第二种颜色为灰色。故图5表示触发流程网状图没有启动数据校验,故所有节点均为白色。
S402:利用下游节点颜色和状态的对应关系,递归遍历下游节点,判定是否存在死循环情况。
具体的,在递归遍历触发流程网状图上的所有触发器过程中,若出现上一触发器的执行动作开始遍历下一个下游节点时,发现该下游节点颜色已经为第二种颜色,即表示节点状态与预设状态不对应,节点颜色也与预设颜色不对应,则表示该下游节点与已经遍历过的上游节点重复,触发器校验不通过。
如图6所示,根据前述步骤的例子,本步骤具体实施时,“入库单”为第一级节点进行校验后,即“入库单”的“新增”,触发执行“库存变动明细”的“新增”后,表示“入库单”该节点已作为上游节点进行了校验,故“入库点”节点颜色由白色变为灰色,此时“库存变动明细”节点未进行验证,颜色仍然为白色。依此原理,类推遍历,当“库存变动明细”的“更新”,触发执行“库存明细台账”的“更新”后,“库存变动明细”将由白色变为灰色;后面进行第三级节点校验时,即“库存明细台账”的“更新”,触发执行“库存变动明细表”的“更新”后,发现“库存变动明细表”该节点已经是灰色,而不是白色,则表示下游节点与已经遍历过的上游节点重复,触发器校验不通过,如图7所示。
在一具体实施例中,步骤S401的节点遍历的过程状态还包括第三种状态,第三种状态表示该节点的下游无节点或者下游节点遍历结束的状态;该状态用第三种颜色表示;
第一种状态、第二种状态、第三种状态依次单向变化,对应的第一种颜色、第二种颜色、第三种颜色依次单向切换。
如图5至图7所示,根据前述步骤的例子,本步骤具体实施时,图5表示暂未开始节点的递归遍历。
如图6所示,“入库单”该节点开始递归遍历,即“入库单”该节点已经通过公式“触发动作=新增,触发表单=入库单,目标表单=库存明细,执行动作=新增”,触发了“库存变动明细表”的“新增”。此时“入库单”节点的颜色由白色变更为灰色。
如7所示,“入库单”该节点开始递归遍历,即“入库单”该节点已经通过公式“触发动作=新增,触发表单=入库单,目标表单=库存明细,执行动作=新增”,触发了“库存变动明细表”的“新增”。此时“入库单”节点的颜色由白色变更为灰色。
接着,“库存变动明细表”的“新增”的执行动作执行后,“库存变动明细表”该节点也开始了递归遍历;其由白色变为灰色。
遍历“库存变动明细表”的第一分支,遍历触发公式是“触发动作=新增、触发表单=库存变动明细、目标表单=物料、执行动作=更新”,触发了“物料”的“更新”。当“物料”的“更新”执行完成后,“物料”该节点开始递归遍历其下级节点,“物料”由白色变为灰色,此时发现“物料表”下无下游节点,“物料表”遍历结束,由灰色变为黑色,黑色即表示前述的第三种颜色。
在一具体实施例中,为了进一步保证触发器校验效率,本发明的触发流程网状图的上连续触发的触发层级小于等于3,触发层级数大于3时,停止触发器校验。
如图5至图7所示,具体示例的触发层级刚好等于3,其他示例中,也可以进行更多层级触发校验,具体的触发层级数不受本实施例的限制。基于与上述事件联动处理方法相同的发明构思,本申请实施例还提供了一种触发器自动校验的***10,包括:
数据获取模块11,获取新配置的触发器的触发动作和执行动作,将触发动作记为待验证的触发动作,执行动作记为待验证的执行动作;
根据待验证的触发动作和待验证的执行动作获取平台***数据库内的所有关联触发器;
构建模块12,用于整合、融合所有单个的关联触发器,构建一张虚拟的触发流程网状图;
具体用于:构建关联触发器集合,并罗列所有关联触发器的触发动作和执行动作,去除触发动作或者执行动作中重复的动作,构建动作节点集合;然后取出动作节点集合中与待验证的触发动作和待验证的执行动作,将其作为首节点绘制到触发流程网状图中,然后以该首节点为中心,先将表单集合内的表单以节点的方式绘制在首节点周围;最后按照触发器集合内的触发关系,通过单项连线将节点连接,形成虚拟的触发流程网状图。
在一实施例中,构建模块12还包括计数单元121,计数单元在构建动作节点集合时,将其内的动作节点元素的入度值清零,同时在构建触发流程网状图时,对入度值进行记数。以便于找出入度值为0的动作节点元素,提高验证效率。
查找模块13,用于查找触发流程网状图的触发动作源头,即查找第一触发动作。
在一实施例中,查找模块直接查找入度值为0的动作节点,即可快速找到第一触发动作,进而找到触发验证入口。
校验模块14,用于以触发动作源头为开始节点,递归遍历触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若有,则为死循环,触发器校验不通过;反之,触发器校验通过。
在一实施例中,校验模块14内还包含有颜色辨识模块141,颜色辨识模块用于利用不同的颜色表示节点遍历的过程状态;即用不同颜色表示节点的不同状态,节点的第一种状态表示该节点未进行校验前的初始状态,该状态用第一种颜色表示;节点的第二种状态表示该节点已经作为某一触发器的触发动作进行了校验的状态。
第一种状态到第二种状态单向变化,对应的第一种颜色到第二种颜色单向切换;通过颜色来记录节点状态,能够更加直观的辨识节点状态。
在一实施例中,还可再设置一个终端显示模块15,终端显示模块用于当校验不通过时,弹出如图7的所示的报错的触发流程网状图,用户可通过颜色找到死循环处,便于用户重新设置新触发器,还可间接提高用户或者销售人员配置触发器的效率。
基于与上述事件联动处理方法相同的发明构思,本申请实施例还提供了一种电子设备20,该电子设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、服务器等。如图8所示,该电子设备还包括存储器21、处理器22及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述触发器自动校验方法。
处理器22可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器21作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器21还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于与上述事件联动处理方法相同的发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序包括程序指令,程序指令当被计算机执行时使计算机执行如前述实施例的触发器自动校验方法,计算机也可以为上述提到的触发器自动校验***的一部分。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
显然,本领域的技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (7)
1.一种触发器自动校验方法,其特征在于,包括以下步骤:
S100:获取新配置的触发器的触发动作和执行动作,分别记为待验证的触发动作和待验证的执行动作;
S200:根据所述待验证的触发动作和待验证的执行动作获取平台数据库内的所有关联触发器,并构建虚拟的触发流程网状图;
所述触发流程网状图中包括节点和节点与节点之间的单项连线,所述单项连线与其两端连接的节点构成一个触发器,所述节点表示触发动作或者执行动作;所述单项连线表示触发动作到执行动作的方向;
所述步骤S200中构建虚拟的触发流程网状图的具体步骤如下:
S201:根据所述待验证的触发动作和待验证的执行动作获取数据库内的所有与其关联的触发器,形成触发器集合;
S202:将所述触发器集合内的所有触发器用到的触发动作和执行动作筛选出来,进行动作去重,得到动作节点集合;
S203:以步骤S100中待验证的触发动作和待验证的执行动作为首节点绘制到触发流程网状图中,然后以首节点为中心节点,将触发器集合内所有的触发器绘制到触发流程网状图上,并通过单项连线将节点连接,形成虚拟的触发流程网状图;
所述步骤S202后包括如下步骤:为所述动作节点集合内的每个动作元素设置入度,并将每个动作元素的入度归零;
所述入度表示指向该动作元素的单项连线的数量;
所述步骤S203中通过单项连线连接节点的同时,更新记录每个动作元素的入度数值;
所述步骤S300中的第一触发动作即为入度数值为0的动作元素;
S300:找到所述触发流程网状图上的触发动作源头,记为第一触发动作;
S400:以第一触发动作为开始节点,递归遍历所述触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若是,则为死循环,触发器校验不通过;反之,触发器校验通过;
所述步骤S400的具体步骤如下:
S401:通过颜色标识每个下游节点进行遍历的过程,确定下游节点颜色与状态的对应关系;
具体的,用不同的颜色表示节点遍历的过程状态,
第一种状态表示该节点未进行校验前的初始状态,该状态用第一种颜色表示;
第二种状态表示该节点已经作为某一触发器的触发动作进行了校验的状态,该状态用第二种颜色表示;
所述第一种状态到第二种状态单向变化,对应的第一种颜色到第二种颜色单向切换;
S402:利用下游节点颜色和状态的对应关系,递归遍历下游节点,判定是否存在死循环情况;
具体的,在递归遍历所述触发流程网状图上的所有触发器过程中,若出现上一触发器的执行动作开始遍历下一个下游节点时,发现该下游节点颜色已经为第二种颜色,则表示产生了闭环,触发器校验不通过。
2.如权利要求1所述的触发器自动校验方法,其特征在于:所述步骤S100中所述的触发动作为触发表单或者触发流程;对应的,所述执行动作为执行表单或者执行流程。
3.如权利要求1所述的触发器自动校验方法,其特征在于:若无所述入度数值为0的动作元素作为所述第一触发动作,则直接返回触发器校验不通过,后续步骤不再执行。
4.如权利要求1所述的触发器自动校验方法,其特征在于:所述S401的节点遍历的过程状态还包括第三种状态,所述第三种状态表示该节点的下游无节点或者下游节点遍历结束的状态;该状态用第三种颜色表示;
所述第一种状态、第二种状态、第三种状态依次单向变化,对应的第一种颜色、第二种颜色、第三种颜色依次单向切换。
5.一种触发器自动校验的***,包括:
数据获取模块,用于根据配置一个触发器的待验证的触发动作和待验证的执行动作获取平台数据库内的所有关联触发器;
构建模块,用于整合、融合所有单个的所述关联触发器,构建一张虚拟的触发流程网状图;
具体的,构建虚拟的触发流程网状图的具体过程如下:
根据所述待验证的触发动作和待验证的执行动作获取数据库内的所有与其关联的触发器,形成触发器集合;
将所述触发器集合内的所有触发器用到的触发动作和执行动作筛选出来,进行动作去重,得到动作节点集合;
将待验证的触发动作和待验证的执行动作为首节点绘制到触发流程网状图中,然后以首节点为中心节点,将触发器集合内所有的触发器绘制到触发流程网状图上,并通过单项连线将节点连接,形成虚拟的触发流程网状图;
查找模块,用于查找触发流程网状图的触发动作源头;
具体的,为所述动作节点集合内的每个动作元素设置入度,并将每个动作元素的入度归零;
所述入度表示指向该动作元素的单项连线的数量;
通过单项连线连接节点的同时,更新记录每个动作元素的入度数值;
入度数值为0的动作元素为触发动作源头;
校验模块,用于以触发动作源头为开始节点,递归遍历所述触发流程网状图上的所有触发器,判断下游节点与已经遍历过的上游节点是否重复;若有,则为死循环,触发器校验不通过;反之,触发器校验通过;
具体的,通过颜色标识每个下游节点进行遍历的过程,确定下游节点颜色与状态的对应关系;
具体的,用不同的颜色表示节点遍历的过程状态;
第一种状态表示该节点未进行校验前的初始状态,该状态用第一种颜色表示;
第二种状态表示该节点已经作为某一触发器的触发动作进行了校验的状态,该状态用第二种颜色表示;
所述第一种状态到第二种状态单向变化,对应的第一种颜色到第二种颜色单向切换;
利用下游节点颜色和状态的对应关系,递归遍历下游节点,判定是否存在死循环情况;
在递归遍历所述触发流程网状图上的所有触发器过程中,若出现上一触发器的执行动作开始遍历下一个下游节点时,发现该下游节点颜色已经为第二种颜色,则表示产生了闭环,触发器校验不通过。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该计算机程序指令被处理器执行时实现权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242432.XA CN113986203B (zh) | 2021-10-25 | 2021-10-25 | 一种触发器自动校验方法、***、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111242432.XA CN113986203B (zh) | 2021-10-25 | 2021-10-25 | 一种触发器自动校验方法、***、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113986203A CN113986203A (zh) | 2022-01-28 |
CN113986203B true CN113986203B (zh) | 2022-05-17 |
Family
ID=79741112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111242432.XA Active CN113986203B (zh) | 2021-10-25 | 2021-10-25 | 一种触发器自动校验方法、***、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986203B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468508A (zh) * | 2014-09-04 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 代码检测方法及装置 |
CN105989440A (zh) * | 2015-02-12 | 2016-10-05 | 杨波 | 一种流程自定义的处理方法及其工作流引擎 |
CN113393553A (zh) * | 2021-06-18 | 2021-09-14 | 中国工商银行股份有限公司 | 生成流程图的方法、装置和电子设备 |
CN113434265A (zh) * | 2020-03-23 | 2021-09-24 | 阿里巴巴集团控股有限公司 | 工作流调度方法、服务器和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2709291B1 (en) * | 2011-05-11 | 2018-10-10 | LG Electronics Inc. | Method and apparatus for mtc in a wireless communication system |
-
2021
- 2021-10-25 CN CN202111242432.XA patent/CN113986203B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468508A (zh) * | 2014-09-04 | 2016-04-06 | 阿里巴巴集团控股有限公司 | 代码检测方法及装置 |
CN105989440A (zh) * | 2015-02-12 | 2016-10-05 | 杨波 | 一种流程自定义的处理方法及其工作流引擎 |
CN113434265A (zh) * | 2020-03-23 | 2021-09-24 | 阿里巴巴集团控股有限公司 | 工作流调度方法、服务器和介质 |
CN113393553A (zh) * | 2021-06-18 | 2021-09-14 | 中国工商银行股份有限公司 | 生成流程图的方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113986203A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010359B2 (en) | Multi-entity normalization | |
US20210342313A1 (en) | Autobuild log anomaly detection methods and systems | |
Padgham et al. | Model-based test oracle generation for automated unit testing of agent systems | |
EP4369180A2 (en) | Callpath finder | |
US8832658B2 (en) | Verification framework for business objects | |
US20230195728A1 (en) | Column lineage and metadata propagation | |
CN107533504A (zh) | 用于软件分发的异常分析 | |
CN110460460B (zh) | 业务链路故障定位方法、装置及设备 | |
CN107885660A (zh) | 基金***自动化测试管理方法、装置、设备及存储介质 | |
US20110145518A1 (en) | Systems and methods for using pre-computed parameters to execute processes represented by workflow models | |
CN115237422A (zh) | 代码编译方法、装置、计算机设备和存储介质 | |
CN117950763A (zh) | 一种基于activiti工作流引擎的流程处理方法 | |
US11106526B1 (en) | Architecture-based root cause analysis | |
CN113986203B (zh) | 一种触发器自动校验方法、***、电子设备及存储介质 | |
EP4027289B1 (en) | Facilitating quick evaluation of trigger conditions for business rules that modify customer-support tickets | |
CN115757172A (zh) | 测试执行方法、装置、存储介质及计算机设备 | |
CN106796598A (zh) | 管理层级实体的计算 | |
US11281627B2 (en) | Facilitating quick evaluation of trigger conditions for business rules that modify customer support tickets | |
Kritikos et al. | A flexible semantic kpi measurement system | |
US20240248691A1 (en) | Detecting software code anomalies based on organizational information | |
CN115221211B (zh) | 一种图计算处理方法、装置、电子设备及存储介质 | |
US20240256713A1 (en) | Updating annotated software objects | |
US20230229526A1 (en) | Trust-aware and adaptive system to aid virtual/human intervention using an api-based mechanism | |
Kaminski et al. | Towards process design for efficient organisational problem solving | |
US10853888B2 (en) | Computing validation and error discovery in computers executing a multi-level tax data validation engine |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230608 Address after: Room 1-1-18, Unit 1, Building 4, No. 1580 Zhiyun Avenue, Yudong Street, Banan District, Chongqing, 401320 Patentee after: Chongqing Yunfeng Technology Co.,Ltd. Address before: 408300 building a, 59 Chaoyang Road, Dianjiang Industrial Park, Chongqing Patentee before: Chongqing Yuncheng Internet Technology Co.,Ltd. |