CN104021460B - 一种工作流程管理系统及工作流程处理方法 - Google Patents
一种工作流程管理系统及工作流程处理方法 Download PDFInfo
- Publication number
- CN104021460B CN104021460B CN201410301486.2A CN201410301486A CN104021460B CN 104021460 B CN104021460 B CN 104021460B CN 201410301486 A CN201410301486 A CN 201410301486A CN 104021460 B CN104021460 B CN 104021460B
- Authority
- CN
- China
- Prior art keywords
- node
- workflow
- flow
- arc
- content
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种工作流程管理系统及工作流程处理方法,包括工作流程管理模块和工作流程引擎;所述工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和向弧制定子模块;所述工作流程引擎包括:当前流程节点获取子模块、节点内容显示子模块、数据保存处理子模块与重置子模块;将该工作流程管理系统应用于铁路供电生产管理中,能够快速解决铁路供电生产管理系统中的相应流程变动,还具有开发和维护工作量低的优点。
Description
技术领域
本发明属于工作流技术领域,具体涉及一种工作流程管理系统及工作流程处理方法。
背景技术
现有铁路供电生产系统中,由于各铁路局供电段对生产系统的要求与流程不一,并且流程的节点或参与的人员变动频繁,因此,增加了铁路供电生产管理系统开发维护工作量并且拖延了生产。如何快捷、高效且低成本实现铁路供电生产管理系统具有重要意义。
发明内容
针对现有技术存在的缺陷,本发明提供一种工作流程管理系统及工作流程处理方法,用以解决上述问题。
本发明采用的技术方案如下:
本发明提供一种工作流程管理系统,包括工作流程管理模块和工作流程引擎;
所述工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和向弧制定子模块;
所述流程制定子模块用于:根据现有实际业务流程需求,采用图形界面方式,通过拖拽操作添加流程节点;每一个流程节点表示业务流程的一个环节;并且,向每一个流程节点关联对应的流程节点名称以及本流程节点与下一个流程节点之间的指向连接线;
所述流程节点内容制定子模块用于:根据各个流程节点需处理的业务数据,分别为每一个流程节点定义对应的流程表单以及流程表单属性;其中,所述流程表单属性包括表单显示样式、表单控件内容以及表单数据处理并保存方式;
所述向弧制定子模块用于定义各个向弧的类型;
所述工作流程引擎包括:当前流程节点获取子模块、节点内容显示子模块、数据保存处理子模块与重置子模块;
所述当前流程节点获取子模块用于:从当前流程实例数据中获取当前流程节点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,通过所述工作流程引擎查找当前流程节点;根据当前流程节点的状态判断是否结束该流程节点,若结束,则直接结束本步流程,进入下一步流程;若不结束,则加载该当前流程节点绑定的节点表单;加载该当前流程节点绑定的节点表单具体为:工作流程引擎获取当前流程的节点内容,然后通过工作流程引擎技术将存储的节点内容转换成表单,并显示在页面中。
显示该节点表单;在接收到客户端上传的已填充有内容的表单保存指令后,工作流程引擎对所得到的表单进行处理;根据处理结果获取下一步流程节点,并重置当前流程节点。
本发明提供的工作流程管理系统及工作流程处理方法,将该工作流程管理系统应用于铁路供电生产管理中,能够快速解决铁路供电生产管理系统中的相应流程变动,还具有开发和维护工作量低的优点。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (1)
1.一种工作流程管理系统,其特征在于,工作流程管理系统基于PHP+MYSQL环境,应用于WEB的铁路供电生产系统,包括工作流程管理模块和工作流程引擎;
所述工作流程管理模块包括流程制定子模块、流程节点内容制定子模块和向弧制定子模块;
所述流程制定子模块用于:根据现有实际业务流程需求,采用图形界面方式,通过拖拽操作添加流程节点;每一个流程节点表示业务流程的一个环节;并且,向每一个流程节点关联对应的流程节点名称以及本流程节点与下一个流程节点之间的指向连接线;流程制定方式采用Microsoft Visio绘图工具,使用方块表示节点,线条表示向弧,使用拖拽的方式进行绘制;实现WEB方式的拖拽绘制流程图,采用Web Visio控件实现功能,该控件可实现拖拽节点与向弧实现流程绘制,每操作一次对操作的节点与向弧进行数据保存,增加节点或向弧、更新节点指向的向弧id、向弧指向节点的id;
所述流程节点内容制定子模块用于:根据各个流程节点需处理的业务数据,分别为每一个流程节点定义对应的流程表单以及流程表单属性;其中,所述流程表单属性包括表单显示样式、表单控件内容以及表单数据处理并保存方式;具体实现上,流程节点内容制定子模块所定制的流程节点是基于Web Visio控件扩展的,通过双击节点方块触发弹出新页面,新页面中显示该节点需保存的内容,是节点名称、节点显示的内容、节点数据处理方法、该节点处理权限;
节点名称:节点名称可显示在流程中,辨别流程走向;
节点显示的内容:分为内容链接和内容HTML代码,选择两种类型,存储不同的数据,内容链接为该页面的文件链接,内容HTML代码则通过在线编辑器编辑显示内容;
节点数据处理方法:每个节点的数据处理方法都自定义,当数据处理时,自动执行该处理方法,达到数据处理自定义;
节点处理权限:可对该节点操作人进行限制,通过权限元点、岗位、部门、指定人员对该节点的操作权限进行限制,以数据格式序列化后存储在数据库中;
所述向弧制定子模块用于定义各个向弧的类型;
所述工作流程引擎为建立在Petri网理论上基于活动的工作流系统,从系统的构架设计上做到多层体系分离,工作流系统与业务系统之间具有很好的松散性,即工作流系统不需要知道业务系统,业务系统也不需要了解工作流;工作流程引擎包括:当前流程节点获取子模块、节点内容显示子模块、数据保存处理子模块与重置子模块;
所述当前流程节点获取子模块用于:从当前流程实例数据中获取当前流程节点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,则直接显示工作节点的显示内容所存储的内容,并输出到表单页面;
其中,工作流的定义:全部或者部分,由计算机支持或者自动处理的业务过程;文档、信息或者任务按照定义好的规则在参与者间进行传递,来完成整个业务目标;工作流基础类型:基于活动的工作流——意为过程,工作流由一组要完成某些目标的活动组成;
铁路供电生产系统中的业务是以流程为主为完成指定的业务目标而组成的,工作流程引擎是基于活动的工作流系统;
工作流程引擎是基于Petri网理论上开发的,Petri网是对离散并行系统的数学表示,适合于描述异步的、并发的计算机系统模型,由库所、变迁、向弧、令牌组成;
Petri网结构图包括:
库所:在Petri网图示中表示为圆圈,每个Petri网有一个开始库所和一个结束库所,但有任意个中间库所,库所为静止,不会跟随流程运转改变;两个库所之间不允许有弧;
变迁:变迁是活动的,代表了要执行的任务;在Petri网图示中以方形表示;两个变迁之间不允许有弧;
向弧:每个向弧连接一个库所和一个变迁;在Petri网图示中以连接线表示;一个内向向弧从一个库所连到一个变迁,一个外向向弧从一个变迁连接到一个库所;
令牌:令牌代表工作流过程当前的状态;在Petri网图示中以库所内黑点表示;一个库所在任何时候都可以拥有0个或0个以上令牌;
从以上内容可了解Petri网的基本流转,根据令牌所在的库所P1开始流转,根据执行结果通过内向弧转向变迁T1/T2,变迁流转结束后通过外向弧转向库所;
工作流程引擎建立在petri网理论中的库所、变迁、向弧、令牌理念上,对其进行了整合调整;将库所与变迁整合为节点;向弧由一个节点指向另一个节点;令牌只有一个,保存在整个流程的实例之中;
节点:包含该步流程的节点信息,包括节点标识、流程标识、节点类型、节点显示内容、节点保存处理方法、节点权限、指向向弧标识;
向弧:包含该向弧指向信息,包括向弧类型、向弧指向节点、条件信息;
令牌:每个工作流实例将存储相应的令牌,确保该流程实例的状态正确;
工作流系统流转方式包括顺序流转、并行流转、条件流转、循环流转四种,其中循环跳转是属于条件流转的特例;铁路供电生产系统业务流转都为顺序流转、条件流转、循环流转,则工作流程引擎实现顺序流转和条件流转;
其中,顺序流转:没有条件分支,执行完当前节点后,流转至下一节点,无特例,流转适用领导下发事务类的流转,无特殊流转情况;
条件流转:有条件分支,在执行完某个节点时,需判断条件,根据结果选择指定的节点进行下一步流程,整个流程有若干个条件分支,流转适用公文办公、生产业务流程,根据处理情况走不同的流程;
循环流转:有条件分支,为条件流转的特例,执行完某个节点时,判断条件,根据结果返回至指定的节点,继续执行,形成一个循环式的流转,流转适用审批,审批不通过则打回修改进行审批;
使用工作流程管理系统进行工作流程处理的方法,包括以下步骤:
S1,既有业务在开始业务流程之前,首先判断是否集成有工作流程引擎;若没有,则自定义工作流程引擎,并转到S2;若有,则调用所述工作流程引擎并转到S2;
S2,通过所述工作流程引擎查找当前流程节点;根据当前流程节点的状态判断是否结束该流程节点,若结束,则直接结束本步流程,进入下一步流程;若不结束,则加载该当前流程节点绑定的节点表单;
显示该节点表单;在接收到客户端上传的已填充有内容的表单保存指令后,工作流程引擎对所得到的表单进行处理;根据处理结果获取下一步流程节点,并重置当前流程节点;
S2中,加载该当前流程节点绑定的节点表单具体为:
工作流程引擎获取当前流程的节点内容,然后通过工作流程引擎技术将存储的节点内容转换成表单,并显示在页面中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301486.2A CN104021460B (zh) | 2014-06-27 | 2014-06-27 | 一种工作流程管理系统及工作流程处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410301486.2A CN104021460B (zh) | 2014-06-27 | 2014-06-27 | 一种工作流程管理系统及工作流程处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104021460A CN104021460A (zh) | 2014-09-03 |
CN104021460B true CN104021460B (zh) | 2018-07-10 |
Family
ID=51438200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410301486.2A Active CN104021460B (zh) | 2014-06-27 | 2014-06-27 | 一种工作流程管理系统及工作流程处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104021460B (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404949B (zh) * | 2014-09-12 | 2020-02-18 | 株洲南车时代电气股份有限公司 | 一种自定义流程的系统及其方法 |
CN105512018A (zh) * | 2014-09-23 | 2016-04-20 | 上海精密计量测试研究所 | 一种并行系统性能的形式化分析方法 |
CN104317590B (zh) * | 2014-10-22 | 2017-12-12 | 中国建设银行股份有限公司 | 嵌入式配置系统及嵌入式配置审核流程的方法 |
CN105787625A (zh) * | 2014-12-26 | 2016-07-20 | 金蝶软件(中国)有限公司 | 基于erp系统的单据处理方法和装置 |
CN105046408A (zh) * | 2015-06-25 | 2015-11-11 | 国网山东省电力公司 | 一种可配置工作流的实现方法及系统 |
CN105022636B (zh) * | 2015-07-30 | 2018-11-09 | 张瑛 | 一种面向智能元的编程语言系统 |
CN106897806A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 工作流程创建方法和系统、业务系统 |
CN107437164A (zh) * | 2016-05-25 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 基于工作流的邮件发送方法和装置 |
CN106408170A (zh) * | 2016-08-30 | 2017-02-15 | 北京北信源软件股份有限公司 | 一种电子工单处理方法、工作流引擎及电子工单系统 |
CN106384211A (zh) * | 2016-11-08 | 2017-02-08 | 国云科技股份有限公司 | 一种快速构建工作流程的系统及其实现方法 |
CN106779594A (zh) * | 2016-12-01 | 2017-05-31 | 江苏鸿信系统集成有限公司 | 一种基于Activiti的工作流管理方法 |
CN106910045B (zh) * | 2017-03-02 | 2020-11-03 | 重庆砖家宝网络科技发展有限公司 | 工作流引擎设计方法及系统 |
CN107426144A (zh) * | 2017-03-10 | 2017-12-01 | 摩比天线技术(深圳)有限公司 | 制程不合格报告电子管理系统及方法 |
CN106934555B (zh) * | 2017-03-21 | 2020-11-10 | 广州视源电子科技股份有限公司 | 工作流的组织方法及装置、计算机设备及存储介质 |
CN106952081A (zh) * | 2017-03-28 | 2017-07-14 | 深圳市卓讯信息技术有限公司 | 一种权限分级业务的流程实例化方法及设备 |
CN107220811B (zh) * | 2017-05-27 | 2021-02-12 | 杭州迪脉信息科技有限公司 | 流程中节点激活的方法及装置 |
CN107864193B (zh) * | 2017-10-26 | 2020-06-30 | 阿里巴巴集团控股有限公司 | 业务处理方法、装置、系统及服务设备 |
CN107832104A (zh) * | 2017-11-09 | 2018-03-23 | 北京恒华伟业科技股份有限公司 | 一种工作流管理方法、装置及插件 |
CN108108895B (zh) * | 2017-12-19 | 2021-01-26 | 上海携程商务有限公司 | 任务状态动态管控的方法、系统、设备及存储介质 |
CN108510240A (zh) * | 2018-03-26 | 2018-09-07 | 科大国创软件股份有限公司 | 一种文书动态配置系统及其配置方法 |
CN108519914B (zh) * | 2018-04-09 | 2021-10-26 | 腾讯科技(深圳)有限公司 | 大数据计算方法、系统和计算机设备 |
CN110188886B (zh) * | 2018-08-17 | 2021-08-20 | 第四范式(北京)技术有限公司 | 对机器学习过程的数据处理步骤进行可视化的方法和系统 |
CN110910081A (zh) * | 2018-09-17 | 2020-03-24 | 上海宝信软件股份有限公司 | 基于实验室信息管理系统的工作流配置实现方法和系统 |
CN109447406A (zh) * | 2018-09-20 | 2019-03-08 | 武汉达梦数据库有限公司 | 一种创建流程的方法以及创建流程的装置 |
CN110969377B (zh) * | 2018-09-28 | 2023-07-07 | 杭州海康机器人股份有限公司 | 一种物流包裹信息管理系统创建方法、装置及电子设备 |
CN110035124B (zh) * | 2019-04-15 | 2020-06-09 | 重庆天蓬网络有限公司 | 一种基于web端的ivr流程自定义配置方法及系统 |
CN111858619B (zh) * | 2019-04-28 | 2023-07-21 | 中国移动通信集团河南有限公司 | 一种数据自流转的方法、装置和电子设备 |
CN110276533A (zh) * | 2019-06-04 | 2019-09-24 | 深圳市中电数通智慧安全科技股份有限公司 | 一种应急预案的配置方法、装置及服务器 |
CN110610315A (zh) * | 2019-09-16 | 2019-12-24 | 长春嘉诚信息技术股份有限公司 | 一种跨系统完整流程的工作流审批方法 |
CN110795415A (zh) * | 2019-09-25 | 2020-02-14 | 贝壳技术有限公司 | 用于文件管理系统的方法及装置 |
CN111210816B (zh) * | 2019-12-16 | 2023-09-05 | 北京淇瑀信息科技有限公司 | 一种智能语音配置管理方法、装置及电子设备 |
CN111240646A (zh) * | 2020-01-15 | 2020-06-05 | 神州数码融信软件有限公司 | 一种基于全流程开发的程序设计方法 |
CN111507859A (zh) * | 2020-04-24 | 2020-08-07 | 西南交通大学 | 一种基于mes的车间实时生产异常判定及处理方法 |
CN112084115A (zh) * | 2020-09-16 | 2020-12-15 | 京东数字科技控股股份有限公司 | 软件缺陷的流程化操作方法和装置 |
CN112184082A (zh) * | 2020-11-03 | 2021-01-05 | 广东机场白云信息科技有限公司 | 机场应急处置预案的编辑方法、电子设备、计算机可读存储介质 |
CN112347160B (zh) * | 2020-11-13 | 2024-05-10 | 广州太信信息科技有限公司 | 一种基于呼叫中心系统的工单管理方法、系统及存储介质 |
CN112581074A (zh) * | 2020-11-25 | 2021-03-30 | 特力惠信息科技股份有限公司 | 一种支持多级机构协作的工作流引擎管理方法及系统 |
CN113516445B (zh) * | 2021-04-25 | 2024-04-16 | 江苏南大先腾信息产业股份有限公司 | 一种基于层级结构令牌的工作流业务状态管理方法 |
CN115526580B (zh) * | 2021-11-26 | 2024-04-26 | 北京字跳网络技术有限公司 | 节点状态确定方法、装置、电子设备及存储介质 |
CN114168113B (zh) * | 2022-02-10 | 2022-06-07 | 湖南新云网科技有限公司 | 一种业务流程管控配置方法 |
CN114839933A (zh) * | 2022-04-08 | 2022-08-02 | 南京中医药大学 | 一种中药材净切生产智能化设备对应管理系统 |
CN115934086A (zh) * | 2022-12-28 | 2023-04-07 | 苏州峰之鼎信息科技有限公司 | 蓝图与页面设计的信息共享方法、装置、设备及介质 |
CN116192594B (zh) * | 2023-04-21 | 2023-07-11 | 北京炎黄新星网络科技有限公司 | 业务流程编排组件的管理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216911A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 支持分布式执行的工作流模型动态分割方法 |
CN101266669A (zh) * | 2008-05-06 | 2008-09-17 | 广州市中联创通电脑有限公司 | 基于计划模板的项目过程工作流系统及其实现方法 |
CN101539861A (zh) * | 2009-05-04 | 2009-09-23 | 江西省电力信息通讯有限公司 | 一种通用工作流图形化设计和验证工具 |
US7930268B2 (en) * | 2007-04-29 | 2011-04-19 | International Business Machines Corporation | Workflow method, system, and data structure |
CN102486730A (zh) * | 2010-12-06 | 2012-06-06 | 上海协讯软件有限公司 | 可自定义定制流程的工作流实现方法及工作流系统 |
CN102831122A (zh) * | 2011-06-15 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 工作流表的数据保存方法、查询方法及装置 |
-
2014
- 2014-06-27 CN CN201410301486.2A patent/CN104021460B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930268B2 (en) * | 2007-04-29 | 2011-04-19 | International Business Machines Corporation | Workflow method, system, and data structure |
CN101216911A (zh) * | 2008-01-04 | 2008-07-09 | 清华大学 | 支持分布式执行的工作流模型动态分割方法 |
CN101266669A (zh) * | 2008-05-06 | 2008-09-17 | 广州市中联创通电脑有限公司 | 基于计划模板的项目过程工作流系统及其实现方法 |
CN101539861A (zh) * | 2009-05-04 | 2009-09-23 | 江西省电力信息通讯有限公司 | 一种通用工作流图形化设计和验证工具 |
CN102486730A (zh) * | 2010-12-06 | 2012-06-06 | 上海协讯软件有限公司 | 可自定义定制流程的工作流实现方法及工作流系统 |
CN102831122A (zh) * | 2011-06-15 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 工作流表的数据保存方法、查询方法及装置 |
Non-Patent Citations (1)
Title |
---|
借助Petri网进行流程审计;胡记兵 等;《微型机与应用》;20120825;第31卷(第16期);第74-77页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104021460A (zh) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104021460B (zh) | 一种工作流程管理系统及工作流程处理方法 | |
CN109324791B (zh) | 金融自助终端业务流程开发方法、装置及终端设备 | |
CN105739983B (zh) | 脚本程序编辑装置及其实现方法 | |
Ganesh et al. | Openerp/odoo-an open source concept to erp solution | |
US11561772B2 (en) | Low-code development platform | |
CN102999816B (zh) | 可个性化定制业务流程的工作流引擎 | |
CN106537426A (zh) | 自动生成用于工作流程的执行序列 | |
CN106873972A (zh) | 基于插件的电网规划仿真平台计算模块接入方法及系统 | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN102736919A (zh) | 描述及开发动态行为应用系统的方法与系统 | |
US9304746B2 (en) | Creating a user model using component based approach | |
CN111369227A (zh) | 敏捷开发中用户故事管理方法和装置 | |
Meyer et al. | Implementation framework for production case management: Modeling and execution | |
CN106779594A (zh) | 一种基于Activiti的工作流管理方法 | |
Harzenetter et al. | Automated generation of management workflows for applications based on deployment models | |
US9116708B2 (en) | Program creation support apparatus, program, and information system | |
Al-Hawari | Software design patterns for data management features in web-based information systems | |
CN108268615A (zh) | 一种数据处理方法、装置以及系统 | |
Torres et al. | Developing BP-driven web applications through the use of MDE techniques | |
Roszczyk et al. | BalticLSC: A low-code HPC platform for small and medium research teams | |
Daase et al. | Creation of a Framework and a Corresponding Tool Enabling the Test-Driven Development of Microservices | |
CN112527268A (zh) | 一种面向高性能复杂测试测量应用的高效率软件开发模式和架构 | |
Liu et al. | Study on the Development of Ruichang Bamboo Weaving Patterns Based on Computer Graphics and Machine Learning | |
Wautelet et al. | Perspectives on User Story Based Visual Transformations. | |
Tang et al. | A hybrid genetic service mining method based on trace clustering population |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |