CN104391686A - 流程控制方法及装置 - Google Patents

流程控制方法及装置 Download PDF

Info

Publication number
CN104391686A
CN104391686A CN201410539530.3A CN201410539530A CN104391686A CN 104391686 A CN104391686 A CN 104391686A CN 201410539530 A CN201410539530 A CN 201410539530A CN 104391686 A CN104391686 A CN 104391686A
Authority
CN
China
Prior art keywords
node
flow
execution result
configuration files
destination node
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
Application number
CN201410539530.3A
Other languages
English (en)
Inventor
李进南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yihua Computer Co Ltd
Shenzhen Yihua Time Technology Co Ltd
Shenzhen Yihua Financial Intelligent Research Institute
Original Assignee
Shenzhen Yihua Computer Co Ltd
Shenzhen Yihua Time Technology Co Ltd
Shenzhen Yihua Financial Intelligent Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yihua Computer Co Ltd, Shenzhen Yihua Time Technology Co Ltd, Shenzhen Yihua Financial Intelligent Research Institute filed Critical Shenzhen Yihua Computer Co Ltd
Priority to CN201410539530.3A priority Critical patent/CN104391686A/zh
Publication of CN104391686A publication Critical patent/CN104391686A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

一种流程控制方法及装置,该方法包括如下步骤:当一个流程启动时,加载预先设置的流程配置文件;对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树;根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果;根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,并执行该目标节点的行为过程,直至预设条件成立时结束该流程。利用本发明可降低软件维护、测试的成本,提高软件产品的质量。

Description

流程控制方法及装置
技术领域
本发明涉及流程控制技术领域,尤其涉及一种金融业软件的流程控制方法及装置。
背景技术
目前,一般金融业软件(如ATMC软件)会包括很多交易,例如,存款、取款、查询、转账、缴费等,随着银行业务的不断增加,ATMC软件业务逻辑变得复杂,程序代码的维护非常困难,同时,逻辑复杂会增加修改代码的成本、风险。
进一步地,现有技术主要通过全编码的方式实现业务流程,各个业务逻辑交叉混乱,业务流程不清晰,程序代码难懂,当增加业务流程需要修改代码时会影响到原来的业务,并大大增加测试的工作量。
因此,现有技术中的流程控制程序复杂,流程混乱,开发人员入门难,增加软件维护的成本。另外,修改代码风险大,增加测试成本,降低软件的可靠性。
发明内容
鉴于以上内容,本发明提出一种流程控制方法及装置,通过预先设置的流程配置文件,控制业务流程的执行。
所述流程控制方法包括:
流程加载步骤一,当一个流程启动时,加载预先设置的流程配置文件,该流程配置文件设置有不同节点,每个节点包括一个行为过程所在的程序集、该程序集中执行该行为过程的自定义类名、该行为过程的执行结果、及执行结果对应的目标节点;
流程加载步骤二,对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树,该流程树包括该流程配置文件中的所有节点信息;
流程控制步骤一,根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果;
流程控制步骤二,根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,并执行该目标节点的行为过程,直至预设条件成立时结束该流程。
所述流程控制装置包括:
流程加载模块,用于当一个流程启动时,加载预先设置的流程配置文件,该流程配置文件设置有不同节点,每个节点包括一个行为过程所在的程序集、该程序集中执行该行为过程的自定义类名、该行为过程的执行结果、及执行结果对应的目标节点;
所述流程加载模块,还用于对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树,该流程树包括该流程配置文件中的所有节点信息;
流程控制模块,用于根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果;
所述流程控制模块,还用于根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,并执行该目标节点的行为过程,直至预设条件成立时结束该流程。
相较于现有技术,本发明所述的流程控制方法及装置,通过预先设置的流程配置文件,控制业务流程的执行,降低软件维护、测试的成本,提高软件产品的质量。当开发人员需要新增新业务时,只需要增加实现新业务对应的行为过程(Action:完成一定业务功能的代码段),然后在预先设置的流程配置文件中增加该行为过程对应的节点即可,修改范围和风险小,各个行为过程功能独立,可以大幅降低软件开发难度与维护成本。
附图说明
图1是本发明流程控制装置的结构示意图;
图2是本发明流程控制方法的整体流程图。
具体实施方式
如图1所示,是本发明流程控制装置的结构示意图。在本实施方式中,所述流程控制装置2包括流程加载模块21和流程控制模块22,其中,所述流程加载模块21进一步包括配置文件加载子模块211、流程检查子模块212,所述流程控制模块22进一步包括流程节点执行子模块221、流程节点跳转子模块222、及流程总控制子模块223。所述流程加载模块21用于加载预先设置的流程配置文件,并对该流程配置文件中的节点内容进行合法性检查,所述流程控制模块22用于根据该流程配置文件中的节点内容,控制业务流程的执行。
本发明所称的模块可以是完成一特定功能的计算机程序段,也可以是固化有上述计算机程序段的芯片。所述流程控制装置2可以是一台电脑或一台服务器,关于各个模块的具体功能参阅图2的描述。
需要说明的是,图1只是流程控制装置2的软件结构和硬件结构的示意性说明,该流程控制装置2还包括其它必要的电子元器件和系统软件,如通过数据线或信号线相连的显示屏幕、输入设备、存储器、处理器、操作系统等,在此不再一一赘述。所述多个模块可以存储于流程控制装置2的存储器中并被配置成由一个或多个处理器执行,以完成本发明。
如图2所示,是本发明流程控制方法的整体流程图。
步骤S101,当一个流程启动时,配置文件加载子模块211加载预先设置的流程配置文件,该流程配置文件设置有不同节点,每个节点包括一个行为过程所在的程序集、该程序集中执行该行为过程的自定义类名、该行为过程的执行结果、及执行结果对应的目标节点等。
在本实施方式中,定义一个流程由一个或者多个行为过程(Action)组成,每个行为过程为完成一定业务功能的代码段。多个行为过程形成一个流程配置文件(或称之为“流程图”),该流程配置文件采用XML格式存储,用于控制行为过程的执行与流程跳转。
以下是流程配置文件的一个例子:
<?xml version="1.0" encoding="GB2312"?>
<FlowChart defaultnode="Step1" timeout="600000">
<Node id="Step1" assembly="Actions.dll" className= "Actions.Start">
      <Transition result="OK" targetnode="Step2"/>
</Node>
<Node id="Step2" assembly="Actions.dll" className= "Actions.Service">
<Transition result="Deposit" targetnode="Step21"/>
<Transition result="Inquire" targetnode="Step22"/>
<Transition result="Exit" targetnode="ExitChart"/> 
</Node>
<Node id="Step21" assembly="Actions.dll" className= "Actions.Deposit">
    <Transition result="Completed" targetnode="Step2"/>
</Node> 
<Node id="Step22" assembly="Actions.dll" className= "Actions.Inquire">
    <Transition result="Completed" targetnode="Step2"/>
</Node> 
</FlowChart>
该流程配置文件的节点与属性元素说明如下:
FlowChart,代表流程图,即流程配置文件;
Timeout,设置每个节点停留的最长时间(如10分钟),如果一个节点对应的行为过程的执行时间超过该停留的最长时间,则记录异常信息,进行异常处理;
Defaultnode,指定流程的入口节点;
Node,代表流程节点;
ID,流程节点的唯一标识符;
Aassembly,行为过程对应代码段所在的程序集(即动态库);
ClassName,程序集中执行该行为过程的自定义类名,如Action类名;
Transition,节点执行完成后的出口分支,一个节点有一个或者多个出口分支,每个出口分支对应一个执行结果,例如,节点“Step2”有三个出口分支,分别对应三个执行结果;
Result,节点自定义类(如Action类)中的自定义函数(如Action函数)的执行结果;
Targetnode,出口分支对应的目标节点ID,在本实施方式中,如果目标节点名称为ExitChart,则退出流程。
当开发人员需要新增新业务时,只需要增加实现新业务对应的行为过程(Action:完成一定业务功能的代码段),然后在该流程配置文件中增加该行为过程对应的节点即可。
步骤S102,流程检查子模块212对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树。其中,该流程树采用树形层级结构,包括该流程配置文件中的所有节点信息。
在本实施方式中,所述合法性检查包括:检查该流程配置文件中的入口节点是否存在;检查跳转的目标节点是否存在;检查节点ID是否有同名;检查程序集是否存在等。例如,如果入口节点和目标节点存在、节点ID没有同名、程序集存在,则流程检查子模块212判定合法性检查通过。如果有其中任一一项检查没有通过,例如,该流程配置文件中的入口节点不存在,则流程检查子模块212判定合法性检查没有通过,记录异常信息,进行异常处理。
步骤S103,流程节点执行子模块221根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果。
具体而言,首先,流程节点执行子模块221在流程树中找到入口节点属性(如defaultnode)指定的节点(如Step1),将该节点作为流程的当前执行节点,加载当前执行节点对应的程序集,并创建当前执行节点的自定义类(如Actions.Start)的对象,并调用该自定义类的对象的入口函数执行该行为过程,获取该入口节点的行为过程的执行结果。
步骤S104,流程节点跳转子模块222根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,然后,流程节点执行子模块221继续执行该目标节点的行为过程,直至预设条件成立时结束流程。
具体而言,首先,流程节点跳转子模块222根据上述入口函数的执行结果及当前执行节点的出口分支,确定该执行结果在该出口分支中对应的目标节点(targetnode),控制流程跳转至该目标节点。然后,流程节点执行子模块221将该目标节点作为流程的当前执行节点,继续执行该目标节点的行为过程,如此循环,直至预设条件成立时结束流程。例如,参阅上例的流程配置文件,节点Step1的执行结果对应的目标节点为Step2,则控制流程跳转至节点Step2。
在本实施方式中,所述预设条件包括:该流程对应的业务关闭,或者当前执行节点的执行结果对应的目标节点ID为预设的结束字符(如ExitChart)。例如,参阅上例的流程配置文件,如果节点Step2的执行结果为“Deposit”,则跳转至节点Step21继续执行下一个节点的行为过程;如果节点Step2的执行结果为“Exit”,由于该执行结果对应的目标节点ID为“ExitChart”则结束流程。
在本实施方式中,所述流程总控制子模块223用于根据流程树控制该流程的执行,在当前节点执行时调用流程节点子模块221执行当前节点的行为过程。
综上所述,本发明所述的流程控制方法及装置,将一个业务分割为一个或者多个行为过程(Action:完成一定业务功能的代码段),则一个业务由很多Action组成,多个Action形成一个流程图。流程图采用XML方式存储,通过本发明所述的流程控制方法来控制流程图中Action的执行与流程跳转,采用业务分割方法来实现金融业软件复杂的业务逻辑,具有如下有益效果:(1)将复杂的业务逻辑分解成简单程序段组成;(2) 流程采用配置文件的方式设置,入门容易,使用简单;(3) Action可在不同银行软件之间重用,避免重复编码;(4) 业务独立、逻辑简单,有利用提高软件产品质量;(5) 可以提高软件的可维护性,降低软件维护成本。
以上内容是结合具体的优选实施方式对本发明所作的详细说明,不能认定具体实施只局限于这些说明。对于所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种流程控制方法,应用于流程控制装置,其特征在于,该方法包括:
流程加载步骤一,当一个流程启动时,加载预先设置的流程配置文件,该流程配置文件设置有不同节点,每个节点包括一个行为过程所在的程序集、该程序集中执行该行为过程的自定义类名、该行为过程的执行结果、及执行结果对应的目标节点;
流程加载步骤二,对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树,该流程树包括该流程配置文件中的所有节点信息;
流程控制步骤一,根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果;及
流程控制步骤二,根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,并执行该目标节点的行为过程,直至预设条件成立时结束该流程。
2.根据权利要求1所述的流程控制方法,其特征在于,所述流程配置文件还设置有:
每个节点停留的最长时间,如果一个节点对应的行为过程的执行时间超过该停留的最长时间,则记录异常信息;及
每个节点的一个或多个出口分支,其中,每个出口分支对应一个执行结果。
3.根据权利要求2所述的流程控制方法,其特征在于,所述合法性检查包括:检查该流程配置文件中的入口节点是否存在;检查跳转的目标节点是否存在;检查节点ID是否有同名;检查程序集是否存在。
4.根据权利要求2所述的流程控制方法,其特征在于,所述流程控制步骤一包括:
确定该流程树中的入口节点属性指定的节点,将该节点作为该流程的当前执行节点,加载当前执行节点对应的程序集,并创建当前执行节点的自定义类的对象,并调用该自定义类的对象的入口函数执行该行为过程,获取该入口节点的行为过程的执行结果。
5.根据权利要求4所述的流程控制方法,其特征在于,所述流程控制步骤二包括:
根据上述入口函数的执行结果及当前执行节点的出口分支,确定该执行结果在该出口分支中对应的目标节点,控制流程跳转至该目标节点;及
将该目标节点作为流程的当前执行节点,继续执行该目标节点的行为过程,直到预设条件成立时结束流程,其中,所述预设条件包括:该流程对应的业务关闭,或者当前执行节点的执行结果对应的目标节点ID为预设的结束字符。
6.一种流程控制装置,其特征在于,该装置包括:
流程加载模块,用于当一个流程启动时,加载预先设置的流程配置文件,该流程配置文件设置有不同节点,每个节点包括一个行为过程所在的程序集、该程序集中执行该行为过程的自定义类名、该行为过程的执行结果、及执行结果对应的目标节点;
所述流程加载模块,还用于对该流程配置文件中的节点内容进行合法性检查,如果通过合法性检查,则根据该流程配置文件创建一个流程树,该流程树包括该流程配置文件中的所有节点信息;
流程控制模块,用于根据该流程树确定入口节点,并执行该入口节点的行为过程,获取该入口节点的行为过程的执行结果;及
所述流程控制模块,还用于根据该入口节点的行为过程的执行结果确定对应的目标节点,控制流程跳转至该目标节点,并执行该目标节点的行为过程,直至预设条件成立时结束该流程。
7.根据权利要求6所述的流程控制装置,其特征在于,所述流程配置文件还设置有:
每个节点停留的最长时间,如果一个节点对应的行为过程的执行时间超过该停留的最长时间,则记录异常信息;及
每个节点的一个或多个出口分支,其中,每个出口分支对应一个执行结果。
8.根据权利要求7所述的流程控制装置,其特征在于,所述合法性检查包括:检查该流程配置文件中的入口节点是否存在;检查跳转的目标节点是否存在;检查节点ID是否有同名;检查程序集是否存在。
9.根据权利要求7所述的流程控制装置,其特征在于,所述流程控制模块还用于:
确定该流程树中的入口节点属性指定的节点,将该节点作为该流程的当前执行节点,加载当前执行节点对应的程序集,并创建当前执行节点的自定义类的对象,并调用该自定义类的对象的入口函数执行该行为过程,获取该入口节点的行为过程的执行结果。
10.根据权利要求9所述的流程控制装置,其特征在于,所述流程控制模块还用于:
根据上述入口函数的执行结果及当前执行节点的出口分支,确定该执行结果在该出口分支中对应的目标节点,控制流程跳转至该目标节点;及
将该目标节点作为流程的当前执行节点,继续执行该目标节点的行为过程,直到预设条件成立时结束流程,其中,所述预设条件包括:该流程对应的业务关闭,或者当前执行节点的执行结果对应的目标节点ID为预设的结束字符。
CN201410539530.3A 2014-10-14 2014-10-14 流程控制方法及装置 Pending CN104391686A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410539530.3A CN104391686A (zh) 2014-10-14 2014-10-14 流程控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410539530.3A CN104391686A (zh) 2014-10-14 2014-10-14 流程控制方法及装置

Publications (1)

Publication Number Publication Date
CN104391686A true CN104391686A (zh) 2015-03-04

Family

ID=52609594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410539530.3A Pending CN104391686A (zh) 2014-10-14 2014-10-14 流程控制方法及装置

Country Status (1)

Country Link
CN (1) CN104391686A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870852A (zh) * 2016-09-26 2018-04-03 北京金山云网络技术有限公司 一种测试方法及装置
CN108664287A (zh) * 2018-05-11 2018-10-16 腾讯科技(深圳)有限公司 输出操作引导的方法、装置、终端及存储介质
CN109002980A (zh) * 2018-07-10 2018-12-14 广州极天信息技术股份有限公司 一种场景化的知识检验方法及装置
CN109345202A (zh) * 2018-09-27 2019-02-15 中国银行股份有限公司 一种多产品多层级的流程定制方法及系统
CN109471691A (zh) * 2018-10-16 2019-03-15 平安普惠企业管理有限公司 流程节点处理方法、装置、计算机设备及存储介质
CN110347593A (zh) * 2019-06-26 2019-10-18 贝壳技术有限公司 流程测试方法及装置
CN110413530A (zh) * 2019-08-02 2019-11-05 中国工商银行股份有限公司 一种行为执行方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085668A1 (en) * 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups
CN102810070A (zh) * 2012-07-16 2012-12-05 福建富士通信息软件有限公司 高性能业务能力封装流程引擎及其流程控制方法
CN103514498A (zh) * 2012-06-26 2014-01-15 中兴通讯股份有限公司 一种业务实现方法及系统
CN103577906A (zh) * 2012-07-20 2014-02-12 杭州勒卡斯广告策划有限公司 工作流生成方法、工作流执行方法以及工作流执行系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060085668A1 (en) * 2004-10-15 2006-04-20 Emc Corporation Method and apparatus for configuring, monitoring and/or managing resource groups
CN103514498A (zh) * 2012-06-26 2014-01-15 中兴通讯股份有限公司 一种业务实现方法及系统
CN102810070A (zh) * 2012-07-16 2012-12-05 福建富士通信息软件有限公司 高性能业务能力封装流程引擎及其流程控制方法
CN103577906A (zh) * 2012-07-20 2014-02-12 杭州勒卡斯广告策划有限公司 工作流生成方法、工作流执行方法以及工作流执行系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870852A (zh) * 2016-09-26 2018-04-03 北京金山云网络技术有限公司 一种测试方法及装置
CN107870852B (zh) * 2016-09-26 2020-11-27 北京金山云网络技术有限公司 一种测试方法及装置
CN108664287A (zh) * 2018-05-11 2018-10-16 腾讯科技(深圳)有限公司 输出操作引导的方法、装置、终端及存储介质
CN109002980A (zh) * 2018-07-10 2018-12-14 广州极天信息技术股份有限公司 一种场景化的知识检验方法及装置
CN109002980B (zh) * 2018-07-10 2021-09-03 广州极天信息技术股份有限公司 一种场景化的知识检验方法及装置
CN109345202A (zh) * 2018-09-27 2019-02-15 中国银行股份有限公司 一种多产品多层级的流程定制方法及系统
CN109471691A (zh) * 2018-10-16 2019-03-15 平安普惠企业管理有限公司 流程节点处理方法、装置、计算机设备及存储介质
CN110347593A (zh) * 2019-06-26 2019-10-18 贝壳技术有限公司 流程测试方法及装置
CN110347593B (zh) * 2019-06-26 2020-07-24 贝壳找房(北京)科技有限公司 流程测试方法及装置
CN110413530A (zh) * 2019-08-02 2019-11-05 中国工商银行股份有限公司 一种行为执行方法及装置
CN110413530B (zh) * 2019-08-02 2024-01-05 中国工商银行股份有限公司 一种行为执行方法及装置

Similar Documents

Publication Publication Date Title
CN104391686A (zh) 流程控制方法及装置
CN108346028B (zh) 一种业务审批处理方法、装置及系统
CN108415832B (zh) 接口自动化测试方法、装置、设备及存储介质
US10768980B2 (en) Automated execution of a batch job workflows
US20200013028A1 (en) Peer-to-peer money transfers
CN111597120B (zh) 接口测试装置、方法、电子设备和计算机可读存储介质
CN107908569B (zh) 一种wap用户界面测试方法
CN112132548A (zh) 审批流转方法、装置、电子设备和存储介质
US20180107458A1 (en) Declarative configuration and execution of card content management operations for trusted service manager
CN106815725A (zh) 一种交易验证方法和装置
CN113361838A (zh) 业务风控方法、装置、电子设备和存储介质
CN111260336B (zh) 基于规则引擎的业务核对方法、装置及设备
US20180032880A1 (en) Using Learned Application Flow to Predict Outcomes and Identify Trouble Spots in Network Business Transactions
US20220148053A1 (en) Systems and methods for persistent on demand payments
US10360403B2 (en) Cognitive API policy manager
CN113138774A (zh) 灰度发布方法、装置、电子设备、介质和程序产品
US10162754B2 (en) Lateral cast out of cache memory
CN110533406B (zh) 一种支付调用方法、装置及系统
CN111142925A (zh) 一种管道式数据处理方法、设备以及存储介质
TWI662486B (zh) 檢查分布式業務處理完整度的方法及裝置
US20230087584A1 (en) Reconciliating payment transactions performed by a payment service provider
CN115080449A (zh) 测试方法、装置、设备、介质和程序产品
CN110648219B (zh) 一种银行交易系统标准化输入区的方法和装置
CN112596781A (zh) 一种业务执行以及业务配置方法及装置
CN113850573A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150304