首页> 中国专利> 一种工作流引擎动态切换的模型驱动控制系统

一种工作流引擎动态切换的模型驱动控制系统

摘要

本发明涉及一种工作流引擎动态切换的模型驱动控制系统,自定义表单通过对业务单据生命周期不同时机的抽象;在单据模型发布阶段,执行发布元数据操作,系统完成了从业务单据模型到元数据模型的转换,自动生成了与单据模型相对应的元数据,同时根据元数据生成了对应的数据库表;在执行发布功能节点阶段,系统自动完成了功能节点、菜单、流程类型查询模板的发布,同时根据客户需要发布套打模板;用户在表单配置中对预生成的系统模板进行个性化配置;在页面渲染阶段,系统在加载页面时读取已分配的个性化模板,如果没有个性化模板,则查找系统模板;页面加载完毕,用户根据预先定义的类型进行单据操作。

著录项

  • 公开/公告号CN105607907A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利权人 用友网络科技股份有限公司;

    申请/专利号CN201510962556.3

  • 发明设计人 樊兆龙;姜军;

    申请日2015-12-21

  • 分类号G06F9/44(20060101);

  • 代理机构11249 北京中恒高博知识产权代理有限公司;

  • 代理人刘洪京

  • 地址 100094 北京市海淀区北清路68号用友软件园

  • 入库时间 2023-12-18 15:29:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-31

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20151221

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别是涉及一种工作流引擎动态切换的模型驱动控制系统。

背景技术

工作流引擎系统是应用软件领域一个重要组成部分,它依据用户、角色、分工和条件的不同,决定了信息传递路由方案。根据应用的不同,工作流引擎传统划分为审批流和工作流:审批流解决了对业务单据审批流程的定义,业务单据可以根据规定的业务流程进行审批流转。工作流将工作中的项目抽象为工作项,依照业务的前后作业顺序进行自动化执行。提供一套审批流与工作流集成的通用应用系统,有利于统一模型资源,节省实施成本。

随着2011年BPMN2.0规范的发布,Activiti作为新一代工作流和业务流程管理开源平台,通过定义流程的元模型和执行语义,实现了自身解决存储、交换和执行的问题,完成了业务单据与流程引擎的解耦。Activiti以其开放性、伸缩性,已经在当前工作流引擎领域占据重要地位。

作为一种灵活性强、可伸缩能力强、开发态无关的模型驱动产品,自定义表单系统可以适应不同应用场景对业务对象模型的需求,当客户需求发生改变时,可以通过改变模型字段的方式实现运行态修改表,也可以在线设计页面,还可以通过系统扩展机制,改变业务对象生命周期不同阶段的行为,最大限度拟合用户纷繁多杂的需求。

随着工作流引擎版本的不断推衍,随着企业信息化程度的不断加深,提升传统ERP软件的可扩展能力成为重要环节,而降低软件实施成本与个性化能力的提升之间的矛盾愈演愈烈。能够继承企业原有流程资产,不断扩展应用的广度,在继承历史遗产的同时兼容新一代工作流引擎,推进产品繁衍,具有战略性价值。

同时,提升同一产品的兼容性,根据业务需求平滑更换原有工作流引擎内核,不影响模型层历史数据,有利于成功经验迅速复制、样板客户快速模仿,提升知识传播的速度,保证原有系统的稳定性。

现有技术中,公开号为CN101246421的《一种基于工作流引擎实现的通用框架》,该发明设计了一种基于工作流引擎实现的通用框架,实现一种行为可改变的通用性的框架,但该发明抽象度较高,不能实现运行态切换工作流引擎。

公开号为CN101286215的《同时支持人工流和自动流的工作流引擎》,该专利技术针对工作流引擎的技术架构领域,提出一种同时支持人工流和自动流的工作流引擎,该发明描述完备,但不能实现运行态切换工作流引擎。

公开号为CN201010278639.8的《一种用于工作流模型的表单自动生成方法》,该该发明公开了一种用于工作流模型的表单自动生成方法,将工作流模型中的相关业务数据,按照需求灵活地定义表单,实现表单自动生成且能按照权限进行读写控制,该发明较完备解释了系统的构建流程,但无法做到工作流引擎切换。

公开号为CN201210097825.0的《一种支持在线自演化的动态工作流引擎》,该发明为分布式网络环境下工作流的动态处理和自演化提供一种有效的解决方案。但其侧重工作项组件的变更。

公开号为CN101216770的《一种工作流引擎》,本发明提供了一个可配置的业务逻辑运算控制器,由Scrip负责具体的业务逻辑,使工作流引擎与业务逻辑完全解耦解决了传统工作流扩展性不佳的问题。但该发明侧重运行态展现形态变更。

随着历史的推进,工作流引擎不断更新换代,流程定义方式、流程服务接口、数据传输方式、安装部署方式都会发生改变。同时随着产品适用场景的需求推动,越来越多的场景也对产品的扩展能力提出更高要求。

软件设计中的开闭原则指出,当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。由此可以得出待解决的技术问题:当工作流引擎系统不断推衍,自定义表单应用领域不断扩展,如何最大限度实现自定义表单系统与工作流引擎的解耦,实现业务系统的深层次抽象,用合理的抽象保证架构的稳定性,同时客户的变化是永恒的,面对应用中需要变化的领域,由具体的派生实现具体的细节,在细节对应的不同时机,通过反射机制调用特性服务类,完成该特性所具有的行为。

发明内容

本发明的目的在于:针对现有技术中存在的上述技术问题和待结局的技术问题,提供了同一种业务对象模型兼容多种工作流引擎,实现了具有模型统一、工作流引擎可独立部署、同时支撑审批流与工作流、数据交换方式无关、渲染技术无关的自定义表单系统,将二次开发成本降为最低,实施态只需绑定不同特性,即可完成审批流与工作流、基于BPMN不同版本引擎的切换。

本发明是通过以下技术方案实现的:1、一种工作流引擎动态切换的模型驱动控制系统,其特征在于:自定义表单通过对业务单据生命周期不同时机的抽象;在单据模型发布阶段,执行发布元数据操作,系统完成了从业务单据模型到元数据模型的转换,自动生成了与单据模型相对应的元数据,同时根据元数据生成了对应的数据库表;在执行发布功能节点阶段,系统自动完成了功能节点、菜单、流程类型查询模板的发布,同时根据客户需要发布套打模板;用户在表单配置中对预生成的系统模板进行个性化配置;在页面渲染阶段,系统在加载页面时读取已分配的个性化模板,如果没有个性化模板,则查找系统模板;页面加载完毕,用户根据预先定义的类型进行单据操作。

进一步,所述的执行发布功能节点阶段,系统调用UI生成器,完成了系统模板的创建。

进一步,对业务单据生命周期分析的行为包括:工作流定义的绑定、单据信息的收集和工作流审批面板的过程;在业务单据生命周期的不同时期,抽象出统一的接口,以抽象工厂的方式实现不同工作流引擎对单据行为的改变,以及单据信息收集对工作流引擎流转的影响。

进一步,所述的业务单据生命周期中不变的属性以及稳定的行为封装为一系列特性接口,当实施人员需要切换不同的特性时,只需通过图形化界面进行特性的切换。

进一步,自定义表单系统与工作流引擎的解耦过程如下:

(1)工作流引擎的选取;

(2)流程定义绑定;

(3)流程审批面板渲染;

(4)流程参数收集;

(5)流程运行。

进一步,所述的工作流引擎分为三种:审批流引擎、工作流引擎和基于BPMN2.0的工作流引擎;

所述的审批流引擎是一种基于jBPM的审批流引擎,该引擎独立提供流程设计器进行的定义,提供接口进行流程引擎的审批流转;

所述的工作流引擎是一种基于jBPM的工作流引擎,该引擎独立提供工作流设计及定义,提供接口驱动工作流任务执行;

所述的基于BPMN2.0的工作流引擎独立提供工作流设计及定义,独立部署,通过Restful编程方式进行信息传递,驱动工作流引擎执行。

每种工作流引擎提供了图形化设计器,方便运行态进行流程对象的设计,预置流程的活动、活动的连接方式、活动的方式及活动的承担者四个基本要素。通过图形化设计器设计流程,即完成了流程定义的过程。

在模型设计阶段,自定义表单以参照的形式提供了对流程定义的关联关系参考,同时可以依据当前自定义表单系统的用户、权限等资源,对流程定义进行过滤;选取了某个流程定义,即完成了单据模型与流程定义之间一对一的关联关系。

所述的页面渲染是对页面解析之后的语法树进行位置样式计算,生成展现在浏览器中的最终样式;在页面加载阶段,本方案针对每种工作流引擎的不同,封装为统一的审批面板。审批面板的封装实现了对外的统一性与内部的差异性;通过对外的统一性与内部的差异性的封装,本方案解决了行为的抽象与特性的具体实现,隔离了各工作流引擎的不同,从而为多流程引擎的切换打下基础。

在单据运行过程中,单据的一个实例与流程实例之间具有一对一的关系,单据通过记录流程定义、流程实例,实现每一条记录与流程每一条实例的绑定关系;用户进入单据时,已经提前确定了流程定义、流程实例与当前用户,通过对参数集合的统一收集封装,可以调用流程相关接口,判断出流程的相关状态,进而对流程面板进行相应改变。

所述的步骤(5)流程运行阶段,由于步骤(3)与步骤(4)对差异的封装,流程审批面板的展现形式不同,在流程不同环节,通过不同的条件驱动流程流转。流程响应服务的封装,针对不同的动作,步骤(3)在单据上收集了不同的流程相关信息,步骤(4)实现了服务无关的流程参数传递。

在后台实现流程驱动的业务逻辑时,将流程事件响应模型进行封装,由每种流程特性的服务类实现真正的流程启动、提交及加签、改派、回退、会签以及其他的工作项任务,单据时间模型面向抽象编程,不进行真正的业务逻辑操作。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明真正实现了同一套业务数据模型对多套工作流引擎的运行态支撑,只需绑定特性即可完成工作流引擎内核的切换,成功解决了ECM、HCM、CRM、房地产、财务共享等多种领域的个性化需求,实现了自定义表单系统适用领域范围的扩大和工作流引擎能力的提升,为丰富产品体系结构、快速响应客户化需求、已有实施经验快速传播提供了有力支撑。

2、本发明实现了一种伸缩性好、可扩展性能力强的自定义表单系统,在同行业管理系统软件中具有一定的技术优势;已经在ECM、HCM、CRM、房地产等多个行业领域积累了百余个大型项目、万余张真实单据的实施经验,通过多个项目验证了方案的可行性与市场价值。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1为本发明的自定义表单体系结构示意图;

图2为本发明的流程引擎步骤阶段抽象示意图。

具体实施方式

本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

具体实施方案,自定义表单通过对业务单据生命周期不同时机的抽象,实现了由特殊到普遍的统一和升华。完成了对大多数业务单据的模型和行为的统一抽象。在单据模型发布阶段,执行发布元数据操作,系统完成了从业务单据模型到元数据模型的转换,自动生成了与单据模型相对应的元数据,同时根据元数据生成了对应的数据库表。在执行发布功能节点阶段,系统自动完成了功能节点、菜单、流程类型查询模板的发布,同时根据客户需要发布套打模板。同样是在这个阶段,系统调用UI生成器,完成了系统模板的创建。用户可以在表单配置中对预生成的系统模板进行个性化配置。在页面渲染阶段,系统在加载页面时读取已分配的个性化模板,如果没有个性化模板,则查找系统模板。页面加载完毕,用户可以根据预先定义的类型进行单据操作。

本发明的系统通过分析业务单据生命周期中的行为,重点分析了工作流定义的绑定、单据信息的收集、工作流审批面板的过程,在业务单据生命周期的不同时期,抽象出统一的接口,以抽象工厂的方式实现不同工作流引擎对单据行为的改变,以及单据信息收集对工作流引擎流转的影响。

如图1所示的,给出了自定义表单对单据行为的抽象,以及自定义表单系统与工作流引擎的结构关系。

如图2所示的,本发明的系统通过以下阶段的抽象实现了自定义表单系统与工作流引擎的解耦:步骤流程如下:

(1)工作流引擎的选取

本发明的系统将单据生命周期中不变的属性以及稳定的行为封装为一系列特性接口,具有完全相似行为的特性接口族定义为一种特性。当实施人员需要切换不同的特性时,只需通过图形化界面进行特性的切换。

特性切换实现了工厂实例的改变,从而影响单据生命周期行为的改变。工作流引擎选取的过程,也就是特性选择过程,根据项目的真实需求,将目前系统的工作流引擎分为三种:

l审批流是一种基于jBPM的审批流引擎,该引擎独立提供流程设计器进行的定义,提供接口进行流程引擎的审批流转。

l工作流是一种基于jBPM的工作流引擎,该引擎独立提供工作流设计及定义,提供接口驱动工作流任务执行。

l基于BPMN2.0的工作流引擎,该引擎独立提供工作流设计及定义,独立部署,通过Restful编程方式进行信息传递,驱动工作流引擎执行。

根据工作流引擎的不同,定义出特性基本信息,如名称、描述等,以及对应的特性服务类,插入到特性表里。特性服务类通过抽象工厂的调用,完成对单据生命周期中模型的改变以及行为的干预。

在模型设计时,高级用户(也就是领域专家)通过分析场景,选取响应的工作流引擎模型,对系统进行系统预置特性的绑定与解除,改变了系统在其生命周期不同阶段的行为特征,实现了系统的可伸缩性。当用户的需求发生改变时,进行绑定系统预置的特性的改变,即可完成系统行为的改变。

(2)流程定义绑定

每种工作流引擎提供了图形化设计器,方便运行态进行流程对象的设计,预置流程的活动、活动的连接方式、活动的方式及活动的承担者四个基本要素。通过图形化设计器设计流程,即完成了流程定义的过程。

在模型设计阶段,自定义表单以参照的形式提供了对流程定义的关联关系参考,同时可以依据当前自定义表单系统的用户、权限等资源,对流程定义进行过滤。选取了某个流程定义,即完成了单据模型与流程定义之间一对一的关联关系。

(3)流程审批面板渲染

页面渲染是对页面解析之后的语法树进行位置样式计算,生成展现在浏览器中的最终样式。

由于工作流引擎的不同,导致直观上用户审批面板的功能有所不同、用户最终可控制流程交互的行为有差异,同时在单据生命周期的不同阶段,流程审批面板的形态各异。脚本语言JavaScript提供了对语法树行为的改变,帮助系统进行页面的改变。

基于以上的背景,在页面加载阶段,本方案针对每种工作流引擎的不同,封装为统一的审批面板。审批面板的封装实现了对外的统一性与内部的差异性:

对外的统一性是指对于自定义表单系统而言,流程审批面板的行为是统一的。对于不同的工作流引擎,自定义系统页面的流程审批面板加载区域、加载时机、页面响应模型、数据传输接口都是统一的,外部系统面对统一接口编程,无需关注内部实现细节的差异。

内部的差异性是指,流程审批面板内部元素存在差异、元素的排布方式存在差异、元素的渲染技术存在不同、元素的数据传输格式可以不同(Json、Xml或其他)、针对不同参数的不同数据,流程审批面板的行为千差万别。

通过对外的统一性与内部的差异性的封装,本方案解决了行为的抽象与特性的具体实现,隔离了各工作流引擎的不同,从而为多流程引擎的切换打下基础。

(4)流程参数收集

在单据运行过程中,单据的一个实例与流程实例之间具有一对一的关系,单据通过记录流程定义、流程实例,实现每一条记录与流程每一条实例的绑定关系。同时,单据的不同用户,决定了流程环节的不同,针对不同的流程使用者,流程处在不同的阶段,流程审批面板的展现形式也必然千差万别。

本发明系统实现了对用户进入单据与单据保存时流程参数的收集:

用户进入单据时,已经提前确定了流程定义、流程实例与当前用户,通过对参数集合的统一收集封装,可以调用流程相关接口,判断出流程的相关状态,进而对流程面板进行相应改变。

用户对单据的修改完成时,根据用户输入的相关数据,通过统一的接口进行数据收集,由前台传回后台进行处理。传统的流程引擎通过Webservice方式分布式应用程序的创建,而基于activiti的工作流引擎以rest服务方式实现了平台独立、松耦合的服务调用。虽然服务调用方式存在差异,系统封装出统一的接口,将服务调用方式解耦,服务调用方式的真正实现放在具体的流程特性服务类中,最大限度降低了工作流引擎的不同对单据造成的影响。

(5)流程运行

在流程运行阶段,由于步骤(3)阶段与步骤(4)阶段对差异的封装,流程审批面板的展现形式不同,在流程不同环节,通过不同的条件驱动流程流转。本方案实现了流程响应服务的封装,针对不同的动作,步骤(3)阶段在单据上收集了不同的流程相关信息,步骤(4)实现了服务无关的流程参数传递。

在后台实现流程驱动的业务逻辑时,将流程事件响应模型进行封装,由每种流程特性的服务类实现真正的流程启动、提交及加签、改派、回退、会签以及其他的工作项任务,单据时间模型面向抽象编程,不进行真正的业务逻辑操作。

通过以上五个阶段的抽象,方案实现了对单据整个生命周期中流程的解耦,成功解决了流程切换的问题,实现了一套单据模型与多套工作流引擎的映射关系。

本发明已经成功应用于金关工程二期工作流系统、上海机场工单系统、延长石油工单系统,真正实现了同一套业务数据模型对多套工作流引擎的运行态支撑,只需绑定特性即可完成工作流引擎内核的切换,成功解决了ECM、HCM、CRM、房地产、财务共享等多种领域的个性化需求,实现了自定义表单系统适用领域范围的扩大和工作流引擎能力的提升,为丰富产品体系结构、快速响应客户化需求、已有实施经验快速传播提供了有力支撑。

本发明已经已经在ECM、HCM、CRM、房地产等多个行业领域积累了百余个大型项目、万余张真实单据的实施经验,通过多个项目验证了方案的可行性与市场价值。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号