EOS工作流引擎原理.doc
工作流引擎技术

1.1 工作流引擎技术工作流概念的提出是人们注意到了隐藏在业务处理的过程控制的共性,并从业务处理操作中分离出过程逻辑单独加以研究,从而可以实现过程优化配置和重组。
但是,多年来,不同的研究者和产品供应商从不同的角度给出了工作流的定义。
下面分别从工作流定义及工作流相关术语进行解释,并分析工作流应用中所遇到的多种模式,提出了工作流参考引擎、处理模型、体系结构等。
1.1.1工作流定义WfMC给出的工作流的定义[21]:工作流(Workflow)是一类能够完全或者部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务能够在不同的执行者之间传递、执行。
工作流是指业务领域的流程,它描述了业务过程中的各个要素以及要素之间的关系。
业务过程则是对工作流的抽象,通过对业务过程中各要素的描述形成过程定义。
过程定义是过程自动化的基础数据,它通过工作流引擎进行管理。
下面将对工作流引擎技术中涉及到的一些基本概念给出其定义。
这些概念包括:工作流引擎、业务过程、过程定义、活动、自动活动、人工活动、实例、过程实例、活动实例、工作流参与者、工作项、工作项列表等。
1.工作流引擎工作流引擎是一个软件系统,它定义、创建和管理工作流的执行,并且运行在一个或多个工作流引擎之上。
工作流引擎能够解释过程定义、实现与工作流参与者的交互并且调用各种外部IT工具和应用。
2.业务过程一个包含一个或多个相关程序或活动的集合,这些程序或活动共同实现一个业务或决策目标。
通常地,业务过程存在于一个定义了职能角色和业务关系的组织结构中。
3.过程定义过程定义是对业务过程的描述,这种描述形式支持诸如建模、通过工作六管理系统执行等操作的自动化处理。
过程定义有活动和它们之间的关系组成,这些活动和关系形成了一个网状结构,并且还包含过程开始和结束条件和各活动的详细信息,如活动参与者、相关应用和数据等。
4.活动活动是对一份工作的描述,它是过程中的一个逻辑步聚。
一个活动可以是手工活动或计算机支持的自动活动,并要求人和/或机器资源配合过程执行。
工作流引擎讲解

什么是工作流引擎,工作流引擎有什么作用,为什么需要工作流管理系统,在这里我们主要研究它的好处,你想要理解它的好处,就得知道不使用它会带来什么样的坏处。
现在我们来讲工作流,什么是工作流?所谓的工作流就是通常所说的业务流程,那么所谓的业务流程换句话来讲就是多个人在一起去完成一件事情。
这就可以称之为工作流。
流程的本质就是一个参与者参与到一个过程里面来那么现在我们就想为什么需要工作流管理系统,工作流管理系统能给我们带来什么好处。
我们就从这个角度出发来了解JBPM 工作流引擎下面我们就来看关于为什么需要工作流管理系统,以及它给我们带来的好处。
实际上它带来的好处就是使某些容易变化的东西抽象出去,我们能够通过某种方式改变它,然后你就可以对你的某些核心部分不需要做什么变动现在就通过一个小例子来讲这个工作流引擎到底是一个什么东西 举个请假流程的例子 一个请假的过程重点讲解UML 里面的内容,确定UML 里面流程图的讲解顺序 请假流程 现在只看左边的内容,右边的后面再讲,我是方便讲解就将这点东西放到这个空白的地方一个简单的流程图Main 模拟出请假的过程对提交请假单进行分析用一个用户来表示普通用户和审批者,只不过他们的权限不同,他们都能够登录到这个系统现在我们来看用户和请假单,分析他们之间的关系,用户和请假单之间的联系有请假,用户填了一个请假单就创建了一个请假单对象,他们之该是一对多的关系。
因为某一个用户可以请多次假 对吧(其实一般是一个请假单对应一个请假者,这个需求就应该得到客户的确定,客户说了算)那么用户和这个请假单之间还有没有其他联系?接下来是提交请假单。
我首先将请假单提交给张三,那么张三就能够看到这个请假单,如果用户将请假单提交给张三,那么就可以在张三和请假单之间建立一个待审关系 他们之间的关系也是一对多的关系,因为张三可以同时审核几个请假单,就是这意思,一个请假单等待的用户是一个,从现在的需求来看。
那么两者之间还有另外一个联系那就是已审,一个用户可以审批过多个请假单,请假单也可以被多个用户审批 比如张三审批以后交给李四审批,李四审批以后交给王五审批,其实这个已审就是记录审批信息的,比如审批时间,审批意见,把它放在审批关联里边这个就是一个基本的概念,了解这个概念之后我们就考虑它的设计,JBPM 实际上就是协助我们把这个请假单从一个用户手上转递到另一个用户手上。
EOS系统详解

(三)供应商的效益
1、缩短接单处理时间,减少工时及处理错误。 2、减少退货。 3、批发业的库存适量。因零售点下单都考虑到
市场的真实状况,批发商根据顾客下的单来 准备物料、生产计划,库存也才能适量。
4、仓库管理体制的确定。 5、作为批发业的系统化基础。EOS资料是零售
体系间的市场资料,克充分反映市场,作为 批发供应商市场导向的自动化基础。
• (一)EOS定义
• 是指企业间利用通讯网络(VAN或互联网)和终 端设备以在线联结方式进行订货作业和订货信 息交换的系统。
• 没有纸张的订货系统 • 收发订单省力化、收集情报迅速化及正确化
(二)EOS系统分类
EOS按应用范围分为: 1、企业内部EOS(如连锁经营中各个连
锁门店与总店之间建立的EOS系统); 2、零售商与批发商之间的EOS系统; 3、零售商、批发商与生产商之间的EOS
2、陈列的商品较为新鲜,而具有时效性。 3、在不降低顾客满意度的情况下,使用少量且频
繁的订货,避免因库存而积压资金,达到降低库 存,提高周转率的效果。
4、有效缩短订货、到货的前置时间。 5、在不增加仓库大小的情况下,增加店内销售其
他商品种类的机会。
6、奠定了商店自动化的基础,便于展开其他自动 化系统的建设。
(四)对物流中心的效益
1、减少订发货处理时间及人为错误; 2、降低退货率,降低运营成本; 3、缩短订单至交货间的时间; 4、可以接受少量多样的订单,满足客户少量多
样高频度的需求;
5、可以推动供应商的信息化系统的建立。 6、在商业化、电子化迅速发展的今天,EOS系
统越来越现实储它的重要性,同时随着科技的 发展和EOS系统的日益普及,EOS系统的标准 化和网络化已成为当今EOS系统的发展趋势。
EOS技术培训

会立刻将正确的编译结果文件自动同步到服务器上。
开发技巧二
Alt+Enter:快速打开设置对话框或属性框。 Alt+s:图元的“显示名称”与“名称”之间进行切换。 c:可以进行连线,不用再从选用板上选择“连接线”。 F3:快速打开相关链接。
件供I常n库了f,or的运用m形行i更x、式环少S得境的y以,b维a实同s护e现时)成和提本发供确展报保表系的统开正 发常接发口挥、作以用及。监控管理。报表客户 端是内嵌在浏览器中运行的Applet, 提供在浏览器客户端的报表精确打 印功能
1 EOS产品介绍 2 EOS产品特性 3 EOS开发版的安装 4 EOS开发
开发过程
员工查询案例开发
员工查询案例开发
开发提示
页面流:开始——查询页面——查询操作——结束 查询页面:
组合控件QueryForm——设置查询条件 组合控件ViewList——显示查询结果 查询操作: DatabaseExt.queryEntitiesByCriteriaEntityWithPage 程序入口:页面流
界面实现
调试
单元测试 打包
EAR/EPP
部署
系统 管理人员
EOS Server
运行
运行平台: 1、支持主流应用服务器: Webshpere/Weblogic/Jboss 2、支持主流数据库平台: Oracle/SQL Server/DB2/Sybase/Infomix
• 构件包设计 • 数据模型设计 • 业务逻辑开发 • 服务装配 • 页面流开发 • 工作流开发 • 图形化调试
eos目标整体了解eos平台分享开发中的问题eos产品介绍eos产品特性eos开发目录eos开发版的安装为什么会有eos产品1企业的需求不断变迁和提升客户对软件功能和性能的要求也越来越高2使用普通的开发工具开发的在开发周期长成本高对开发人员的要求高3要求开发人员学习的框架strutsspringhibernate和掌握的技术servletwebservice多线程io技术xml服务器数据库比较多eos产品介绍eos产品的优点1入门快对开发人员的要求比较低2项目的开发周期相对较短成本较低对程序员的要求较低3程序员要学习的技术也比较单一eos产品介绍eos组成eos组成三eosgovernoreosservereos运行环境是支撑soa应用和服务的运行环境eosserver保障了soa应用或服务稳定安全可靠高效可扩展地运行
工作流及工作流引擎简介

什么是工作流工作流(Work Flow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。
工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递文档、信息或者任务。
简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
我们可以将整个业务过程看作是一条河,其中流过的河水就是待审核的表单。
工作流属于计算机支持的协同工作(Computer Supported Cooperative Work,CSCW)的一部分。
后者是普遍地研究一个群体如何在计算机的帮助下实现协同工作的。
许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。
而采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改、跟踪、管理、查询、统计、打印等,大大提高了效率,实现了知识管理,提升了公司的核心竞争力。
fnotes1800工作流图工作流的定义工作流概念起源于生产组织和办公自动化领域,是针对日常工作中具有固定程序活动而提出的一个概念,目的是通过将工作分解成定义良好的任务或角色,按照一定的规则和过程来执行这些任务并对其进行监控,达到提高工作效率、更好的控制过程、增强对客户的服务、有效管理业务流程等目的。
尽管工作流从产生到现在已经取得了相当的成就,但对工作流的定义还没有能够统一和明确,不同学者从不同角度对工作流做出了不同的定义。
Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统协作完成。
IBM Almaden Research Center将工作流定义为:工作流是经营过程的一种计算机化的表示模式,定义了完成整个过程需要的所有参数;这些参数包括对过程中每一个步骤的定义、步骤的执行顺序和条件、步骤由谁负责以及每个活动所需要的应用程序等。
EOS中的工作流

EOS中的工作流
杨文明
【期刊名称】《程序员》
【年(卷),期】2008(000)005
【摘要】工作流早在90年代中期就已经出现了,但是直到近些年才真正的在企业中流行起来。
在20世纪90年代初,迈克尔·哈默博士提出了BPR(Business Process Reengineering业务流程重组)概念,他认为以前的那种面向职能部门的管理方式已经不再适合企业的发展,提倡以流程的方式进行管理,
【总页数】1页(P123)
【作者】杨文明
【作者单位】无
【正文语种】中文
【中图分类】TB852.1
【相关文献】
1.工作流设计案例分析-“工学交替”教学系统中工作流设计 [J], 刘翼
2.EOS Workflow:第一家完全构件化的工作流 [J],
3.面向工作流的EOS系统的分析与设计 [J], 李泽宇
4.外周血EOS、总IgE、IL-10及诱导痰EOS在反复喘息婴幼儿喘息评估中的临床意义 [J], 马前进;武怡;陈韬;沙广群;耿玮;薛魁
5.浅谈工作流技术与.NET中的工作流 [J], 汤劼; 施俊
因版权原因,仅展示原文概要,查看原文内容请购买。
EOS培训
操作系统
AIX HP-UNIX Solaris Windows Linux
平台业务协同-工作流 平台业务协同 工作流
• 工作流性质的业务
•业务开通 业务开通 •客服受理 客服受理 •……
电信行业案例
序号 TelTel-1 项目名称 序号
项目名称 甘肃电信维护作业系统项目 安徽电信电子运维二期项目 北京联通crm&prm系统 北京联通crm&prm系统 crm&prm 重庆联通大客户管理系统 江苏电信网上营业厅项目 成都电信线路维护管理系统 广东电信MSS工程数据管理平台 广东电信MSS工程数据管理平台 MSS 上海电信综合验收管理系统 广州联通专线大客户营帐系统 福建联通新一代BSS 福建联通新一代BSS 重庆联通新一代BSS 重庆联通新一代BSS 江苏电信商务领航系统 湖北联通大客户管理系统
OSOA国际构件标准联盟 国际构件标准联盟 18家国际厂商加入 家国际厂商加入OSOA联盟 家国际厂商加入 联盟
– – – – – – – – – – – – – – – – – – BEA Systems Cape Clear IBM Corporation Interface21 IONA Oracle (and Siebel Systems) Primeton Technologies Progress Software Red Hat Rogue Wave Software SAP AG Siemens Software AG Sun Microsystems Sybase TIBCO Software Xcalia Zend
数据引擎
DATA
EOS TAG
数据字典
产品理念
EOS与J2EE的比较 与 的比较
【2018-2019】workflow规则-优秀word范文 (17页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==workflow规则篇一:EOS-WorkFlow参考手册第1章总体说明在使用EOS WorkFlow的过程中,无论是开发者在“开发环境”中定义业务流程,还是“工作流引擎”控制流程流转,或是工作流参与者使用的“客户端”,再或者管理员使用的“管理与监控工具”,在这期间都会贯穿EOS Workflow 的5个主要对象——流程定义、活动定义、流程实例、活动实例以及工作项。
1.1 概念说明流程定义:描述一个完整的业务过程,它由若干活动组成。
包括了流程的基本信息、流程的开始和结束条件、组成的活动、活动间流转的规则、需要用户执行的工作任务(工作项)、可能调用的应用程序以及流程相关数据等信息。
提交到流程定义库(WFProcessDefine)后会包含流程定义ID(流程定义的唯一标识)、流程定义名称、版本号、流程定义描述以及提交时间等描述。
活动定义:包含在流程定义之中,代表了一个相对独立的、逻辑的工作单元。
一个活动代表一个需要由相关资源处理,或者由计算机处理的任务。
其中定义了该活动的基本信息、执行该活动的参与者、时间限制、工作项信息、触发事件、启动策略等信息。
流程实例:当流程定义提交、发布到服务器以后,就可以启动该流程,启动时会创建流程定义的一个实例,叫流程实例。
同一个流程定义可以有多个流程实例。
每一个流程实例会被保存在流程实例库(WFProcessInst)中,包括流程实例ID(唯一标识)、流程实例名称、流程定义ID、流程实例的状态、该实例的启动者、启动时间、相关数据等信息。
活动实例:流程实例中的每个活动称为活动实例。
每一个活动实例会被保存在活动实例库(WFActivityInst)中,包括活动实例ID(唯一标识)、活动实例的状态、所属的活动定义ID以及流程实例ID、时间限制、是否超时、创建时间等信息。
电子自动订货系统(EOS)
配送中心的计算机管理系统还需注意开发加快订货速 度与正确性的电子订货系统(CAO/EOS)及各项数据 转换标准的建立。
案例:花王公司的EOS系统
一、 EOS系统的结构 EOS系统并非是单个的零售点与单个 的批发商组成的系统,而是许多零 售店和许多批发商组成的大系统的 整体动作方式。
EOS系统中的批发、零售商、供货商、商业 中增值网络中,在物流中的角色和作用:
1、 批发、零售商中的作用
采购人员根据MIS系统提供的功能,收集并 汇总各机构的要货的商品名称、要货数量, 根据供货商的可供商品货源、供货价格、交 货期限、供货商的信誉等资料,向指定的供 货商下达采购指令。采购指令按照商业增值 网络中心的标准格式进行填写,经商业增值 网络中心提供的EDI格式转换系统而成为标 准的EDI单证,经由通信界面将订货资料发 送至商业增值网络中心。然后等待供货商发 回的有关信息。
第一节 EOS系统的作用与应用
在当前竞争的时代,如何有效管理企业 的供货、库存等经营管理活动,并且在 要求供货商及时补足售出商品的数量且 不能有缺货的前提下,就必须采用EOS系
统。 EOS因涵括了许多先进的管理手段和方法,
因此物流企业应当引起重视。
一、 EOS系统的作用
EOS系统能及时准确地交换订货信息,它在企业物流管理中 的作用如下:
供用户今后查询或在交易双方发生贸易纠纷时,
可以根据商业增值网络中心所储存的单证内容 作为司法证据。
3、 供货商的作用
根据商业增值网络中心转来的EDI单证, 经商业增值网络中心提供的通信界面和 EDI格式转换系统而成为一张标准的商业 订单,根据订单内容和供货商的MIS系统 提供的相关的信息,供货商可及时安排 出货,并讲出或信息通过EDI传递给相应 的批发、零售商,从而完成一次基本的 订货作业。
EOS Workflow:第一家完全构件化的工作流
EOS Workflow:第一家完全构件化的工作流
佚名
【期刊名称】《金融科技时代》
【年(卷),期】2007(015)004
【摘要】EOS工作流(Workflow)是与EOS平台无缝集成的业界第一家完全构件化的工作流管理系统(Workflow Management System),能够支撑在大并发用户量、大数据量的企业级应用环境下高效、稳定运行。
【总页数】2页(P109-110)
【正文语种】中文
【中图分类】TP3
【相关文献】
1.企业协同知识管理工作流模型研究——基于action workflow方法 [J], 沈惠敏;柯青
2.基于AutoManager WorkFlow的协同设计及工作流程控制 [J], 郑竹林
3.利用Domino Workflow高效开发完整工作流应用 [J], 武学海
4.Lotus Workflow工作流机制初探 [J], 刁洪滨
5.基于AutoManager WorkFlow的工作流程管理系统的开发 [J], 张阁;林学民;税清路;邹慧君;郭为忠
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用文案 EOS 工作流引擎工作原理 1. 工作流基础知识 2. EOS 工作流引擎工作原理 本文是我在工作之余写的一点我对 EOS 工作流的了解,我的理解不一定全是对的,可 能会与引擎的真正的面目有出入。所以只能提供给大家一点参考。 2.1. EOS 工作流引擎核心调度算法 EOS 工作流最重要的组成部分是它的核心调度算法,在我们没有深入研究它的工作原 理之前我们认为它的工作原理是在工作项, 活动和流程实例对象上加了一些标志位来驱动流 程的运转。 认为其引擎完全是个由数据库来驱动流程的引擎 (安徽二期的工作流平台好象就
是以库表来驱动流程的运转) ,其实它是由事件来驱动流程运转的引擎,数据库只是把引擎 运转前后的状态持久化。在我近来在工作之余对其引擎的工作原理进行跟踪才弄明白在 EOS 帮助文档上介绍的“事件驱动”的工作流引擎。 2.1.1. EOS 工作流引擎的事件类型 事件名称 事件代码 START_PROCESS:启动流程 1001
SCHEDULE_NEXT_ACTIVITY :由线程来启动下个活动实例 1002
BACKWORD_ACTIVITY :回退活动 1003
SUSPEND_PROCESS :流程挂起 1004
RESUME_PROCESS :启动挂起流程 1005
CHANGE_PROCESS_STATE :改变流程状态 1006
TERMINATE_PROCESS :终止流程 1007
ABORT_PROCESS : 1008
标准 实用文案 FINISH_PROCESS :结束流程 1009
PRESTART_ACTIVITY :重起流程 2000
START_ACTIVITY :启动活动实例 2001
RESTART_ACTIVITY :重起活动实例 2002
CHANGE_ACTIVITY_STATE :改变活动实例状态 2003
FINISH_ACTIVITY :结束活动实例 2004
TERMINATE_ACTIVITY :终止活动实例 2005 ABORT_ACTIVITY : 2006
SUSPEND_ACTIVITY :挂起活动实例 2007 RESUME_ACTIVITY :启动挂起的活动实例 2008 SUSPEND_WORKITEM :挂起工作项 3001 RESUME_WORKITEM :启动挂起工作项 3002 CHANGE_WORKITEM_STATE :改变工作项状态 3003
FINISH_WORKITEM :结束工作项 3004 TERMINATE_WORKTIEM :终止工作项 3005
ABORT_WORKTIEM : 3006 EXCEPTION_PROC_TIMEOUT :流程超时事件 4002
EXCEPTION_PROC_REMIND :流程临近超时事件 4003
EXCEPTION_ACT_TIMEOUT :活动超时事件 4004
EXCEPTION_ACT_REMIND :活动临近超时事件 4005
APPLICATION_RETURN : 5001
以上的每个事件都是原子的不可分割的。其中一系列事件的集合通过 EOS 引擎事件调 标准 实用文案 度机制实现我们平时在工作中经常遇到的如启动流程,结束工作项等等。 (在事件类型类中 EOS 定义了 29 种事件,但在事件工厂类中 EOS 定义了 26 种类型。) 2.1.2. EOS 工作流事件调度机制 EOS 事件的调度服务是在工作流引擎初始化时通过服务工厂类加载到内存中 (ServiceFactory.initEventService() )。用户可以通过服务工厂类( ServiceFactory )取得
JVM 的唯一事件服务实例进行事务调度。 所有的事件程序入口都是事件类 ( EventService ),
这个类其实是个接口, 其有两个实现类, 一个是单线程的实现类 SingleThreadEventService (在实现代码中其实不是单线程,而是单例的对象),一个是多线程的实现类 MulThreadThreadSvc ,(其实现方式不在这里详细说明,多线程的类后面又跟了一大堆的 线程池实现代码) ,在事件服务类中有一个属性类是 WFEventDisposer ,这个类包含了事
件的注册,事件的发布,事件的注册是一个静态代码块实现的。注册了上节描述的 29 种事 件,其实就是把相应的事件代码注册到相应的处理类,事件处理类共用 5 个 ( ProcessScheduler , ActivityExecuter , ExceptionHandler , WorkItemHandler , ApplicationHandler ),对应事件代码的前 5 个数字;共有事件的发布有两种,一种是正常 发布,一种是无异常的发布(即在具体执行事件时关闭了异常处理) 。所谓的事件发布是给 事件服务类传递一个事件对象( WFEvent 类),这个事件对象包含了事件类型,线程名,事
件 ID ,流程定义 ID ,活动定义 ID ,活动实例 ID ,和工作项 ID 等等。 以上简要的描述了事件模型, 下面来拿我们平时用的最多的一个构件: 结束工作项来详
细跟踪它的事件处理。 结束工作项可能是最具有代表性的一个流程动作, 因为在做这个时间
后遍历了整个流程实例的流程: 1, 用户通过引擎的 API 调用 WorkItemManager 类的 finishWorkItem 方法,该
方法通过服务工厂取得持久层的数据访问服务,并根据 workitemID 取得
标准 实用文案 WFWorkItem 对象。做相关的判断后通过事件工厂类的 createFinishWorkItemEvent 方法创建个事件代码为 3004 的事件对象 ( WFEvent )。然后通过服务工厂类取得事件服务类把该事件对象发布给事件 处理服务。从此刻就开始了 EOS 事件调度服务的运转。 2, 事件服务类(拿单线程事件服务类做例子)拿到这个事件类后把该事件通过
WFEventDisposer 发布该事件。具体的发布过程很简单,即判断该事件类型 是否已注册,如果已经注册则取到改事件代码的注册类。该代码是 3004 ,则 应取 WorkItemHandler。然后调用 WorkItemHandler 的 invoke ()方法, 3, WorkItemHandler类 invoke ()中写到: if(event.getType() == 30004)
{finishWorkItem(event);} 则找到该方法, 该方法开始做了相关的判断后做相关 标志位的修改:置当前工作项的状态为 12 ,然后判断当前活动是否结束。 (大 概的算法是取得已经结束的工作项和该活动总的工作项,取得活动定义的多工 作项是否启动。如果是多工作项则判断完成个数策略:是按百分比还是按操作 员个数等等,做一系列的判断后得到应该结束的工作项,如果小于等于已经结 束的工作项则该活动结束, 没有启动多工作项则相应的处理要简单点) ,如果该 活动已完成,则调用事件服务的结束活动实例事件createFinishActivityEvent ;
如 果 没 有 结 束 则 判 断 工 作 项 启 动 的 策 略 是 “ at_the_same_time ” 还 是
“ one_by_one ”,如果是“ one_by_one ”则找本活动实例下的工作项状态为
1 的工作并启动它。 4, 结束活动实例是调用事件工厂的方法createFinishActivityEvent ,新建一个事
件代码为 2004 的事件。用 createFinishWorkItemEvent 的方法发布该事件。
到 ActivityExecuter 类中找到 finishActivity ,该方法修改活动实例状态为 7 ,
标准 实用文案 填写活动结束时间。如果该活动注册了时限则取消活动时限的注册。如果该活 动实例定义了结束活动的触发动作则触发该动作(通过 WFAppCaller 调用)。
最 后 由 事 件 工 厂 产 生 一 个 事 件 代 码 为 1002 的 createScheduleNextActivityEvent 事件。由事件服务发布事件。 5, 启动下个活动实例的事件动作是事件工厂调用 scheduleNextActivity 方法,该
方法通过流程定义找到下个环节的转移条件,并根据转移条件和分支模式(全 部分支: AND ;多路分支: XOR ;单一分支: OR )生成一个环节定义列表。 引擎首先把未启动的活动实例和挂起的活动实例找到,如果没有则生成一个活 动实例。然后生成一个转移对象(WFTransition ),最后把待启动的活动实例
对象放到一个列表中。根据该列表中的活动定义的启动策略(直接启动,待激 活,由规则逻辑指定)来启动活动实例;如果是直接启动活动实例则由事件工 厂新建一个事件代码为 2001 的事件 startActivity ,如果待激活策略则由事件 工厂产生事件代码为 2000 的事件 preStartActivity 。同样如果在流程定义中定 义了创建活动实例触发的事件则触发该事件, scheduleNextActivity 方法做了 很多业务处理的事情,所以比较复杂。 6, 事件服务调用 startActivity 方法,修改当前活动状态位为 2,并向时限管理服 务注册时限,然后通过活动执行类的帮助类分派工作项,分派工作项的过程是 判断是否是多工作项,如果不是则按参与人员分派,如果是则判断多工作项的 启动策略,启动工作项业务处理比较复杂,并没有相应的事件代码对应,在这 里不详细介绍。 以上的六个步骤完成了我们平时最常用的完成工作项的方法。综上所述应该能够对 EOS 工作流的事件调度机制有个清楚的认识,比如结束工作项的事件调度有
标准