CN109684057B - 任务处理方法、装置和存储介质 - Google Patents

任务处理方法、装置和存储介质 Download PDF

Info

Publication number
CN109684057B
CN109684057B CN201811510647.3A CN201811510647A CN109684057B CN 109684057 B CN109684057 B CN 109684057B CN 201811510647 A CN201811510647 A CN 201811510647A CN 109684057 B CN109684057 B CN 109684057B
Authority
CN
China
Prior art keywords
node
execution
target
execution node
business
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
Application number
CN201811510647.3A
Other languages
English (en)
Other versions
CN109684057A (zh
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.)
Migu Cultural Technology Co Ltd
China Mobile Communications Group Co Ltd
Original Assignee
Migu Cultural Technology Co Ltd
China Mobile Communications Group Co Ltd
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 Migu Cultural Technology Co Ltd, China Mobile Communications Group Co Ltd filed Critical Migu Cultural Technology Co Ltd
Priority to CN201811510647.3A priority Critical patent/CN109684057B/zh
Publication of CN109684057A publication Critical patent/CN109684057A/zh
Application granted granted Critical
Publication of CN109684057B publication Critical patent/CN109684057B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种任务处理方法,包括:接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。本发明还公开了一种任务处理装置和计算机可读存储介质。

Description

任务处理方法、装置和存储介质
技术领域
本发明涉及前端技术,尤其涉及一种任务处理方法、装置和计算机可读存储介质。
背景技术
Activiti是一个针对企业用户、开发人员、系统管理员的轻量级工作流业务管理平台,对业务流程建模与标注(BPMN,Business Process Modeling Notation)2.0规范的支持非常强大,其核心是使用Java语言开发的快速、稳定的BPMN2.0流程引擎。
BPMN2.0是由BPMN标准组织发布的,BPMN 1.0规范于2004年5月发布,BPMN 2.0于2011年发布。其定义了业务流程图(流程模板),基于流程图技术的同时对创建业务流程操作的图形化模型进行了裁减。业务流程的模型即为图形化对象的网图,包括流程的开始结束(事件)、活动(任务/工作)、分支(网关)走向的流控制。其规范有严格的标准,一切流程走向、任务办理、各类分支情况等都必须绘图表示出来,按照流程图作为模板继续流程的正常流转。
实际工作中业务办理流程存在的各类情况,例如:请假流程,流程已经进入审批状态,因日期填写错需要撤回修改;报销审批流程,当前处理人审批发现资料某一步出错了,需要驳回到指定环节某一步进行重新办理;公章使用申请流程,当某个环节审批人出现变动(离职/变岗)无法进行审批,导致流程停止不前,需要管理员介入修正流程走向;办公自动化(OA,Office Automation)公文发文,普通员工发文需要走审批流程,领导发文可一键发文跳过某些特定审批节点等等。按照BPMN2.0的规范要求,如上举例的情况都需要通过流程图将所有的情况考虑到并画成流程图分支,各类网关条件进行判断,才能满足各种各样的情况,导致流程图越画越复杂,业务代码越来越臃肿,维护越来越难,业务一旦发生变化,则必须修改流程图,导致很难或者无法兼容以前的流程。
发明内容
有鉴于此,本发明的主要目的在于提供一种任务处理方法、装置和计算机可读存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种任务处理方法,所述方法包括:
接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;
备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;
按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
上述方案中,所述根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,所述方法包括:
根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;
确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
上述方案中,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
按所述第一修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
上述方案中,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
按所述第二修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
上述方案中,所述修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线,包括:
删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
本发明实施例提供了一种任务处理装置,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,
所述第一处理模块,用于接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;
所述第二处理模块,用于备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;
所述第三处理模块,用于按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
上述方案中,所述第二处理模块,还用于在根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
上述方案中,所述第二处理模块,具体用于确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
所述第二处理模块,具体用于确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
上述方案中,所述第二处理模块,具体用于确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
所述第二处理模块,具体用于修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
上述方案中,所述第二处理模块,具体用于删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
本发明实施例提供了一种任务处理装置,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行以上所述任意一种任务处理方法的步骤。
本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上所述任意一种任务处理方法的步骤。
本发明实施例所提供的任务处理方法、装置和计算机可读存储介质,接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。本发明实施例中,在不影响原有用BPMN2.0标准定义的流程的正常运行的情况下,能够实现任务驳回、撤销、干预或跳转等自由跳转;增强了Activiti使用灵活性,使其能适用于更多业务场景;并减少各类跳转情况流程图分支以及对应支撑的业务代码,易于后期维护。
附图说明
图1为本发明实施例提供的一种任务处理方法的流程示意图;
图2为本发明实施例提供的示意驳回操作的流程图;
图3为本发明实施例提供的示意撤销操作的流程图;
图4为本发明实施例提供的一种任务处理方法的代码示意图
图5为本发明实施例提供的另一种任务处理方法的代码示意图
图6为本发明实施例提供的再一种任务处理方法的代码示意图;
图7为本发明实施例提供的一种任务处理装置的结构示意图;
图8为本发明实施例提供的另一种任务处理装置的结构示意图。
具体实施方式
在本发明的各种实施例中,接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
以下对本发明涉及到的技术作出如下说明。
BPMN2.0的流程图为根据业务需求描绘满足实际业务流程流转的流程图。BPMN2.0定义的图形化界面展示的流程图其本质是可扩展标记语言(XML,Extensible MarkupLanguage)文件图形化表现,流程图中每个元素在XML文档中都有详细的定义(节点名称/各类属性/值)。以下列举几种主要的元素:
usertask元素,任务定义:<userTask id="usertask1"name="任务A"></userTask>;
sequenceFlow元素,连线定义:<sequenceFlow id="flow2"sourceRef="startevent1"targetRef="usertask1"></sequenceFlow>;其中,sourceRef代表连线的开始位置,targetRef代表连线的目标位置,sourceRef与targetRef表示两个元素之间的连线,其中每条连线上可以定义条件,主要用于配合网关使用;如:<conditionExpressionxsi:type="tFormalExpression"><![CDATA[1==1]]></conditionExpression>,其意思是当1==1时候,流程通过该连线;
exclusiveGateway元素,网关定义:<exclusiveGateway id="exclusivegateway1"name="Exclusive Gateway"></exclusiveGateway>,其作用是结合连线上的条件用来控制流程分支流转的走向。
Activiti是通过BpmnParse将BPMN2.0的XML流程定义文件进行解析,其核心是从根节点开始对每个标准的BPMN2.0元素进行解析;最终解析成Activiti内部能够识别与使用的模型,并持久化到数据库中,解析获得的模型用于用户后续流程启动,任务流转办理。
Activiti的核心接口(API,Application Programming Interface)至少包括以下几个:
ProcessEngine:Activiti引擎的核心接口,七类基础服务接口通过其获得;
RepositoryService:流程资源服务接口,主要用于对流程定义的部署、查询和删除操作等;
TaskService:任务服务接口,该接口显示管理人机交互任务的操作,如任务领取(claiming)、任务完成(completing)和任务指派(assigning),还包括对任务的创建、查询、保存、删除等。
RuntimeService:运行时服务接口,主要用于启动或查询流程实例,以及流程变量、当前激活状态活动的查询、流程实例的删除等。
HistoryService:流程历史服务接口,提供对历史流程实例、历史任务的查询和删除操作,历史流程的查询其提供了已完成(finished)和未完成(unfinished)流程的查询等。
IdentityService:用户、组管理服务接口,用于管理分组(Group)、用户(User)的增删改查,并维护会员资格(Membership)等。
FormService:表单服务接口,用于访问表单数据以及在启动新流程实例时或完成任务时所需的渲染后的表单,提供用户界面(UI),辅助用户填写相关值以保存至流程变量。
ManagementService:流程管理和控制操作服务接口,与业务流程的运行没有关联关系,如查询数据库本身的内容、Activiti的版本及序列生成唯一编码(ID)规则等,属于引擎的非核心服务。
一个任务流程实例能正常运行需要经过如下几个步骤:绘制满足业务场景需要的BPMN2.0的任务流程图;将BPMN2.0的XML文件发布到Activiti引擎中,并让其解析与持久化到数据库中;用户选择已发布成功的业务流程,填写对应业务表单并提交,Activiti完成相应的操作,例如调用Activiti相关接口启动流程并生成流程实例,以及流程实例对任务的办理、流转、结束等。
下面结合实施例对本发明再作进一步详细的说明。
图1为本发明实施例提供的一种任务处理方法的流程示意图;所述方法可以应用于服务器,所述服务器可以设有Activiti;如图1所示,所述方法包括:
步骤101、接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点。
具体来说,用户通过人机交互界面进行操作,包括:确定指令(如撤销、驳回、跳转等)、选择当前节点、即第一执行节点和需要跳转到的节点、即所述目标执行节点等;所述服务器接收相应的操作指令,确定所述操作指令针对的第一执行节点,以及需要跳转到的所述目标执行节点。
步骤102、备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图。
具体来说,所述第一执行节点和所述目标执行节点为所述第一业务流程图包含的执行节点。在进行跳转之前,备份所述第一业务流程图;备份完成后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,获得修改后的第一业务流程图,即实现节点跳转的目标业务流程图。
需要说明的是,以上所述的业务流程图其本质是XML文件图像化的表现;修改业务流程图,实际为修改业务流程图对应的XML文件。这里可以通过Activiti提供的核心API实现对业务流程图的修改。
具体地,所述根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,所述方法包括:
根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;
确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
本实施例中,所述修改第一业务流程图包括两种情况:第一种情况,所述第一执行节点对应的任务是单节点多实例或者多实例子流程的任务,则不能直接进行跳转,采用第一修改策略;第二种情况,所述第一执行节点对应的任务为单实例,则可以直接进行跳转,采用第二修改策略。
具体地,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
按所述第一修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
具体地,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
按所述第二修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
这里,通过确定第一执行节点的父节点的个数,以确定任务流程的类型,从而可以将与父节点相关的流程或任务进行级联删除。这是考虑到,当前任务属于多实例的任务之一的情况下,仅修改连线实现跳转,只能完成当前任务,而多实例会产生多个任务,其他任务没有完成依然存在,最后会导致Activiti流程引擎内部错误,流程不能正常运行。根据父节点的个数确定修改策略,可以防止任务属于多实例的任务时,只删除单个任务的相关数据,而多实例产生的多个执行数据中其他执行数据没有被删除,导致的流程引擎内部错误导致不能实现其流程跳转的问题。
需要说明的是,由于Activiti内部每个任务对应一个执行ID(executionId),该executionId存在父子关系,当确定当前任务属于多实例任务之一时,即可确定所述executionId为子ID;因此,本实施例中,还可以根据第一执行节点和目标执行节点之间的连线确定对应的任务,再通过该任务获取对应的executionId,根据executionId获取其直接父执行ID(父executionId),将与父executionId相关执行进行级联删除,通过父executionId找到对应第一业务流程图上的执行节点动态修改第一业务流程图的连线。
具体地,所述修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线,包括:
删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
通过上述方法,可以动态修改与还原流程图连线实现各个节点之间的跳转;对多节点多实例的流程跳转情况,对多余的待办任务做了清理,保证流程数据的准确;对于多节点单实例、单实例子流程能正常自由跳转;跳转支持驳回(向后)到任意节点(如图2所示,为本发明实施例提供的示意驳回操作的流程图);跳转也支持节点撤回(如图3所示,为本发明实施例提供的示意撤销操作的流程图)等。
步骤103、按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
具体来说,完成目标业务流程图对应的流程后,则恢复第一业务流程图,即重新按原业务流程图执行。
通过上述方法,实现对Activiti功能进行扩展,通过获取当前的执行节点、即第一执行节点并确定任务类型,如果当前任务是单节点多实例或者多实例子流程的任务,根据第一执行节点确定其父节点,将与父节点相关的执行进行级联删除,再动态修改所述第一执行节点与目标执行节点之间的连线,所述动态修改包括:删除第一业务流程图中原有的与目标执行节点的连线,新增跳转至目标执行节点的连线;当任务跳转成功后重新恢复原来的连接线,即重新按原始的第一业务流程图执行;从而达到单节点多实例或者多实例子流程的流程各执行节点间的自由跳转。如果不是单节点多实例或者多实例子流程的任务,则直接删除与当前的第一任务流程图上原有的与目标执行节点的连线,新增跳转至目标执行节点的连线,当任务跳转成功后重新还原原来的连接线,即重新按原始的第一业务流程图执行。
需要说明的是,对于多节点多实例或多实例子流程,对多余任务的清理方式,也可直接操作Activiti相关的数据表清理数据。以及,对于不使用Activiti开源流程引擎,但遵循BPMN2.0规范任务处理流程,或者其他基于BPMN2.0的流程引擎软件,也可以采用按本实施例提供的动态修改、还原流程图连线的方式,实现流程自由跳转。
图4为本发明实施例提供的一种任务处理方法的代码示意图;如图4所示,对于单实例的情况,所述任务处理方法,可以包括:通过当前任务的executionId确定对应的执行实例,通过内部的API销毁该执行实例;通过执行实例获取目标执行节点的activityId对应的第一业务流程图上的执行节点,让执行实例激活跳转到的目标任务节点,从而实现跳转功能。
需要说明的是,确定当前任务属于多实例任务之一时,只删除对应的单个执行的相关数据,而多实例产生的多个其他执行数据没有被删除,会出现流程引擎内部错误导致不能实现其流程跳转。
图5为本发明实施例提供的另一种任务处理方法的代码示意图;如图5所示,对于单任务之间的跳转,所述任务处理方法,包括:修改当前执行节点与目标执行节点之间的连线,再由Activiti根据新连线完成任务;任务完成并正确跳转到目标执行节点后,将原有流程各个执行节点间的连线还原,从而实现执行节点之间的自由跳转。
而确定当前任务属于多实例任务之一时,修改连线实现跳转,只能完成当前任务,而多实例会产生多个任务,其他任务则没有完成依然存在,最后会导致Activiti流程引擎内部错误,流程不能正常运行。
图6为本发明实施例提供的再一种任务处理方法的代码示意图;如图6所示,针对多实例子节点或多实例子流程的跳转,所述任务处理方法包括:获取executionId,根据所述executionId获取其关联的父执行ID(父scopeExecutionId),根据所述父scopeExecutionId级联删除所有的子executionId对应的子执行。确定所有相关的子执行删除后,根据所述父scopeExecutionId获取对应的原流程图中的执行节点或子流程,修改执行节点和目标执行节点间的连线,再由Activiti按新连线完成任务;确定任务完成后,将原有流程中各个执行节点之间的连线还原(即恢复原流程图),从而实现多实例或多实例子流程进行自由跳转。
对于不是多实例子节点或多实例子流程的情况,可以按照图5所示的方法实现流程跳转。图6所示的方法解决了图4和图5所述的问题。
通过上述方法可以实现自由跳转且不影响Activiti内部数据,解决现有方案中仅能适用部分应用场景,以及对于单节点多实例或多实例子流程的自由跳转会导致Activiti内部数据错误,最后流程无法正常完结的问题。
根据以上所述的方法,可以实现简单流程中各执行节点之间的自由流程跳转,同时也能满足具有多实例或多实例子流程的自由跳转。解决了现有技术存在的基于BPMN2.0规范局限过大,用户不能自由选择下一步流转到的任意目标执行节点,只能根据已定义的流程模板(流程图)的各类条件分支进行流程流转的问题。而且,现有方案中当流程任务处理不当或特殊情况,需要外部纠正或干预流程走向时,很难或者不能实现,即使实现任务跳转,也必须先在流程图中进行各类情况分支进行绘图连线,导致分支情况异常多,流程图也随之愈加复杂,业务代码处理逻辑复杂度也会增加,后期维护难度加大等问题,运用本实施例的方法根据需求修改流程图,在完成流程图后恢复原流程,实现对每个执行节点都可进行驳回(即执行节点可以对上一流程执行节点处理结果进行驳回,并驳回到任意执行节点)、撤回(当前已办理流程节点对下任意一流程节点任务还未办理时进行撤回)等操作,处理逻辑、流程图更简单。
图7为本发明实施例提供的一种任务处理装置的结构示意图;所述装置包括:第一处理模块701、第二处理模块702和第三处理模块703。其中,
所述第一处理模块701,用于接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;
所述第二处理模块702,用于备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;
所述第三处理模块703,用于按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
具体地,所述第二处理模块702,还用于在根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
具体地,所述第二处理模块702,具体用于确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
所述第二处理模块702,具体用于确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
具体地,所述第二处理模块702,具体用于确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
所述第二处理模块702,具体用于修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
具体地,所述第二处理模块702,具体用于删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
需要说明的是:上述实施例提供的任务处理装置在进行任务处理时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的任务处理装置与任务处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图8为本发明实施例提供的另一种任务处理装置的结构示意图;如图8所示,所述装置80包括:处理器801和用于存储能够在所述处理器上运行的计算机程序的存储器802;其中,所述处理器801用于运行所述计算机程序时,执行:接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
在一实施例中,所述处理器801还用于运行所述计算机程序时,执行:根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
在一实施例中,所述处理器801还用于运行所述计算机程序时,执行:定所述第二执行节点的个数为至少两个时,选择第一修改策略;按所述第一修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
在一实施例中,所述处理器801还用于运行所述计算机程序时,执行:确定所述第二执行节点的个数仅为一个时,选择第二修改策略;按所述第二修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
在一实施例中,所述处理器801还用于运行所述计算机程序时,执行:删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
需要说明的是:上述实施例提供的任务处理装置与任务处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
实际应用时,所述装置80还可以包括:至少一个网络接口803。任务处理装置80中的各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。其中,所述处理器804的个数可以为至少一个。网络接口803用于任务处理装置80与其他设备之间有线或无线方式的通信。
本发明实施例中的存储器802用于存储各种类型的数据以支持任务处理装置80的操作。
上述本发明实施例揭示的方法可以应用于处理器801中,或者由处理器801实现。处理器801可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器801中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器801可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器801可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器802,处理器801读取存储器802中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,任务处理装置80可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行:接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;备份第一业务流程图后,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图。
在一实施例中,所述计算机程序被处理器运行时,执行:根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
在一实施例中,所述计算机程序被处理器运行时,执行:定所述第二执行节点的个数为至少两个时,选择第一修改策略;按所述第一修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述第二执行节点的个数仅为一个时,选择第二修改策略;按所述第二修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
在一实施例中,所述计算机程序被处理器运行时,执行:删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种任务处理方法,其特征在于,所述方法包括:
接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;所述操作指令至少包括:跳转指令、撤销指令和驳回指令;
备份第一业务流程图后,依据修改策略根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;
按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图;
其中,所述修改策略,包括:在确定第二执行节点的个数为至少两个时,确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线;所述第二执行节点为所述第一执行节点的父节点。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,所述方法包括:
根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;
确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
按所述第一修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第二执行节点的个数确定修改策略,包括:确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
按所述第二修改策略,根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,包括:
修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
5.根据权利要求3或4所述的方法,其特征在于,所述修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线,包括:
删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
6.一种任务处理装置,其特征在于,所述装置包括:第一处理模块、第二处理模块和第三处理模块;其中,
所述第一处理模块,用于接收操作指令,确定所述操作指令对应的第一执行节点和目标执行节点;所述操作指令至少包括:跳转指令、撤销指令和驳回指令;
所述第二处理模块,用于备份第一业务流程图后,依据修改策略根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图,修改后的第一业务流程图作为目标业务流程图;
所述第三处理模块,用于按所述目标业务流程图执行业务流程,确定所述业务流程完成后,恢复所述第一业务流程图;
其中,所述修改策略,包括:在确定第二执行节点的个数为至少两个时,确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线;所述第二执行节点为所述第一执行节点的父节点。
7.根据权利要求6所述的装置,其特征在于,所述第二处理模块,还用于在根据所述第一执行节点和所述目标执行节点修改所述第一业务流程图之前,根据所述第一业务流程图确定所述第一执行节点的父节点,作为第二执行节点;确定所述第二执行节点的个数,根据所述第二执行节点的个数确定修改策略。
8.根据权利要求7所述的装置,其特征在于,所述第二处理模块,具体用于确定所述第二执行节点的个数为至少两个时,选择第一修改策略;
所述第二处理模块,具体用于确定至少两个第二执行节点中各个第二执行节点对应的子流程,删除所述子流程;修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
9.根据权利要求7所述的装置,其特征在于,所述第二处理模块,具体用于确定所述第二执行节点的个数仅为一个时,选择第二修改策略;
所述第二处理模块,具体用于修改所述第一业务流程图中所述第一执行节点和所述目标执行节点的连线。
10.根据权利要求8或9所述的装置,其特征在于,所述第二处理模块,具体用于删除所述第一执行节点和所述目标执行节点之间的原始连线后,重新确定所述第一执行节点和所述目标执行节点之间的连线。
11.一种任务处理装置,其特征在于,所述装置包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至5任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
CN201811510647.3A 2018-12-11 2018-12-11 任务处理方法、装置和存储介质 Active CN109684057B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811510647.3A CN109684057B (zh) 2018-12-11 2018-12-11 任务处理方法、装置和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811510647.3A CN109684057B (zh) 2018-12-11 2018-12-11 任务处理方法、装置和存储介质

Publications (2)

Publication Number Publication Date
CN109684057A CN109684057A (zh) 2019-04-26
CN109684057B true CN109684057B (zh) 2021-10-29

Family

ID=66186671

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811510647.3A Active CN109684057B (zh) 2018-12-11 2018-12-11 任务处理方法、装置和存储介质

Country Status (1)

Country Link
CN (1) CN109684057B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110517018A (zh) * 2019-08-26 2019-11-29 深圳前海环融联易信息科技服务有限公司 一种基于activiti工作流的节点任意跳转方法及装置
CN110650211B (zh) * 2019-10-15 2022-04-01 河北幸福消费金融股份有限公司 基于agent技术的流程控制方法、系统、装置及存储介质
CN110968445A (zh) * 2019-11-13 2020-04-07 泰康保险集团股份有限公司 一种基于流程引擎的节点跳转方法、装置及电子设备
CN110968408B (zh) * 2019-11-13 2023-04-07 泰康保险集团股份有限公司 一种执行流移除方法、装置、电子设备及存储介质
CN111159593A (zh) * 2019-12-18 2020-05-15 东软集团股份有限公司 流程图的生成方法、装置、存储介质和电子设备
CN111491025B (zh) * 2020-04-13 2023-12-19 上海鸿翼软件技术股份有限公司 一种业务的退回处理方法、装置、设备及存储介质
CN111858001B (zh) * 2020-07-15 2021-02-26 武汉众邦银行股份有限公司 一种基于服务于微服务架构系统的工作流处理方法
CN112114894B (zh) * 2020-08-14 2024-08-09 咪咕文化科技有限公司 基于Activiti流程引擎的流程处理方法、装置及电子设备
CN112231011B (zh) * 2020-10-09 2024-05-10 北京锐安科技有限公司 基于activiti的流程图调整方法、装置、电子设备和存储介质
CN112540812B (zh) * 2020-12-21 2023-07-25 珠海格力电器股份有限公司 节点的跳转方法和装置、存储介质、电子装置
CN112764898A (zh) * 2021-01-18 2021-05-07 北京思特奇信息技术股份有限公司 一种容器间任务调度的方法和系统
CN114444935A (zh) * 2022-01-24 2022-05-06 深圳壹账通智能科技有限公司 自定义线上工作流程的处理方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325887A (zh) * 2016-09-19 2017-01-11 深圳市彬讯科技有限公司 一种基于Activiti的业务流程管理方法
CN106371851A (zh) * 2016-09-19 2017-02-01 深圳市彬讯科技有限公司 一种基于Activiti的业务流程管理系统
CN106557860A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 一种流程处理方法及装置
CN107563714A (zh) * 2017-07-17 2018-01-09 北京慧点科技有限公司 业务流程图生成的方法及装置
CN107590070A (zh) * 2017-08-18 2018-01-16 深圳怡化电脑股份有限公司 一种业务流程调试方法及装置
CN107608667A (zh) * 2017-08-18 2018-01-19 深圳怡化电脑股份有限公司 一种业务流程的更新方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101789092A (zh) * 2009-01-22 2010-07-28 国际商业机器公司 业务流程管理方法协同工作的系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557860A (zh) * 2015-09-30 2017-04-05 腾讯科技(深圳)有限公司 一种流程处理方法及装置
CN106325887A (zh) * 2016-09-19 2017-01-11 深圳市彬讯科技有限公司 一种基于Activiti的业务流程管理方法
CN106371851A (zh) * 2016-09-19 2017-02-01 深圳市彬讯科技有限公司 一种基于Activiti的业务流程管理系统
CN107563714A (zh) * 2017-07-17 2018-01-09 北京慧点科技有限公司 业务流程图生成的方法及装置
CN107590070A (zh) * 2017-08-18 2018-01-16 深圳怡化电脑股份有限公司 一种业务流程调试方法及装置
CN107608667A (zh) * 2017-08-18 2018-01-19 深圳怡化电脑股份有限公司 一种业务流程的更新方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《支持动态流程的工作流引擎MedicalBPM的设计与实现》;陈佳露;《中国优秀硕士学位论文全文数据库 信息科技辑》;20180415(第04期);第I138-480 *

Also Published As

Publication number Publication date
CN109684057A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109684057B (zh) 任务处理方法、装置和存储介质
US8607190B2 (en) Automation of software application engineering using machine learning and reasoning
CN111309294B (zh) 一种业务处理方法、装置及电子设备和存储介质
CN113094125B (zh) 业务流程处理方法、装置、服务器及存储介质
CN110609755A (zh) 跨区块链节点的消息处理方法及装置、设备、介质
CN112114894A (zh) 基于Activiti流程引擎的流程处理方法、装置及电子设备
CN106600226B (zh) 用于优化流程管理系统的方法及装置
CN113434279A (zh) 一种任务执行方法、装置、设备及存储介质
CN108292207A (zh) 用于声明性动作编排的方法和装置
CN110989999A (zh) 代码生成方法、装置、电子设备及介质
Schönberger et al. Algorithmic support for model transformation in object‐oriented software development
CN117806654A (zh) 一种基于Tekton的自定义云原生DevOps流水线系统及方法
JP2023553220A (ja) マルチインスタンスプロセスのためのプロセスマイニング
CN112686580A (zh) 一种可自定义流程的工作流定义方法及系统
CN116931920A (zh) 业务逻辑对象处理方法、装置、电子设备及存储介质
CN116911763A (zh) 流程审批方法、装置、终端设备以及存储介质
CN116185425A (zh) 基于节点组合的事件流程编排方法、装置、设备及介质
CN113535684B (zh) 一种基于Activiti的自主指挥控制方法
CN112418796B (zh) 子流程任务节点激活方法、装置、电子设备及存储介质
CN109933308A (zh) 基于mpi+cuda的遥感卫星数据预处理流程可视化自定制通用系统
CN114449063A (zh) 一种报文处理方法、装置及设备
CN113687882A (zh) 基于activiti的流程回退方法、装置和存储介质
CN112286514A (zh) 一种配置任务流程的方法、装置和电子设备
CN112817571B (zh) 一种基于场景故事板的人机物融合应用建模方法
CN112650573B (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