工作流参考手册定稿

2021-04-25 12:57:21本页面

工作流参考手册定稿


【正文】

第第1章章总体说明总体说明在使用EOSWorkFlow的过程中,无论是开发者在“开发环境”中定义业务流程,还是“工作流引擎”控制流程流转,或是工作流参与者使用的“客户端”,再或者管理员使用的“管理与监控工具”,在这期间都会贯穿EOSWorkflow的5个主要对象流程定义、活动定义、流程实例、活动实例以及工作项。1.1概念说明概念说明流程定义流程定义:描述一个完整的业务过程,它由若干活动组成。包括了流程的基本信息、流程的开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务(工作项)、可能调用的应用程序以及流程相关数据等信息。提交到流程定义库(WFProcessDefine)后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义描述以及提交时间等描述。

活动定义活动定义:包含在流程定义之中,代表了一个相对独立的、逻辑的工作单元。一个活动代表一个需要由相关资源处理,或者由计算机处理的任务。其中定义了该活动的基本信息、执行该活动的参与者、时间限制、工作项信息、触发事件、启动策略等信息。流程实例流程实例:当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,叫流程实例。同一个流程定义可以有多个流程实例。每一个流程实例会被保存在流程实例库(WFProcessInst)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动者、启动时间、相关数据等信息。活动实例活动实例:流程实例中的每个活动称为活动实例。

每一个活动实例会被保存在活动实例库(WFActivityInst)中,包括活动实例ID(唯一标识)、活动实例的状态、所属的活动定义ID以及流程实例ID、时间限制、是否超时、创建时间等信息。工作项工作项:表示流程实例在流转过程中为完成某个活动实例所要参与者做的工作。一个活动实例可以对应一个或多个工作项。每个工作项会被保存在工作项库(WFWorkItem)中,包括工作项ID(唯一标识)、参与者ID、工作项的状态、所属的活动实例ID,流程实例ID等信息。对象间的主要关系对象间的主要关系流程定义和活动定义是在工作流开发阶段所确定;流程实例、活动实例和工作项则是在工作流运行阶段确定。一个流程定义由多个活动定义组成。

一个流程定义可以创建多个流程实例。一个流程实例包含多个活动实例,每个活动实例可以包含一个或多个工作项在一些特定的情况下(比如,一个活动要循环执行多次),一个活动定义会存在多个活动实例具体如下图所示:1.2相关配置说明相关配置说明以下是一些有用的配置说明,关于EOS工作流的具体配置说明请参考附录配置文件wfconfig.xml。工作流数据连结的配置在哪里工作流数据连结的配置在哪里在config/eosconfig.xml文件中的modulename=workflowworkflowgroupname=database中,指定了工作流的包名称和unitID。通过包名称及unitID就可以从EOSEJBREGISTER表中获得数据库连接的DATASOURCE和IP地址。

带有工作流的EOS应用一定要采用数据源的方式(配置了数据源与连接池,且eosconfig.xml文件中single值为false)连接数据库,这样才能保证工作流和业务系统中事务的完整性。而且工作流调度引擎需要连接池来处理对数据库的并发控制,不能使用JDBC直接连接,否则在实际的使用中会出现并发控制错误。例如:使用EOS5.0,在工作流客户端的“我的任务待执行的工作任务”执行一个待执行的工作项,该工作项的任务是调用一个人工活动去查一张表。如果在studio中启动项目server,功能一切正常,如果启动外部server,这个功能有时候正常,有时候出错,出错页面的截图和详细的log见附件!(注:出错是不确定的。

有时候连续好几次都报错,有时候连续好几次都对!)在编写工作流的业务自动机(业务逻辑)中,相关的工作流操作(如:完成工作流节点,回退,设置工作流的相关数据等操作)和外部的业务操作都要并在一个transaction(事务)中。工作流历史表的相关说明工作流历史表的相关说明EOS数据库中存在以WFH开头的几张表,这是工作流历史表,分别对应了流程实例、活动项实例、工作项实例等等,业务上经常需要通过这些历史数据进行统计分析,至于什么时候进行记录备份,帮助文档中没有提到。其实,在EOS系统配置文件wfconfig.xml中,定义了历史记录备份的策略,如下:TIMEBASED0:30,5:00第第2章章建模过程建模过程EOSStudio提供了可视化的开发环境来定义工作流业务流程模型。

提供串行、分支、并行、聚合、循环、同步、子流程等丰富的流程逻辑结构,以及人工活动、自动活动、路由活动等多种活动类型,并可对这些活动属性进行定义,如参与者类型、触发事件、子流程属性、时间限制、回退动作、多工作项等,定义属性时可选择不同的数据类型、可灵活的扩展活动;可以通过表单数据为活动节点设置动态表单,其表单数据实现了动态表单的编辑,为日常工作中表单的定制提供了良好的设计工具。2.1流程定义流程定义流程定义由流程属性、活动属性、连接线三部分构成。开发者可以根据实际中的业务需要设置流程上的基本属性、触发事件、时间限制以及流程启动者。对每一个具体的活动则可根据实际情况设定其运行的方式、参与者以及调用的应用等信息。

完成流程定义的描述后即可提交、发布。提交后的流程将生成XML格式的流程定义文件,存入流程定义库中2.1.1流程版本流程版本版本号的产生方式如下:1、开发人员指定版本号的格式为:X.Y.ZX.Y.Z(其中X0;Y:099;Z:099),若指定的版本在流程定义库中不存在,则按指定的版本号生成新版本。若指定的版本在流程定义库中存在,则覆盖流程定义库中已有的版本。例如,某流程在流程定义库中存在1.1.1和1.2.3两个版本。若要提交第三个版本,开发人员指定新版本号1.1.2,那么该流程提交流程定义库的版本号即为1.1.2;若指定版本号为1.1.1,则该流程在提交流程定义库时会覆盖原有1.1.1版本的流程2、自动生成新版本获取流程定义库中同一流程的最大版本。

并在此基础上加1作为当前流程的版本号。2.1.2触发事件触发事件2.1.2.1触发事件说明触发事件说明流程触发事件表示按照流程定义中的设置流程实例在运行到某个阶段所需要工作流引擎做某种类型的某个动作。“某个阶段”即为事件的触发时机,“某种类型”即为事件类型,“某个动作”即为事件的动作。触发时机触发时机:表示指定的事件动作在何时触发。EOSWorkFlow提供了创建、动、结束、超时和提醒5个触发时机。创建创建:表示指定的事件在流程实例创建时触发。此时流程实例实际上处于“待启动”的状态,并没有合适的活动实例产生。简言之,流程实例此时只是做好运行的准备,但未真正开始运行。例如:把田径比赛中的110米栏比作流程实例。

那么创建时的流程实例就相当于已站在助跑器前的运动员们等待发令枪响的那一刻。启动启动:表示指定的事件在流程实例启动时触发。此时,流程实例已真正处于运行状态了,流程实例已开始运行,各活动实例将会相继产生。例如:流程实例此时的状态若比作110米栏,就相当于运动员们听到发令枪响冲离起跑线的那一刻。结束结束:表示指定的事件在流程实例结束时触发。即流程实例中所有的活动实例均已完成时触发。超时超时:表示指定的事件在流程实例超时时触发。例如:若流程的超时时间订为1天,那么定义的事件将在流程实例启动时开始计时,并在1天之后触发此事件。提醒提醒:表示指定的事件在流程实例指定的提醒时间触发。例如:若流程的提醒时间订为1小时。

那么定义的事件将在流程实例启动时开始计时,并在超时前1小时触发此事件。事件类型事件类型:标明事件动作的类型。EOSWorkFlow提供基于EOS平台的业务逻辑和运算逻辑两种类型。事件动作事件动作:由开发人员根据具体的业务需求自行定义。可以是一个运算逻辑也可以是一个业务逻辑。2.1.2.2触发事件设置方法触发事件设置方法【场景】在流程“启动的同时,获取指定节点信息并放入该流程实例相关数据的指定节点下。如获取流程信息中创建者节点(WFContext/WFProcessInst/creator),放入相关数据区Node/creator下。【分析】通过【场景】的描述,我们可以采用流程触发事件的方式实现

分析为:1、“在流程启动的同时”,表示触发的时机为启动启动,调用方式为同步同步。这里需要特别注意的是,调用方式同步和异步的区别。同步是指:以“同步”的方式调用触发事件,等待事件运行完成后,该流程才启动。同步是指:以“异步”的方式调用触发事件,该流程在启动完触发事件后就启动,而无需等待触发事件运行完成。2、“获取指定节点信息”为事件动作,事件动作,可以用业务逻辑业务逻辑来实现。触发事件中产生的数据还可以在业务逻辑中输出,这样就可以将这些数据直接设置为相关数据了。3、要将步骤2中获取的信息放入该流程实例相关数据的指定节点下,具体可在事件参数事件参数中设置。输入参数设置为WFContext,在各类触发事件以及回退事件中。

WFContext属于流程实例的相关数据区部分,这块数据区有固定的数据结构,具体请见:3.2.2流程实例数据区。触发事件的数据来源于相关数据区,WFContext是相关数据区中固有的一块区域信息,这些信息都放在Wfcontext节点下。其中,WFContext数据区内容是流程实例自身的信息,相关数据区的内容还有流程中产生的过程数据,即业务数据。输出参数设置为creator,目标路径为Node/userID。在触发事件所执行的业务逻辑中会产生一个crator的节点,把这个节点放入到相关数据区Node/userID下。目标路径:表示将返回结果存入到流程实例相关数据中的什么位置。如该例中是将调用业务逻辑的返回结果输出到该流程相关数据的Node/userID节点下。

注意,目标路径目标路径仅对事件类型为业务逻辑业务逻辑的事件动作有效。图设置触发事件的参数注意:注意:如果调用的事件类型为业务逻辑,业务逻辑,而参数的数据类型为字符串常量字符串常量或字符字符串变量,串变量,那么路径路径中填入的格式必须为:nodeName=valuenodeName=value或nodeName=valuenodeName=value(因为业务逻辑不支持直接传入常量或变量)例如:要传入常量tiger到所调用的业务逻辑中,就必须做如下设置2.1.3超时设置超时设置如果想扩展和替换EOS工作流的超时和预警机制,可以根据工作流配置文件wfconfig.xml中的工作流引擎服务层相关配置10000。

.参数timelimitcalculator流程和活动时间限制的计算方法类名称,该类必须实现接口com.primeton.eos.wf.service.api.TimeLimitCalculator。配置为空或者不做配置,表示使用确省实现类:com.primeton.eos.wf.service.TimeLimitCalculatorDefault。2.1.3.1时间限制说明时间限制说明流程的时间限制表示流程启动后必须在多长时间内完成。在流程时间限制的设置中EOSWorkFlow为开发人员提供了指定具体的限制时间、超时是否进行邮件通知、是否在超时前进行提醒、是否发提醒通知等功能。流程时间限制的计时:从流程启动时开始计时流程时间限制的获取:直接指定、从相关数据获取(格式:3。

设计规范相关推荐  
三九文库 www.999doc.com
备案图标苏ICP备2020069977号