CN104391686A - 流程控制方法及装置 - Google Patents
流程控制方法及装置 Download PDFInfo
- 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
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为预设的结束字符。
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)
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)
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 | 杭州勒卡斯广告策划有限公司 | 工作流生成方法、工作流执行方法以及工作流执行系统 |
-
2014
- 2014-10-14 CN CN201410539530.3A patent/CN104391686A/zh active Pending
Patent Citations (4)
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)
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 |