




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
工作流系统及技术研究工作系统介绍及设计概念工作流的基本概念WfMC定义:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递与执行。工作流是一种反映业务流程的计算机化的模型,实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型基本元素:任务,任务之间的关系工作流的基本特征1:工作流是面向业务过程的技术,这与传统的面向功能的管理技术不同。2:工作流反映了业务过程的自动化,描述的是可由计算机系统支持运行的业务过程。3:工作流根据业务规则将系统中的各种资源相互关联,并协调完成整个业务过程。工作流系统的概念WfMC定义:它是一个软件系统,完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。指运行在一个或多个工作流引擎的软件上用于定义、实现和管理工作流运行的一套软件,人机交互,推进工作流实例的执行,并监控其工作状态。工作流管理系统可称为企业的业务操作系统。工作流系统的组成由流程建模工具、外部应用接口、任务管理工具、流程监控工具、组织建模工具、界面定义工具(电子表单工具)和内部核心引擎组成.工作流参考模型及解析上图是工作流管理联盟提出的工作流管理系统参考模型,包括5个接口和1个核心引擎,其中各个接口的具体含义如下:接口1:工作流定义接口,为用户提供一种可视化的,可以对实际业务进行建模的工具,并生成业务过程的可被计算机处理的形式化描述。此接口的规范有WPDL、XPDL、BPEL(BPM定义规范)大多数的工作流产品都实现了此接口。我们这里采用jpbm的流程描述:jpdl,实际上jpbm也支持规范的定义语言bpmn.这里用flex实现流程自定义。接口2:工作流客户应用接口,它给用户提供一种手段,以处理流程运行过程中需要人工干预的任务(实际上就是工作项workitem)。工作流管理系统负责维护这个工作项列表。接口3:工作流调用应用接口,工作流引擎调用外部业务应用的规范,例如在流程执行的过程中去调用业务系统提供的接口处理业务数据等。此接口各个工作流产品实现的不尽相同,它和具体的工作流产品的实现语言和架构相关,系统最好支持对javabean和webservice的调用.对spring bean 的调用等。接口4:工作流引擎协作接口,是不同的工作流引擎之间进行协作的接口规范,此接口WFMC定义的不是很详细,不同厂商的工作流引擎直接进行协作也存在大量的困难,因此实现此接口规范的工作流引擎产品也极少。接口5:管理监控接口,其功能是对工作流管理系统中所有实例的状态进行监控与管理,如组织机构管理、实例监控管理、统计分析管理、资源控制等。工作流引擎:它是工作流管理系统的核心,工作流引擎对使用工作流模型描述的过程进行初始化、调度和监控过程中每个活动的执行,在需要人工介入的场合完成计算机应用软件与操作人员的交互。另外它的另外一个重要的功能是完成与应用软件及操作人员的交互。工作流之控制模式工作流控制模式是由W.M.P. van der Aalst、A.H.M. ter Hofstede、Bartosz Kiepuszewski、A. P. Barros等人于2000年提出的一个概念。他们一共总结了21种工作流模式。包括:顺序(sequence)、并行分裂(Parallel Split)、同步(Synchronization)、排它选择(Exclusive Choice)、简单合并(Simple Merge)、多路选择(Multiple Choice)、多路合并(Multiple Merge)、路径鉴别器(Discriminator)、M中选N合并(N-out-of-M Join)、同步合并(Synchronising Join)、任意循环(Arbitrary Cycles)、绝对终止(Implicit Termination)、多实例(设计时已知实例数目)、多实例(运行时才知实例数目)、多实例(无预知)、多实例(要求同步的多实例)、延期选择(Deferred Choice)、交叉路由(Interleaved Routing)、里程碑(Milestone)、取消任务(Cancel Activity)、取消流程(Cancel Case)。以上就是著名的工作流21种模式1.顺序l 描述:工作流中的各个活动在同一个进程中按顺序依次执行。l 案例:“用户付款”后才能进行“发送货物”。Jbpm使用transition实现顺序。2.并行分裂l 描述:工作流中从一个线程中的一个点拆分为在多个线程中平行执行的多个活动。这些平行的活动之间没有关联,执行没有顺序关系。l 案例:“用户付款”后激活了“发送货物”以及“通知用户”的执行。Jbpm通过以下两种方式支持并行1:通过fork节点,把一条分支分为多条同时并行的分支2:在相同的任务节点里定义并发任务。3.同步l 描述:在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。流程必须等待所有的分支都执行完以后,才能激活后续活动,这就是“同步”之意。模式3一般与模式2配合使用。l 案例:“发送货物”以及“通知用户”两个并行活动执行完毕后,激活“存档”活动。如图:Jbpm通过以下方式支持同步1:多条并行分支 通过 join节点汇合成一条分支(join node)2:如果task node 节点的任务是同步执行的,那这个节点就是同步任务。4.排他选择l 描述:当一个活动完成以后,可以有多个分支进行选择,但是只能选择其中的一个分支,即多选一。l 案例:“下完订单”后,可以选择“银行卡付款”或者“邮局汇款”,只要选择一种方式即可。如图:根据路径表达式进行判断,选择运行路径。Jbpm通过Decision实现排他选择5.简单合并l 描述:有两个或多个可选择的分支,在某一点处合并成一个分支,但并不是同步合并(与模式2的区别)。与模式4也有点相似,都是“多选一”,但模式4是分散,而模式5 是合并。一般采用“先进先出”原则,但是后续活动只产生一次(如果后续活动执行多次产生多实例,就是模式8)。模式5一般与模式4配合使用。l 案例:无论在何种方式的“付款”之后,进行“发送货物”。Jbpm通过任务节点进行简单合并的6.多路选择l 描述:当一个活动完成以后,有多个分支进行选择,可以选择其中的一个或者多个分支,即“多选多”(模式4 选择是“多选一”模式)。选择的多个分支可能存在并行执行的情况。模式6可以认为是模式4的扩展。l 案例“发起会签”之后,可以多种选则会签方式,但至少要选择一种。aJpbm没有直接实现多路选择的功能.7.同步合并l 描述:在流程中的某个聚合点,多个分支路径合并成一个路径。在聚合点,流程会等待所有的分支到来,才能激活后续的活动。这个模式可以选择分支路径,如果只选择一个分支,实现的功能类似于模式5 简单聚合模式;如果选择两个及以上的分支,实现的功能类似于模式 3 同步模式。模式7可以认为是模式5的扩展。模式7一般与模式6配合使用。l 案例:要等待所有需要会签的活动都结束才进入“会签结束”,忽略不需要会签的活动。Jbpm不支持同步合并8.多路合并l 描述:在流程中多个分支(可能是模式6 多重选择的一个或多个分支;也可能是模式2 并行中的多个分支),在合并时每个分支执行完都会激活后面的活动。与模式5 简单合并的区别在于:简单合并的分支只有一个可执行并且后续活动只激活一次;而多路合并是多个分支可执行,后续活动激活多次。有的工作流引擎不支持。l 案例:报销过程中假如分为住宿费、交通费、飞机票特殊报销,每种类型都需要进行审批。如果飞机票的审批比较严格,拖得较久,可能就需要其他的费用先审批通过进入下一环节。Jbpm可以利用task节点实现。9.鉴别器l 描述: 在流程中的某个聚合点,等待所有的分支(可能是并行分支,也可能是多重选l 择分支)中的第一个分支执行到达后,就立刻激活后续活动。l 案例: M个“会签”活动中只要一个会签完成就立即进入“会签结束”。 Jbpm不支持10.M中N鉴别模式l 描述:在流程中的某个聚合点,等待所有的M 个分支(可能是并行分支,也可能是多多选分支)中的前N 个分支执行到达后,就立刻激活后续活动。与模式9的区别在于模式10有N路同步的概念。l 案例:M个“会签”活动中只要N个会签完成就立即进入“会签结束”。11.任意循环l 描述:工作流中的一个点可以让一个或多个活动反复的执行。l 案例:“修改提交”后进入“经理审批”,但未通过,又回到“修改提交”。Jbpm支持12.隐式终止(Implicit Termination)l 描述:在一个流程中,如果没有活动可执行了那么流程就会终止。换句话说,在工作流中没有active 状态的活动了,而且也没有活动会被激活,这就是隐式终止。(前提:工作流不能处于死锁状态)。有的工作流引擎不支持。l 案例:“主管审批”通过后进入“经理审批”,未通过则无下一个活动。Jbpm支持13.非同步的多实例(Multiple Instances Without Synchronization)l 描述:在流程中,一个活动可以激活多个实例,也就是说可以把一个活动分发成几个控制线程。每个控制线程之间都是相互独立的,并不需要同步它们。l 案例:在网上订购书籍,以书为单位,每一本都会独立产生一个购书实例,并且每个实例之间不需要同步数据。Jbpm支持。可能通过循环产生任务实例工作流之资源模式工作流资源包括参与实体资源、外部应用资源参与者。实体模式,包括直接分配(Direct Allocation)、基于角色/组分配(Role-Based/Group-Based Allocation)、基于岗位分配(Position-Based Allocation)、延期分配/动态分配(Deferred Allocation/Dynamic Allocation)、基于规则分配(Rule-Based Allocation)、基于能力的分配(Capability-Based Allocation)、基于组织关系分配(Organisational Allocation)、基于历史分配(History-Based Allocation)、轮转法分配(Round Robin Allocation)、竞争分配(Competitive Allocation)、委派(Delegation)、跳跃(Skip)、重做(Redo)直接分配模式:在工作流设计期,直接为某个活动节点指定具体的用户为参与者;基于角色/组分配模式:在工作流设计期,直接为某个活动节点指定某个角色或组为参与者;基于岗位分配模式:在工作流设计期,为某个活动分配一个具体的岗位;延期/动态分配模式:在运行期动态的分配某个参与实体给某个活动节点;基于规则的分配模式:在设计期或运行期,根据某个具体的规则来决定某个活动节点的参与者,此规则可以由规则引擎(例如DRools)来运算,也可以由xpath来查询,或者有某个具体的运算逻辑(在活动节点调用业务应用,例如javabean来实现);基于能力的分配模式:要求某个活动的参与者实体必须具备特定的条件;基于组织关系分配:基于当前参与者的职位以及与其它组织资源的关系(例如请假流程中,程序员请假会自动路由给项目经理,项目经理请假会路由给部门经理,然后依次给根据行政关系自动分配参与者);基于历史分配模式:当前活动节点的参与者为前续某个已经执行过的活动节点的参与者,此模式在电子政务的审批流程中经常会用到,例如某个工作项由秘书办理后发给领导,然后又从领导处返回个秘书;轮转法分配模式:在运行期按照轮转法进行分配,轮转法大家应该在负载均衡的解决方案中经常看到;竞争分配模式:活动节点的参与者有多个人,多个人共同竞争此活动,某个人竟得此活动后,其他的参与者不能再竞争;另外还有委派、跳跃、重做等模式,上面给出了最常用的参与者模式工作流时间管理现在我们来看工作流的时间管理,其实讲到工作流时间管理,可能熟悉工作流的人就会想到,为某个活动节点(任务节点)设定一个时间期限,到达期限后可以执行一些特定的动作(例如超时处理,发送通知等),可能还会有人想到对流程实例和活动实例进行统计,报表。其实这些都不是工作流时间管理的本质,工作流时间管理的本质在于可以对整个流程的执行效率进行分析,在分析的基础上进行不断地优化,从而真正地达到优化企业业务流程(实际上就是对网络图进行时间优化)提高企业的执行效率。尤其是在国内这种以人为主的工作流应用背景下,时间管理就更显得尤为重要了。2、工作流时间管理之功能分类工作流时间管理按照功能划分,主要有以下几个部分:a、工作日、非工作日设定(包括工作时间、节假日的设定等)。b、定时设定,包括按具体的时间点、时间间隔和周期性启动流程实例(例如每月的月底启动一个计算工资表的流程);c、时间期限设定及相关处理策略,期限设定包括:流程的期限设定、活动节点(任务节点)的期限设定。处理策略包括:超时策略(可以执行超时预警、报警、超时跳跃,还可以由用户自定义策略)、延时策略(某个工作项提交后并不马上触发下一个任务,而是延时某个时间段后再触发);d、流程实例或活动实例的挂起、恢复,满足一定条件(用户可自定义业务规则条件)后某个流程实例或活动实例自动挂起一个时间段,时间段到时后自动恢复;e、统计和报表,可以按照时间段(小时、日、月、年等)对某人或某角色、某岗位等的工作情况进行统计分析,可以分析参与实体的工作完成效率,工作负载等,可以分析某个流程或某个任务节点的执行效率;f、针对上面的统计结果,找出关键路径(如果存在),对流程进行优化;工作流系统的功能点说明可视化流程自定义生成符合jbpm工作流引擎的xml文件。然后能发布流程文件。能对各个节点进行详细的设置,尤其是task 节点,如:表单设置,按各种条件设置办理人等,超时设置,定时执行设置等。表单域设置?表单自定义能对客户的表单进行自定义,表单字段的权限控制等。客户端应用流程启动的权限控制代办工作已办工作阅览事项消息提醒:系统消息、邮件通知、短信通知撤办(撤销)流程启动者可以要求对正在处理的流程进行撤销办理;拿回重办:业务员依照客户要求填写订单后,订单送出往下继续传递,隔了一天后,客户临时决定更改订货的内容,您可以再不删除订单流程的情况下,使用反向回传的功能,可从有问题的步骤(订单输入)直接取回已流到后面的数个步骤的该张订单,修改完毕后再送至下一步骤。转办:当前办理者可以把工作转给同一权限的人员办理;授权代办:当办理人员无法及时处理流程,如出差,可设定其他人员代办。自动代理:可设置自动代理人,相关的工作任务自行转送到代理人处理。定时代理:可以设置定时代理人,相关的工作任务到点会给代理人处理。竞争办理:当两个用户都收到某事项时,谁先签收了该事项则为谁对该事项进行办理,同时该事项也将从另一用户的待办列表中移除。传阅:审批人员在进行事项审批时,觉得需要将该事项传送给相关人员进行查看,此流转过程称为传阅,相关人员在接收到此事项后只可查看不可进行审批。传阅办理:传阅办理与传阅的不同之处在于接收到此事项的人员可选择对此事项进行办理或不办理,而事项的流转并不等待此传阅办理过程的结束意见补签:事项的审批人员在事项已经发送至后续环节办理的过程中均可进行意见的补签,此操作称为意见补签。催办(自动催办、手动催办) ):用户能够对过期未完成的文档进行催办通知以及处理.督办: 可以三种方式给该处理者有关级别的领导作提醒,间隔一定时间对任务进行督办。、跳转:在特殊情况下,允许用户对流程做跳转处理,直接发送到某个节点上回退:这项业务因为各种原因(文档不全、发送错误等等),当然处理人要求上一处理人重新办理,或重新发送。会签:申请事项需要几个人员按顺序的进行审批,事项将按顺序依次发送给相应的人员进行事项的审批。举例来说,事项需要进行会签,选择人员分别为张三、李四、王五,那么张三首先接收到该事项,张三填写意见后进行发送,系统自动发送至李四进行处理,李四处理完毕后系统自动发送至王五,王五处理完毕后进入实现的下一处理环节处理。联审:为流程操作中较复杂的一种,事项发送后将发送至当前环节的下面所有环节,这时的环节通常由一个子流程构成,在各自的子流程执行完毕后统一回至主流程的下一环节中,这种流转过程称为联审。工作重送:当原始工作程序有问题时,流程管理员可将工作重新发送,以避免流程无法继续进行。临时更改收件人:我们通常会需要介入某个正在进行中的任务,并将某个步骤收件人临时更改为指定人员处理。此功能对于例外处理或未预期的特殊情况非常重要。共享任务:多个人拥有处理任务的平等权利或义务,每个人都只有其中一人处理该任务。可指定代理期限:当某员工因请假将工作交给他人代理一个月,等他返回工作岗位后,需要将工作承办权责自动取回,因此工作流程系统必须提供指定代理期限的功能。抄送路由:比如一个发文,在会签的时候,可能会抄送一份给另外的人员。这个过程会激活一个不影响主流程的额外任务。重复激活流程:只有指定的条件未满足前,会自动重复执行一连串步骤的功能。定时激活流程:许多工作具备定时或定期的特性,例如每月填写工作报告。这种定时自动激活的功能,更是工作流程自动化系统不可或缺的。连续激活步骤:要求软件可利用清单(table)方式一次激活多个流程案例,例如,当本月份有员工试用期满时,自动激活员工试用期满考评表,合乎条件的员工数有多少,变激活多少流程案件,此功能亦可设计为连环激活流程。取消任务:工作因故临时决定取消,在一般企业内也是屡见不鲜的情况,所以工作流程必须提供案件取消,或取消流程中特定步骤的功能。例:订购出货流程有7个步骤,当进行到第4步骤仓管时,业务员接到客户取消订单的通知,此时应该有取消案件的功能,则此工作将从所有相关人员工作列表内清除。保密步骤:企业内常会有某些处理程序必须是保密的(例如薪资评定、员工绩效评定。等),因此工作流系统必须相对的提供此类功能定义。指定工作暂停:在一些情况下,客户通常会暂停某特定工作一段时间,以便等待其他任务完成后,该工作流程才会继续。流程暂时停用:由于某类原因,流程暂时停用。工作完成时间:在业务进度控制中,通常会指定该工作所需的处理总时间(工时),工作流程每一案件的处理总时数,是统计每一步骤实际处理时间。任务成本统计:工作流系统必须能够产生流程中每一步骤的成本统计报表,以供管理人员了解人力成本结构予以改善。单一步骤超时统计:企业流程工作最主要的迟滞发生在传递时间与超时,亦即工作摆在待处理文件夹内尚未处理的等待时间,因此,必须将此时间评估与统计出来。工作流程超时统计:特定项目的整体超时时间也是企业评估工作效率的重要依据,因此工作流系统系统提供统计此时间的功能。工作日计算(设置工作日、办理时限)权限控制任务的操作权限控制:用户(角色)对某一个任务的操作权限用户指定代理人:表单读取权限控制:用户(角色)对特定表单的操作权限表单元素的读取权限控制:用户(角色)对表单中某些元素的操作权限启动新流程权限:在企业内部,有些流程发起的权限会被限定与管制,并非每一个人都可以自由起始任何流程。因此,工作流系统必须提供控制起始流程的权限。动态定义群组:就是我们熟悉的项目小组,常常是为了完成特定工作而成立的编组,而工作流系统必须恩能够定义并使用动态编组功能。禁止代理的工作:员工常会请别人代理自己的工作,但是,有某些工作必须由员工本人亲自处理,而不能请人代理。必须指明哪些工作可以代理,哪些工作不可以代理。群组:某些工作是由一群特定人员或小组处理。甚至必须跨部门限制。所以系统必须能够定义群组。并将工作指定给群组。循序群组:常需要特定群组中任何一人批准文件或工作(例如:50万元采购要由副总批准,但副总不在请总经理或执行副总代批也可,这些人都是属于公司 高级主管群组中的一员),工作流系统必须提供类似的逻辑。权重群组:在真实情况下,我们通常需要将工作分配给同一群组的成员,分配工作的数量有可能直接平分,或依照每个人的工作负荷量决定,例如某一部门内张三、李四、王五的工作量分别设定为10%、20%、70%,则指定到此部门的工作流程将有10%被机动分配给张三、20%分配给李四、70%分配给王五,只要修改权重定义便能更改每个人的工作负荷量。工作职务群组:也就是岗位。多重角色管理:企业组织中,往往有人身兼数职,扮演不同的角色。工作流系统必须提供此定义功能,并且能决定这些用户不同职务下的从属关系而不混淆。(例如张三身兼产品经理与企划两职,当他收到给企划的工作处理完毕后,传送给主管应是企划部主管而非产品总监)。相对职务关系:此功能允许工作只被传递到与流程发起人(或处理人)相对同一部门/单位的职位。例如,一家公司内有A,B,C三个部门,每一部门都有一位品质管理经理(QM),当一个特定的流程需要部门QM签署时,工作职务群组便无法满足此需求。但通过相对职务关系,部门A经办所发出的单据会自动传递给部门A的QM。流程监控发布流程查看流程状态对已有流程实例进行:挂起与唤醒流程、异常中止操作.工作流系统的一般功能待办任务列表:显示待办任务的工作列表。供承办人员选取。已办任务列表:显示已经处理的任务列表。事物性流程:工作流系统的最多要求就是安全性、稳定性与支持大任务量处理。当流程中任一步骤完成时,便会反馈到服务器,以决定下一步骤,并且必须确保信息能正确传递给后续的处理者。当用户与流程的数量增加后,工作处理的数量也是等比增加。因此对工作流服务器的要求会比较高,因此,安全的、稳定与有效地处理流程,是工作流系统的必要功能要求。易扩展的结构:工作流系统必须具备高度的扩展性以适应企业的发展。稳定的信息传递架构:完善的工作流系统,必须提供可信赖、零分险的技术,将重要的工作流信息在不同系统组件之间传递。如果流程信息传递不稳定,则绝对无法适应流量频繁的企业环境。图形化工作流程图:以直观个性化的图形化方式设计企业流程图,已成为现今工作流系统必须的基本功能,每一张流程图代表了一个业务流程,同时可定义个别步骤的意义、条件判断与工作处理顺序和路由等,便于流程管理员设计各种企业流程。图形化定义资料传递途径:可定义流程管理员:企业流程中往往会有某人负责某项工作的品质与进度,我们称之为“流程管理者”,例如项目经理、业务主管、会记组长、工程部经理。等业务执行与管理人。这些人必须确实掌握与工作相关的流程最新进度,从而调整流程、临时分配工作等。因此,工作流程系统必须提供可指定流程管理者的功能。工作流系统的表单功能表单设计器:表单时工作流的“用户界面”和载体,协助我们收集与传播重要信息。一个优秀的工作流系统应该有一个易于设计和操作的表单设计工具。电子表单通用变量:信息是利用变量传递的方式由一个步骤传给另一个步骤。通用变量时指:可以将数据自动连接到所有步骤的变量,如此,使得数据传送的更加方便正确。表格支持电子扩展表:许多企业工作需要以表格方式呈现资料,工作流系统必须能以表格方式显示以及允许用户方便地在表格内填写资料。同时为了能实现逻辑运算,必须更好地和数据库匹配,以及很好地支持基于字段存储的电子扩展表格。多页表单:一份单据往往伴随着多张表单,以便能更清楚分类与显示资料及其关系。工作流系统必须能支持多页显示功能,而非将所有信息挤在同一画面下。子表单:在某些情况发生时,主要的工作必须搭配附属的工作才能完成,而系统必须在设计电子表单时兼顾子表单的需求。附件功能:提供附件附加功能。数据验证与格式化输入:数据的填写和输入必须有一定的格式。工作流系统必须提供验证功能,确保数据的正确性。表单缓存:也就是表单模板。与数据分开系统扩展功能任务提醒:当有新的任务待处理时,通知处理人,任务提醒的方式有很多种,比较流行的有三种:邮件,系统信息,短信通知任务催办:任务总是有期限的。在到达或接近期限的时候,可以发送催办信息。通知处理人及时处理。超时处理:在某个处理点上停留时间超过标准处理时间,可以启动某处理步骤,或将任务转交给他人。多种流程激活方式:除了人为的手工式激活外,系统还应该提供消息激活机制,比如提供ws 接口等。依重要程度优先级排列工作清单:员工都喜欢把工作依紧急性或重要程度排列处理顺序,而公司也会要求重要事项必须尽快完成。工作流系统必须提供用户接口可依重要度排序的个人工作清单。进度落后工作调整:能够将逾时工作及时进行调整,是工作流系统的基本要求。它确保工作不受影响并及早完成。用户监看流程现况:工作流程参与人员必须能够了解流程目前处理现况,这也是工作流系统必备的基本功能之一。自动暂停或恢复继续流程:工作流解决方案必须提供流程与外部事件或其它流程同步化的功能。以配合外部条件变动而自动暂停或重新激活工作流程,此功能对于工作流与其它程序或事件同步化非常重要。复制流程步骤:流程里的某些工作,往往本质十分相近。(例如某些单据副经理签核完毕送经理签核,两个步骤的表格与逻辑几乎相同,只是签核人不同而已)因此在设计流程时,如果能提供复制功能,将步骤进行复制,再修改差异部分,将使得设计师不需要重复设计相同的电子表格或定义逻辑,大量节省流程设计时间。动态更改工作优先级:在手工操作模式下,员工可以判断工作任务的紧急程度,变更任务的优先级。因此,能变更每一件工作优先程度的功能,成为工作流系统的基本功能之一。群体响应:在企业运作环境中,有时需要对团体成员进行意见调查,如果全部或超过一定数目的人表示意见,则此程序或工作便继续往下进行。支持编号:有时需要从特定数值开始起算项目代号或案件代号。自动定时更新画面:Browser_based的用户界面是被动的,只要用户不去按更新键,基本上屏幕画面不会主动更新,但因为工作流自动化必须是动态的,因此能自动定时更新用户工作清单画面,这是非常重要的功能。异常状况通知:当企业流程工作中发生异常问题时,必须能马上通知流程处理人员,并提供错误发生原因等必要信息。缺乏异常通知的系统,会产生决策误导、混淆认知与提供错误信息等问题,因此工作流程系统必需提供异常通知功能,以协助尽快了解并处理问题。非工作日设定:每一家企业针对国定假日、例假日等或多或少都有自己的计划,在计算流程工作日与逾时等统计上,必须要把假日扣除,因此工作流系统必需提供假日定义的功能,以免在计算上述时间发生错我。代理未来工作:如果某员工即将请假或不在办公室,通常他会交代同仁哪些工作会在他不在的时间内发生,或预期可能会发生。因此工作流必须提供此功能。工作流信息输出:为方便使用者做更详细的分析,或产生各类统计报表,工作流系统应该支持流程中产生的数据输出。自动安装流程给新的部门成员:当新成员加入某部门时,他通常会被立刻告知某些某些部门成员的权利与义务。当然也应该拥有发起流程的权限。如果这项工作由手工完成将非常繁琐,尤其是那些人员变动频繁的大型企业。因此,工作流系统必须提供此功能,而不需另外繁琐的设定。工作处理记录文件:工作流系统必需保存工作记录文件。以作为往后系统异常诊断与除错之用。Jbpm工作流引擎介绍jBPM是一个可扩展、灵活的流程引擎,它可以运行在独立的服务器上或者嵌入任何Java应用中。Jbpm4在流程虚拟机(pvm)技术的基础上,能够同时支持多种流程定义语言,目前已经支持的流程语言有:jpdl,bpel,seam pageFlow.根据pvm的设计理念,未来的jbpm会支持更多的流程定义语言。同时,用户也能够根据需求定制自己个性化的流程模型和建模语言。1: jBPM4的模型仍然基于UML Activity Diagram,以便于需求人员和开发人员都理解业务流程。2: jBPM4提供了可定制的Event - Listener观察者模式来处理事件触发,以辅助活动扩展的处理。3: jBPM4提供了灵活的EL条件表达式机制,来辅助条件解析、简单业务逻辑脚本计算的处理。4: jBPM4提供了可扩展的Task及任务分配机制,来满足复杂人工活动的处理。5: 借助Hibernate ORM的优势,jBPM4能够支持在几乎所有的数据库系统之上运行。6:JBPM4作为一款开源的工作流框架,其更多的是关注:如何辅助开发者更容易的让流程运行完成,而不是关注:记录流程运行的历史和轨迹。这一点可能是东西方文化的差异所在,因为国内的流程应用比较关注运行轨迹。7:JBPM项目从一开始就不支持自由“回退”,“跳转”等操作的,这也是东西方文化差异所在。8:JBPM4支持多个引擎实例。概念介绍流程定义、流程实例、执行流程定义:是对流程过程步骤的描述。比如:报销流程定义是描述员工进行报销的步骤描述,通常这是用一个xml 文件进行描述,也就是一个流程模板的概念。流程实例:流程实例代表着流程定义的一个执行例子。比如:张三开始申请报销单,这意味着一个流程实例正在进行。一个流程实例包括了所有的运行阶段,其中最典型的属性就是跟踪当前节点的指针。一个流程实例可以有许多同时执行的步骤,执行步骤组成了以processInstance为跟节点的结构化树。有时execution和流程实例id是不同的。当一个节点中使用了定时器,executiion id就会使用额外的后缀,这就会导致当我们通过execution id 查询时,这个节点不会出现在结果列表中。刚开始的时候,Executionid与ProcessId 是相同的。如果流程执行中,每时刻只有一个步骤在处理,则ExecutionId和processId是相同的。但是当同一时刻有多个任务要处理,譬如上述的定时器、或者进入fork/join流程,这个时候executionId 和processId就不同。可以理解为execution为执行路径。当同时有几个路径在执行,executionId和processId不同了。Execution是ProcessInstance的基类。ProcessEngine流程引擎在jbpm内通过各种服务相互作用。服务接口可以从ProcessEngine中获得,它是从Configuration构建的。流程引擎是线程安全的,它可以保存在静态变量中,甚至在JNDI中或者其他重要位置。在应用中,所有线程和请求都可以使用同一个流程引擎对象。1:从默认路径取默认的jbpm配置文件,默认配置文件是:jbpm.cfg.xmlProcessEngine processEngine = new Configuration().buildProcessEngine();2:从指点文件的配置文件构建引擎ProcessEngine processEngine = new Configuration().setResource(“文件名”). buildProcessEngine();还有其他setXxxx()方法可以获得配置内容, 例如:从InputStream中、 从xml字符串中、从InputSource中、 从URL中或者从文件(File)中。 3:我们可以从ProcessEngine中获得以下服务RepositoryService repositoryService = processEngine.getRepositoryService();ExecutionService executionService=processEngine.getExecutionService();TaskService taskService = processEngine.getTaskService();HistoryService historyService = processEngine.getHistoryService();ManagementService mangementService = processEngine.getManagementService();流程定义最后指点key 和版本。因为流程定义的id是 key-version流程实例id 流程定义key.业务key,这里的业务key一般是指订单号或报销单号。Jbpm活动节点介绍Jbpm包括好多活动节点,如:start,state,task,end,fork,join,end等。Jbpm现在支持的流程定义语言是:JPDL,现在也支持一部分bpmn,在将来的jbpm5中将完全支持标准的bpmn格式JPDL语言JPDL是jbpm的突出的流程语言,jpdl的目标是尽量精简和尽可能的对开发者友好,提供BPM流程的基本功能。jPDL的schema文件包含了比这个文档中更多的属性和元素。这里列出了比较稳定的部分。Process根元素1:process流程处理的属性属性类型默认值是否必须描述Name 文本 必须 Key 字母、数字 如果省略,key中 可选 非字母和非数字的字符将替换为下划线下划线Version 整形 比已部署key项目 可选的版本高一,如果没有,默认就是1Name描述:在与用户交互时, 作为流程名字显示的一个名字或是标签。Key描述:用来辨别不同的流程定义。 拥有同一个key的流程会有多个版本。 对于所有已发布的流程版本,key-name这种组合都必须是 完全一样的。Version描述:流程的版本号2:process的元素:元素个数描述Description 0个或1个 描述文本activities活动 至少1个 流程中会有很多活动, 至少要有1个是启动的活动。Start活动1:属性属性类型默认值是否必须描述Name 文本 可选 form 文本 可选Name描述:活动的名字,在启动活动没有内部的转移(transition)时, name名称是可选的。 Form描述:表单地址,注意在jbpm4中这在孵化器中。2:元素元素个数描述Description 0个或1个 描述文本On 0个或多个 触发事件Transition 1个 向外的转移State活动一个等待状态节点。流程处理的流向会在外部触发器调用提供的的API之前一直等待。状态节点有两个特点:A:状态节点一直处于等待状态。除非外部事件触发它。B:状态节点可以进行路径选择。但这路径这能是外部事件给提供。C:state活动只有name属性.1:元素元素个数描述Description 0个或1个 描述文本On 0个或多个 触发事件Transition 0个或多个 向外的转移Decision判断活动在多个选择中选择一条路径。也可以当做是一个决定。一个判断活动有多个向外的转移。到那个一个流向到达一个判断活动时,会自动执行并决定交给哪个向外的转移。判断活动有以下特点:A:该节点是自动节点,不会处于等待状态B:可以有多个出口,但最终会执行一个出口可以通过三种方式配置判断条件1:decision决定条件Decision会运行并判断每一个transition里的判断条件。当遇到一个嵌套条件是true或者没有设置判断条件的转移,那么转移就会被运行。exclusive.transition.condition 属性属性类型默认值是否必须描述Expr expression 是 将被执行的指定脚本Lang expression language 可选 指定expr中执行的 脚本语言的种类 Lang的默认值:从脚本引擎配置里得到的默认代表性语言(default-expression-language)具体的配置文件如下: 注意:这里引用的表达式是流程变量的值。2:decision expression唯一性表达式decision表达式返回类型为字符串的 向外转移的名字。 决定属性属性类型默认值是否必须描述Expr expression 是 将被执行的指定脚本Lang expression language 可选 指定expr中执行的 脚本语言Lang的默认值:从脚本引擎配置里得到的默认代表性语言(default-expression-language) Content是流程变量。3:Decision handler决定处理器使用这种方式,你的处理类必须实现DecisionHandler接口,决定处理器负责选择向外流向。Public interface DecisionHandlerString decide(OpenExecution execution); public class ContentEvaluation implements DecisionHandler public String decide(OpenExecution execution)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版工业自动化控制系统设备监造与维护合同
- 2025年度网络安全产品保密协议范本
- 2025建筑工程劳务合同样本
- 2025年私人住宅渗水修复合同协议
- 2025企业合同管理指南合同履行与监督实施细则文档模板
- 语文专业知识培训心得
- 红色船员基础知识培训课件
- 红色家书课件带稿
- 企业资产保理融资合同
- 农业智能追溯管理系统合作协议
- 现代设计理论与方法(上)
- 碳纤维材料工程检验批质量验收记录表优质资料
- GB/T 5907.4-2015消防词汇第4部分:火灾调查
- GB 31701-2015婴幼儿及儿童纺织产品安全技术规范
- 健身理论与指导课件讲义
- 浙江省科学作业本2022版四年级上册作业本参考答案
- 2023年中远海运船员管理有限公司招聘笔试题库及答案解析
- 美国共同基金SmartBeta布局及借鉴
- 企业劳动用工法律风险与防范
- 普通逻辑ppt课件(完整版)
- 2022年08月安徽省芜湖市招考大学生科技特派员岗位冲刺题(带答案)
评论
0/150
提交评论