企业为适应市场的快速变化,满足用户的个性化需求,要求在产品设计过程中进行广泛的信息交换和建立快速传输机制。而传统产品管理数据(PDM)系统的工作流管理是针对特定业务定制开发的,流程是基于静态过程定义的,表达能力有局限,灵活性较差,当业务流程发生变化时,整个系统均发生重大的调整,很难适应企业的发展、满足企业的要求,也大大地限制了工作流技术的实际应用。
本文通过对PDM系统中工作流动态变化的研究,提出了一种基于工作实例的实现方法,该方法可以实现流程的动态变化,减少重复工作,提高工作流运行效率。
1 工作流管理
1.1 工作流定义
工作流是规划一个项日的各个活动,确定各活动的先后顺序和相互关系、各个活动的起始和终止条件,设定各活动要达到的目标,制定活动的执行者和所用资源以及完成活动的期限等。一个工作流可以用一个二元组来表示,即W(A,C),其中,A= {a1,a2,…}为工作流中的各个活动,在工作流模型中表现为节点;C={C1,C2,...}为各个活动间的次序关系,在工作流模型中表现为节点问的连接线。每个活动节点a又可以表示为一个四元组(t1,e,c,t2),其中,t1为活动的相关任务;e为活动的执行者;c为活动的起始和终止条件;t2为活动的执行时间。每个连接线c可表示为一个三元组(s,ns,ne,其巾,s为连接线的状态;ns为连接线的起点;ne为连接线的终点。
1.2 PDM系统中的工作流管理
工作流管理在PDM系统中的主要目的是将一个具体的工作分解成多个任务、角色,通过一定的规则和过程,约束这个任务的执行和监控,以提高企业生产经营管理水平。PDM系统中的工作流管理主要是产品设计审批流程的管理。系统预先指定产品审批设计流程,定义工作流程阶段的数量和名称,根据工作习惯指派工作流任务,确定各个工作阶段的先后次序及对应的设计审批人员、角色及时间等。
产品研发过程是一个大量的继承、拓展、合并和修改等操作的演化形成产品的过程,该过程中的数据演化是动态的,无法在产品设计之前建立完善的工作流程,开发的执行过程决定下一步的活动方向,因此工作流必须可重构,可扩展,并具有动态性和高度的柔性。
工作流在执行期间有可能发生变化,原因有:①在工作流设计期间由于缺乏认知导致的工作流程规范小完整;②在工作流执行期间发生错误或异常。这 都可能导致系统的崩溃、降低服务质量以及产生一系列矛盾等,因此要实现动态的工作流管理,首要解决的问题是要应用动态工作流技术建立一个能够支持动态编辑修改的工作流模型。而动态工作流技术要解决的核心问题便是流程在执行时的更改和扩展,实现工作流管理在执行层的柔性,它最主要的要求就是工作流中的各个元素(活动、活动的属性及其活动问的关系)不受定义时的限制。因此,开发出PDM环境下支持流程执行期间工作流的动态管理,满足企业流程动态变化的需求已成为PDM系统中工作流管理发展的必然。
2 动态工作流研究
2.1 工作流动态变化的判定
工作流的各个活动节点按状态的不同划划分为:就绪提交节点、正在执行节点和已完成节点。在工作流执行期问各节点状态将发生改变,不同状态间的转换如图1所示。
一个正在执行的工作流程可能发生的动态变化包括:①允许用户直接跳过尚未开始的活动;②允许某些尚未完全满足启动条件的活动启动;③将2个串行的活动在运行时更改为并行;④在流程中新增或删除活动节点;⑤对某个活动节点的一些属性进行修改,改变活动节点间的连接关系等。
图1 不同节点状态的变化
对于发生动态变化的流程,判定节点在新流程中是否发生变化,确定节点是否需要重新执行则成了关键。为此提出以下5个条件对节点进行依次判断,当有一个条件不满足时,节点需要重新执行,这5个条件为:
(1)该节点不是新建节点;
(2)该节点的属性未发生变化;
(3)该节点的连接关系未发生变化;
(4)该节点的任务已完成;
(5)该节点的前面所有节点已经完成。
其中节点的连接关系分为前置连接关系和后置连接关系。前置连接关系的改变会影响节点的执行,后置连接关系的变化会触发事件。
根据上述5个判断条件,归纳出4类节点:基于条件(1)的新增节点;条件(2)和(3)的原始节点;条件(4)的完成节点;条件(5)的跳转节点。对于节点在新流程中是否需要重新执行,判断流程如图2所示。根据节点判断流程,利用计算机程序化的递归遍历方法即可找出新工作流程中不需要重复执行的活动节点。
图2 节点判断流程
2.2 动态工作流的实现
为了解决上述问题,本文提出基于工作实例法的工作流方法。该方法相比其它方法,具有贴合实际需求,能够处理流程个案,减少实例重复工作,不影响其它共用流程模板实例的执行,自动化程度高,可视化程度强,简便易懂等特点。该方法主要有4个过程:
(1)建立新工作流模板,该模板以原模板为样板进行绘制,要求先暂停工作流实例,保存所有的原始数据和过程信息(原流程执行的结果),再对原模板进行编辑修改使之符合新的工作流要求,同时将新的版本号保存在工作流模板库中。
(2)将原流程的原始数据和过程信息拷贝至新模板中,同时解决该过程中产生的异常和冲突等问题。
(3)标记不需要重新执行的过程节点。利用节点判断流程来判断不需新执行的节点,可以从原流程中得到继承,给予标记。
(4)将新旧模板的信息进行积聚整合,确保工作实例在新模板中能够顺利执行。聚合后原工作流模板不除,以备另用或使其它实例正在运行不受影响。
由上述过程可知,解决迁移过程中的异常和冲突问题是实现流程动态变化的关键所在。
2.2.1 异常
新工作流模板在创建时可能存在不完善之处。新模板创建时,创建者没有对其进行结构分析和性能检验,即未对新建工作流模板的活性、有界性、安全性和各种性能指标进行验证,会产节节被被“死锁”,不能继续执行的现象;或实例被“粘住”,进入死循环的现象;或存在实例“不可达”现象等。
绘制可达图(reachability graph)检验用户定义工作流程的正确性,判断流程的可达性(无孤岛)、活性(无死锁)等性质。可达图是一种基于Petri网的有向图,由节点和箭头构成。每个节点表示一种可达状态,箭头表示一种可能的状态改变。工作流、Petri网和可达图的转换如图3所示。
图3 工作流、Petri网和可达图的转换
2.2.2 冲突
原模板中的原始数据和过程信息在迁移至新模板中时产生不兼容,即原模板中有的过程节点或属性在新模板中没有或者属性发生改变;原模板中有的连接关系在新模板中没有或者不同;原模板中的局部流程结构(如串行)在新模板中发生改变(如并行)等。解决该冲突的方法应遵循先分拣、后比对、再迁移的顺序。
分拣即从旧模板中筛选出在新模板中依然存在的活动节点和连接关系。节点分拣可以通过节点编号、名称等具有唯一性标识的属性加以实现;连接关系的分拣可以通过连接线的起始终止节点和状态加以实现。
比对即检查对照已分拣出的节点信息,保存那些依然存在且尚未改变的属性;通过上述分拣出来的连接关系即为原始的连接关系,保存其相关信息。
迁移即将这些通过分拣和比对的节点、连接关系以及相关信息迁移至新模板中进行保存,以供后续继承活动的判断执行。
以一般通用的产品重要零部件审批流程为例,对工作实例法的运用过程进行说明,相关图如图4所示(实线方框表示活动已经完成)。
图4 工作流程
因考虑到设计的通用化和标准化,决定在原工作流程的会签节点之前新增标准化审核节点,且与审核节点同步,如图4b所示。运用工作实例法如下:
(1)先中止该工作实例,取出工作流模板(图4a),在该模板基础上编辑修改得到新的模板(图4b),保存给予的新版本号。这一方面可以减少建模的工作量和建模过程中产生的异常错误,另一方面为接下来迁移过程中解决异常冲突提供便利。
(2)进行迁移,解决此过程中的异常和冲突等问题。对于异常问题的解决,系统将新建模板的数据模型生成相应的Petri网模型和可达图,用于验证模型建立的正确性。将图4b和图4c合并得到的层次着色Petri网如图5所示,可达图如图6所示。根据可达图的判断定理可知,该新建的工作模板没有死锁现象,具有可达性、活性和有界性,新模板有效可用。
图5 产品设计审批流程Petri网模型
图6 产品设计审批流程可达图
对于冲突问题,可以通过设计循环遍历程序来解决,根据先分拣后比对的准则来完成信息的迁移。实现循环遍历的方法函数为:
Class Recurrence
{
JudgeNode();////节点遍历、分拣
JudgeProperty();////属性遍历、分拣
Judgeconnection();////连接关系判断
Infonmtion Transf();////信息迁移
}
(3)完成迁移后,根据节点的判断流程来标记不需要重新执行的活动,完成继承。原工作流程已经进行到批准等待阶段,对于新的工作流程,通过继承过程可知,审核及其之前的节点都不需要重新执行,但校对需要触发一个事件,因其加入了新的后置关系,即让校对的结果也进入标准化审核节点,让其与审核同步;会签工作需要重新执行,因为该节点的前置连接属性发牛了改变,由原来的因果顺序关系变成了并行与关系。
(4)将新模板实例化后重新启动,则流程会自动从标准化节点开始依次执行。
3 应用实现
在上述研究的基础上,以VS.NET2005为开发环境,SQLServer2000为数据库,开发了支持流程动态变化的工作流管理系统,界面如图7所示。用户可根据企业的工作习惯,使用可视图像化的工作流编辑器,建立相应的上作流程。
图7 工作流编辑器
具体操作为:
(1)在工作流编辑器中建立工作流模型:一方面将建好的模型放入到模型库中,另一方面将其转换为数据模型存储在数据库中。
(2)系统会自动将数据模型转换成Petri网模型和可达图来检验用户定义流程的正确性,判断流程的可达性、活性等性质,并通过分析找出可能存在的错误,给出相应提示以便改正。
(3)将该工作流模型实例化,流程自动启动。系统通过层次着色Petri网模型确定流程的执行顺序,监视流程的执行过程和执行状态,同时记录流程状态演变的过程数据和相关信息。
(4)在工作流运行过程中,若需临时对其进行修改,暂时中止该工作流程;然后对此模型进行编辑,在判断无误后系统自动地将原流程执行过程中的数据和信息迁移继承到新的流程中,并判断哪些活动需要重新执行,在此基础上对流程进行重新编译继续执行。
4 结束语
通过对动态工作流的研究与分析,可以提高工作流管理的柔性,使工作流管理系统具有更好的适应动态变化的能力。本文给出了工作流动态变化的判定方法和实现动态上作流的过程步骤,同时给出活动节点是否需要重新执行的削断流程,实现了工作流在执行过程中的动态变化。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:PDM系统中动态工作流的分析与研究