首页> 中国专利> 一种工作流程管理系统及工作流程处理方法

一种工作流程管理系统及工作流程处理方法

摘要

本发明提供一种工作流程管理系统及工作流程处理方法,包括工作流程管理模块和工作流程引擎;所述工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和向弧制定子模块;所述工作流程引擎包括:当前流程节点获取子模块、节点内容显示子模块、数据保存处理子模块与重置子模块;将该工作流程管理系统应用于铁路供电生产管理中,能够快速解决铁路供电生产管理系统中的相应流程变动,还具有开发和维护工作量低的优点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-07-10

    授权

    授权

  • 2014-10-08

    实质审查的生效 IPC(主分类):G06Q10/06 申请日:20140627

    实质审查的生效

  • 2014-09-03

    公开

    公开

说明书

技术领域

本发明属于工作流技术领域,具体涉及一种工作流程管理系统及工作流程 处理方法。

背景技术

现有铁路供电生产系统中,由于各铁路局供电段对生产系统的要求与流程 不一,并且流程的节点或参与的人员变动频繁,因此,增加了铁路供电生产管 理系统开发维护工作量并且拖延了生产。如何快捷、高效且低成本实现铁路供 电生产管理系统具有重要意义。

发明内容

针对现有技术存在的缺陷,本发明提供一种工作流程管理系统及工作流程 处理方法,用以解决上述问题。

本发明采用的技术方案如下:

本发明提供一种工作流程管理系统,包括工作流程管理模块和工作流程引 擎;

所述工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和 向弧制定子模块;

所述流程制定子模块用于:根据现有实际业务流程需求,采用图形界面方 式,通过拖拽操作添加流程节点;每一个流程节点表示业务流程的一个环节; 并且,向每一个流程节点关联对应的流程节点名称以及本流程节点与下一个流 程节点之间的指向连接线;

所述流程节点内容制定子模块用于:根据各个流程节点需处理的业务数据, 分别为每一个流程节点定义对应的流程表单以及流程表单属性;其中,所述流 程表单属性包括表单显示样式、表单控件内容以及表单数据处理并保存方式;

所述向弧制定子模块用于定义各个向弧的类型;

所述工作流程引擎包括:当前流程节点获取子模块、节点内容显示子模块、 数据保存处理子模块与重置子模块;

所述当前流程节点获取子模块用于:从当前流程实例数据中获取当前流程 节点id;

所述节点内容显示子模块用于:根据获取到的当前流程节点id,获取相应 的流程节点数据,查找存储的工作流程节点信息表,根据工作流程节点信息表 的配置显示;

所述数据保存处理子模块用于:在接收到客户端提交的页面数据后,根据 所述流程节点内容制定子模块所配置的该流程节点的表单数据处理并保存方 式,对所述页面数据进行数据保存处理;

所述重置子模块用于重置当前流程;具体为:根据所述数据保存处理子模 块对当前流程节点的处理结果,以及所述向弧制定子模块所定义的向弧类型, 获取下一步流程节点id,修改数据库中存储的工作流程实例节点表,具体为: 修改工作流程实例节点表中当前流程节点id的工作状态,将其由启用状态修改 为完成状态,新增下一步流程节点的实例节点数据,最后将工作流程实例节点 表中当前流程节点id即工作流节点id更新为下一步流程节点id,实现重置当前 流程。

优选的,所述向弧制定子模块具体用于:本流程节点与下一个流程节点之 间关联的连接线称为向弧,所述向弧制定子模块所定义的向弧的类型包括直接 指向向弧与条件指向向弧;所述直接指向向弧是指:当本流程节点结束后,直 接流转至指向的下一个流程节点;所述条件指向向弧是指:根据本流程节点处 理结果智能获取下一个流程节点。

优选的,所述当前流程节点获取子模块获取当前流程节点id,具体为:

数据库中存储工作流程实例节点表,该工作流程实例节点表中存储工作流 程id、工作流程实例id、工作流程节点id、工作流程节点信息id和工作流程实 例节点状态的对应关系;其中,所述工作流程实例节点状态包括启用、处理中、 取消和完成四种状态;当进入一个工作流程办理时即启用一个工作流程实例节 点,通过查找所述工作流程实例节点表,获得启用状态的工作流程实例id,进 而关联到对应的工作流程节点id,该工作流程节点id即为当前流程节点id。

优选的,所述节点内容显示子模块具体用于:

数据库中存储工作流程节点信息表,该工作流程节点信息表存储工作节点 id、工作节点信息id、工作内容处理方式、工作节点的显示内容、节点数据处理 方法和工作节点可操作的内容的对应关系;其中,工作内容处理方式包括double 方式和single方式;工作节点的显示内容包括:如果工作流类型为double,显示 链接;如果工作流类型为single,直接显示内容;

在获得到当前流程节点id即工作节点id后,查找所述工作流程节点信息表, 获得与工作节点id对应的工作内容处理方式,如果工作内容处理方式为double, 使用MVC框架调用并显示工作节点的显示内容所存储的链接;如果工作内容处 理方式为single,则直接显示工作节点的显示内容所存储的内容,并输出到表单 页面。

本发明提供一种使用工作流程管理系统进行工作流程处理的方法,包括以 下步骤:

S1,既有业务在开始业务流程之前,首先判断是否集成有工作流程引擎; 若没有,则自定义工作流程引擎,并转到S2;若有,则调用所述工作流程引擎 并转到S2;

S2,通过所述工作流程引擎查找当前流程节点;根据当前流程节点的状态 判断是否结束该流程节点,若结束,则直接结束本步流程,进入下一步流程; 若不结束,则加载该当前流程节点绑定的节点表单;

显示该节点表单;在接收到客户端上传的已填充有内容的表单保存指令后, 工作流程引擎对所得到的表单进行处理;根据处理结果获取下一步流程节点, 并重置当前流程节点。

优选的,S2中,加载该当前流程节点绑定的节点表单具体为:

工作流程引擎获取当前流程的节点内容,然后通过工作流程引擎技术将存 储的节点内容转换成表单,并显示在页面中。

本发明的有益效果如下:

本发明提供的工作流程管理系统及工作流程处理方法,将该工作流程管理 系统应用于铁路供电生产管理中,能够快速解决铁路供电生产管理系统中的相 应流程变动,还具有开发和维护工作量低的优点。

附图说明

图1为本发明提供的工作流程管理系统的结构示意图;

图2为本发明提供的工作流程处理的方法的流程示意图;

图3为Petri网结构图;

图4为顺序流转示意图;

图5为条件流转示意图;

图6为循环流转示意图。

具体实施方式

以下结合附图对本发明进行详细说明:

如图1所示,本发明提供一种工作流程管理系统,基于PHP+MYSQL环境, 应用于WEB的铁路供电生产系统,能够快速解决铁路供电生产管理系统中的相 应流程变动,还具有开发和维护工作量低的优点。具体包括工作流程管理模块 和工作流程引擎。

具体的,工作流程引擎为建立在Petri网理论上基于活动的工作流系统,从 系统的构架设计上做到多层体系分离,工作流系统与业务系统之间具有很好的 松散性,即工作流系统不需要知道业务系统,业务系统也不需要了解工作流。

工作流的定义:全部或者部分,由计算机支持或者自动处理的业务过程。 文档、信息或者任务按照定义好的规则在参与者间进行传递,来完成整个业务 目标。

工作流有两种基础类型:

(1)基于活动的工作流——意为过程,工作流由一组要完成某些目标的活 动组成。

(2)基于实体的工作流——关注于一个给定的文档和为了完成目标要经历 的状态。

基于实体的工作流是需要一个实体随着工作流一起流转的主体,如企业日 常办公;而铁路供电生产系统中的主要业务是以流程为主为完成指定的业务目 标而组成的,所以本发明提供的工作流程引擎是基于活动的工作流系统。

本文的工作流程引擎是基于Petri网理论上开发的,Petri网是对离散并行系 统的数学表示,适合于描述异步的、并发的计算机系统模型,由库所、变迁、 向弧、令牌组成。

如图3所示,为Petri网结构图:

库所:在Petri网图示中表示为圆圈,每个Petri网有一个开始库所和一个 结束库所,但有任意个中间库所,库所为静止,不会跟随流程运转改变。两个 库所之间不允许有弧。

变迁:变迁是活动的,代表了要执行的任务。在Petri网图示中以方形表示。 两个变迁之间不允许有弧。

向弧:每个向弧连接一个库所和一个变迁。在Petri网图示中以连接线表示。 一个内向向弧(inward arc)从一个库所连到一个变迁,一个外向向弧(outward  arc)从一个变迁连接到一个库所。

令牌:令牌代表工作流过程当前的状态。在Petri网图示中以库所内黑点表 示。一个库所在任何时候都可以拥有0个或0个以上令牌。

从以上内容可了解Petri网的基本流转,根据令牌所在的库所P1开始流转, 根据执行结果通过内向弧转向变迁T1/T2,变迁流转结束后通过外向弧转向库 所。

本发明的工作流程引擎建立在petri网理论中的库所、变迁、向弧、令牌理 念上,对其进行了整合调整。将库所与变迁整合为节点;向弧由一个节点指向 另一个节点;令牌只有一个,保存在整个流程的实例之中。

节点(place):包含该步流程的节点信息,包括节点标识、流程标识、节点 类型、节点显示内容、节点保存处理方法、节点权限、指向向弧标识等。

向弧(arc):包含该向弧指向信息,包括向弧类型、向弧指向节点、条件信 息等。

令牌(state):每个工作流实例将存储相应的令牌,确保该流程实例的状态 正确。

工作流系统流转方式主要包括顺序流转、并行流转、条件流转、循环流转 四种,其中循环跳转是属于条件流转的特例。铁路供电生产系统业务流转都为 顺序流转、条件流转、循环流转,则本文中的工作流程引擎主要实现顺序流转 和条件流转。

如图4所示,为顺序流转示意图;如图5所示,为条件流转示意图;如图6 所示,为循环流转示意图;

顺序流转:没有条件分支,执行完当前节点后,流转至下一节点,无特例, 流转适用领导下发事务类的流转,无特殊流转情况。

条件流转:有条件分支,在执行完某个节点时,需判断条件,根据结果选 择指定的节点进行下一步流程,整个流程有若干个条件分支,流转适用公文办 公、生产业务流程,根据处理情况走不同的流程。

循环流转:有条件分支,为条件流转的特例,执行完某个节点时,判断条 件,根据结果返回至指定的节点,继续执行,形成一个循环式的流转,流转适 用审批,审批不通过则打回修改进行审批。

下面对本发明提供的工作流程管理模块和工作流程引擎这两个模块详细介 绍:

(一)工作流程管理模块

工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和向弧 制定子模块。

(1)流程制定子模块

流程制定子模块用于:根据现有实际业务流程需求添加流程节点,制定方 式类似“Microsoft Visio绘图工具”,采用图形界面方式,通过拖拽操作添加流 程节点;每一个流程节点表示业务流程的一个环节;并且,向每一个流程节点 关联对应的流程节点名称以及本流程节点与下一个流程节点之间的指向连接 线。

具体的,流程制定方式采用类似Microsoft Visio绘图工具,使用方块表示节 点,线条表示向弧,使用拖拽的方式进行绘制。实现WEB方式的拖拽绘制流程 图,需使用flash或SVG+JS实现,本发明采用Web Visio控件(SVG+JS)实现 该功能,该控件可实现拖拽节点与向弧实现流程绘制,每操作一次对操作的节 点与向弧进行数据保存,主要增加节点或向弧、更新节点指向的向弧id、向弧 指向节点的id。

(2)流程节点内容制定子模块

流程节点内容制定子模块用于为流程流转至该节点时显示相应的内容,从 而达到节点内容自定义。具体的,根据各个流程节点需处理的业务数据,分别 为每一个流程节点定义对应的流程表单以及流程表单属性;其中,所述流程表 单属性包括表单显示样式(表格布局、快捷链接、CSS+DIV等)、表单控件内容 (表单控件类型、第三方控件、控件JS回调函数、JS验证等等)以及表单数据 处理并保存方式,表单数据处理可以为:对表单提交的数据进行处理过滤。

具体实现上,流程节点内容制定子模块所定制的流程节点是基于Web Visio 控件扩展的,通过双击节点方块触发弹出新页面,新页面中显示该节点需保存 的内容,主要是节点名称、节点显示的内容、节点数据处理方法、该节点处理 权限。

节点名称:节点名称可显示在流程中,辨别流程走向。

节点显示的内容:分为内容链接和内容HTML代码,选择两种类型,存储 不同的数据,内容链接为该页面的文件链接,内容HTML代码则通过在线编辑 器(ckeditor)编辑显示内容。

节点数据处理方法:每个节点的数据处理方法都自定义,当数据处理时, 自动执行该处理方法,达到数据处理自定义。

节点处理权限:可对该节点操作人进行限制,通过权限元点、岗位、部门、 指定人员对该节点的操作权限进行限制,以数据格式序列化后存储在数据库中。

(3)向弧制定子模块

所述向弧制定子模块用于定义各个向弧的类型;具体的,本流程节点与下 一个流程节点之间关联的连接线称为向弧,所述向弧制定子模块所定义的向弧 的类型包括直接指向向弧与条件指向向弧;所述直接指向向弧是指:当本流程 节点结束后,直接流转至指向的下一个流程节点;所述条件指向向弧是指:根 据本流程节点处理结果智能获取下一个流程节点。具体的,对于条件指向向弧, 需根据处理结果的值选择指向的节点,处理结果的值主要有处理失败(0)、处 理成功返回是(1)、处理成功返回否(2)。向弧制定子模块所定义的向弧类型 在数据库中以表1的样式存储:流程节点内容制定是基于Web Visio控件扩展的, 通过双击向弧线条触发弹出新页面,新页面中显示该向弧需保存的内容,主要 是向弧类型、条件分类时向弧指向数据(主要是处理结果对应指向节点)。

表1

(二)工作流程引擎

工作流程引擎主要是根据已有的流程,对流程实例的流程进行自动显示与 处理,包括:当前流程节点获取子模块、节点内容显示子模块、数据保存处理 子模块与重置子模块。

(1)当前流程节点获取子模块

当前流程节点获取子模块用于:获取当前流程节点id;具体的,数据库中 存储工作流程实例节点表,如表2所示,该工作流程实例节点表中存储工作流 程id、工作流程实例id、工作流程节点id、工作流程节点信息id和工作流程实 例节点状态的对应关系;其中,所述工作流程实例节点状态包括启用、处理中、 取消和完成四种状态;当进入一个工作流程办理时即启用一个工作流程实例节 点,通过查找所述工作流程实例节点表,获得启用状态的工作流程实例id,进 而关联到对应的工作流程节点id,该工作流程节点id即为当前流程节点id。

表2

(2)节点内容显示子模块

节点内容显示子模块用于:根据获取到的当前流程节点id,获取相应的流 程节点数据,查找存储的工作流程节点信息表,根据工作流程节点信息表的配 置显示。

具体的,数据库中存储工作流程节点信息表,如表3所示,该工作流程节 点信息表存储工作节点id、工作节点信息id、工作内容处理方式、工作节点的 显示内容、节点数据处理方法和工作节点可操作的内容的对应关系;其中,工 作内容处理方式包括double方式和single方式;工作节点的显示内容包括:如 果工作流类型为double,显示链接;如果工作流类型为single,直接显示内容;

表3

此外,数据库中还维护以下三张表,分别为工作流程表、工作流程节点表 和工作流程实例表。

表4

表5

表6

生产系统通过链接进入工作流程引擎,工作流程引擎通过传入的实例id, 获取该实例的下个执行的实例节点pwf_next_wid,根据pwf_next_wid值获取该 实例节点的数据信息,获取工作节点id pwf_pid和工作节点信息id pwf_piid, 通过pwf_pid与pwf_piid获取工作流程节点信息表数据。根据工作流程节点信 息表中的pwf_pitype(节点显示内容类型)显示内容,当pwf_pitype=DOUBLE 时,使用MVC框架调用该链接(pwf_pidesc)本框架的调用方式是: $controller->load->view,生产系统基本以此方式显示,灵活性相对更大;当 pwf_pitype=SINGLE时,通过将存储的显示内容(pwf_pidesc)输出至表单页面, 同时在显示该节点内容之上需显示之前所有流程节点操作后的内容,通过工作 流程(pwf_id)以及当前流程信息(pid),查询之前所有的流程节点的显示内容 (pwf_pidesc),通过正则表达式将表单控件分离,将相关的worktiem保存的数 据显示在相应的控件位置。

两种显示类型有相应的优缺点,适用不同的流程。DOUBLE类型的配置简 单但修改表单需进入页面修改代码,适用于跨页面(多页面)流程的业务流程; SINGLE类型的配置繁琐但可直接在配置中调整表单,适用于单页面简单表单的 业务流程。

也就是说,根据获取到的当前流程节点的id,获取相应的节点数据,通过 存储的节点表单内容,通过组装表单内容,并显示页面中,展示给用户。存储 类型分为多页面多表单、单页面分表单,多页面多表单存储在数据库的流程节 点内容中存储的是显示内容的文件链接,单页面分表单存储在数据库的流程节 点内容中存储的是显示内容的HTML代码(在添加时,使用在线编辑器制定显 示内容即可完成相应的HTML代码);组装方式根据存储的类型组装,多页面多 表单。

(3)数据保存处理子模块

数据保存处理子模块用于:在接收到客户端提交的页面数据后,根据所述 流程节点内容制定子模块所配置的该流程节点的表单数据处理并保存方式,对 所述页面数据进行数据保存处理,处理完成后返回处理结果。流程节点内容制 定子模块所配置的该流程节点的表单数据处理并保存方式,可方便不同业务不 同数据表的多样保存方式。

具体的,显示节点内容之后,用户填写表单内容、点击保存数据后,进入 工作流程引擎数据处理阶段,节点数据处理包括数据处理和流程节点重置两步。 数据处理主要是对提交的数据进行处理保存;流程节点重置是结束当前节点, 根据处理结果获取下一节点,将下一节点置为当前节点。

数据处理使用节点信息表内存储的节点数据处理方法(pwf_func)对数据进 行处理保存,使用php内置方法(call_user_func)执行节点数据处理方法,具体 的处理方法,由相应开发者定义,传入唯一参数($data)为$_POST值,需返回 处理结构,如处理失败返回0,处理成功后返回大于0的数值。

(4)重置子模块

重置子模块用于重置当前流程;

具体为:根据所述数据保存处理子模块对当前流程节点的处理结果,以及 所述向弧制定子模块所定义的向弧类型,获取下一步流程节点id,修改数据库 中存储的工作流程实例节点表,具体为:修改工作流程实例节点表中当前流程 节点id的工作状态,将其由启用状态修改为完成状态,新增下一步流程节点的 实例节点数据,最后将工作流程实例节点表中当前流程节点id即工作流节点id 更新为下一步流程节点id,实现重置当前流程。

具体的,流程节点重置是根据数据处理返回的值,判断是否需进行下一步 流程,若为0则不重置节点;若大于0,则根据该节点指向的向弧(pwf_aid) 获取下一步节点id(pwf_pid),根据表1工作流程向弧表中向弧分类 (pwf_arc_type)与向弧指向内容(per_condition)的值进行获取下一步节点id (pwf_next_pid),修改实例节点表(pwf_workitem)中该节点的状态(从EN改 为FI)和操作数据(操作时间、操作人、操作内容),并新增下一节点的实例节 点数据(pwf_cid、pwf_id、pwf_pid、pwf_piid),最后将表6实例表中的当前实 例节点id(pwf_next_wid)重置为新添加的节点实例id。

本发明提供的工作流程管理系统,硬件支撑环境如下:

(一)数据库管理系统

数据库使用MYSQL5.5,上述表1-表6采用MyISAM存储引擎,生产系统 业务表采用InnoDB存储引擎。数据库管理软件使用Navicat for MySQL。

(二)开发工具、中间件以及数据库接口

开发工具:Zend Studio-7.2.1、Dreamweaver CS4、MySQL-Front5.3.1.7、 Apache2.2+PHP5.4+MYSQL5.5;

Zend Studio-7.2.1:Zend Studio是专业开发人员在使用PHP整个开发周期 中唯一的集成开发环境(IDE),它包括了PHP所有必须的开发部件。通过一整 套编辑、调试、分析、优化和数据库工具,Zend Studio加速开发周期,并简化 复杂的应用方案。

Dreamweaver CS4:Dreamweaver CS4是ADOBE公司推出的最新网页设计 软件,相对于老版本的Dreamweaver,Dreamweaver CS4新增了下列的各种令人 惊喜的新功能,如实时视图新增功能、代码提示新增功能、相关文件新增功能、 集成编码增强功能、代码导航器新增功能等等。

MySQL-Front5.3.1.7:MySQL-Front是一个Windows的MySQL数据库服务 器的前端软件。数据库结构和数据处理通过对话或SQL命令。支持多种格式的 导入或导出。直接或通过HTTP进入到MySQL服务器也是可能的。

中间件:Model Design、CRUD、Open Platform;

Model Design:针对业务表实现功能接口,视图页面调用每个对应的业务表 功能接口实现页面展示

CRUD:增(Create)查(Read)改(Update)删(Delete)的缩写,该中 间件主要是为了解决一些简单的增查改删,开发者只需要通过配置并调用该接 口即可生成相对应的功能。

Open Platform:提供安全的、高效的、可跨平台的开放接口,针对与系统相 关联的数据进行对应的接口。

数据库接口:PDO

PDO:PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口, 它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致 的函数执行查询和获取数据。PDO接口支持多种数据库链接,并可实现各种数 据库操作,以便开发者在开发过程中进行数据库操作,也同时分离了开发者与 数据开发者的工作。

(三)硬件环境

如图2所示,本发明还提供一种工作流程处理的方法,包括以下步骤:

S1,既有业务在开始业务流程之前,首先判断是否集成有工作流程引擎; 若没有,则自定义工作流程引擎,并转到S2;若有,则调用所述工作流程引擎 并转到S2;

S2,通过所述工作流程引擎查找当前流程节点;根据当前流程节点的状态 判断是否结束该流程节点,若结束,则直接结束本步流程,进入下一步流程; 若不结束,则加载该当前流程节点绑定的节点表单;加载该当前流程节点绑定 的节点表单具体为:工作流程引擎获取当前流程的节点内容,然后通过工作流 程引擎技术将存储的节点内容转换成表单,并显示在页面中。

显示该节点表单;在接收到客户端上传的已填充有内容的表单保存指令后, 工作流程引擎对所得到的表单进行处理;根据处理结果获取下一步流程节点, 并重置当前流程节点。

本发明提供的工作流程管理系统及工作流程处理方法,将该工作流程管理 系统应用于铁路供电生产管理中,能够快速解决铁路供电生产管理系统中的相 应流程变动,还具有开发和维护工作量低的优点。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰, 这些改进和润饰也应视本发明的保护范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号