当前位置:文档之家› 工作流引擎详细设计说明书(GB8567——88)

工作流引擎详细设计说明书(GB8567——88)

工作流引擎详细设计说明书(GB8567——88)
工作流引擎详细设计说明书(GB8567——88)

安华信息

工作流引擎

详细设计说明书

2012-3-21

[该文档主要描述工作流引擎的实现细节。]

目录

1引言 (4)

1.1编写目的 (4)

1.2背景 (4)

1.3定义 (4)

1.4参考资料 (4)

2 程序详细设计 (5)

2.1工作流运行时(W ORKFLOW R UNTIME) (5)

2.1.1 程序概述 (5)

2.1.2 功能设计 (5)

2.1.3 外部接口 (11)

2.1.4 尚未解决的问题 (12)

2.2工作流设计器(W ORKFLOW D ESIGNER) (12)

2.2.1 程序概述 (12)

2.2.2 功能设计 (12)

2.2.3 外部接口 (16)

2.2.4 尚未解决的问题 (17)

1.3公共对象 (17)

1.4数据库结构说明 (21)

2.4.1地区表 (21)

2.4.2业务附件文件 (21)

2.4.3流程业务数据包 (21)

2.4.4流程业务数据包定义 (22)

2.4.5流程实例表 (22)

2.4.6流程日志 (23)

2.4.7已处理消息队列表 (23)

2.4.8待处理消息队列表 (24)

2.4.9流程状态结点 (24)

2.4.10流程状态参与角色关系表 (24)

2.4.11流程模板表 (25)

2.4.12流程模板与业务类别、险类标识关系表 (25)

2.4.13日志项表 (25)

2.4.14状态操作附加规则 (26)

2.4.15流程状态后活动 (26)

2.4.16流程状态前活动 (27)

2.4.17流程状态表单信息 (27)

2.4.18流程状态操作表 (27)

2.4.19流程状态操作消息表 (28)

详细设计说明书

1引言

1.1编写目的

工作流引擎的开发人员。

1.2背景

说明:

a.本系统名称:工作流引擎。

b.本系统概要设计工作由秦超完成,详细设计由王思远完成,刘云峰执行开发任务。

1.3定义

Workflow 工作流

Runtime 运行时

Designer设计器

MessageQueue 消息队列

1.4参考资料

列出有关的参考资料,如:

a.本项目的经核准的计划任务书或合同、上级机关的批文;

b.属于本项目的其他已发表的文件;

c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。

2 程序详细设计

2.1 工作流运行时(WorkflowRuntime)

2.1.1 程序概述

工作流运行时是工作流概念的核心部分,作用于工作流服务生命周期的全部场景,挂接各项工作流的配套服务,如工作流实例状态跟踪、记录轨迹、消息分发等。

2.1.2 功能设计

1.WorkflowRuntime类

●命名空间:AHIT.WorkflowEngine

●关键字:sealed

●类职责:

?确定工作流模板:

根据业务类型(1核保、2核赔)和险类标志(1农险、2非农险)确定使用的工

作流模板

?创建工作流实例:

根据工作流模板表,状态结点表,结点的角色、操作、规则表创建工作流实例表和

流程日志表(如果已加载日志服务,调用日志服务)。

?加载流程业务数据包

加载的业务数据包必须符合流程业务数据包定义表的规则,否则触发异常。

?加载业务附加文件

?获取工作流实例任务列表

包括待处理任务列表、已处理任务列表、逾期任务列表

?获取单体工作流实例

主要返回指定实例的流程业务数据包

?工作流操作

从待处理任务列表选择要处理的流程实例

取流程状态参与角色关系表判断操作的流程实例结点是否有权限

取状态操作附加规则表判断操作的流程实例结点的规则(由规则引擎实现)

在符合规则的前提下取流程状态操作表判断结点的下一步操作

将要更改工作流实例的操作添加至消息队列(交由消息队列服务处理)

●字段及属性:

●方法:

a)获得待处理任务列表

Public List GetInstanceList(string operatorNumber);

(参数是否加业务类型、险类标识)

根据操作者的ID,先取流程状态参与角色关系表取全部可操作的节点信息,

排除特例表的不应自己操作的节点信息,然后内关联流程实例表的当前节点字段,再左关联流程状态节点表的主键,得出所有待操作的实例信息及节点状态并返回。

b)根据操作员编号、实例编号获得待处理任务的详细信息

Class InstanceColletion

{

T_FlowInstance flowInstance;

T_FlowBizDataBag flowBizDataBag;

List operationMessageList;

}

Public InstanceColletion GetInstance(string instanceNumber,string operatorNumber)

根据instanceId获取数据包BizDataBag、单体WorkflowInstance、还有可执行的操作集List这三者组合而成的大对象InstanceColletion。

c)将流程业务数据包传给规则引擎返回可操作的流程列表

Public List GetOperations(BizDataBag bag) 根据RecentNode和取出下一步可进行的操作列表,然后将Bag传入规则引擎,返回操作代码,再关联操作表的主键得到操作的List。

d)创建工作流实例

Public bool CreateInstance(BizDataBag bag,string bizNumber,string templateCode, attachFile file)

根据传入的数据包、业务单据号、模板编号创建实例,组装一个Message对

象,传入调用MessageService. AddT oMessageQueue(T_FlowMessage

QueueWaited msg)。

e)根据传入的instanceNumber 反持久化Workflow实例。

public bool DePersistentInstance(string instanceNumber)

工作流运行时相关类

a) T_FlowBizDataBag类

(1) 验证业务数据包,调用T_FlowBizDataBagDefinition类的相关方法进行验证

Bool ValidateFlowBizDataBag(string flowInstanceNumber);

(2) 加载业务数据包

Bool AddFlowBizDataBag(T_FlowBizDataBag bizDataBag);

b) T_BizAttachFile类

(1) 加载文件

Bool AddBizAttachFile(T_BizAttachFile bizAttachFile);

c) T_StatusOperationMessage类

(1) 添加流程状态操作消息

Bool AddStatusOperationMessage(T_StatusOperationMessage statusOperationMess age);

(2) 根据实例编号导入流程状态操作消息

Bool GetStatusOperationMessage(string flowInstanceNumber);

●限制及约束:WorkflowRuntime是一个密封类,没有派生者,以单件模式创建,

随Windows Service启动,运行时常驻内存。

2.MessageService类

●命名空间:AHIT.WorkflowEngine

●关键字:static

●类职责:

?将消息添加至消息队列(物理表)

?轮询消息队列并处理T ask

?判断某一具体T ask是否合法

●字段及属性:无。

●方法说明:

a)public static Void AddT oMessageQueue(T_FlowMessageQueuqWaited

msg)

将Message加入引擎待处理消息表。

b)public static void ExecuteT ask()

循环访问待处理消息表,取时间戳最早的一条记录处理,共处理三件事情,第

一是增加流程状态操作信息表的记录,二是更新实例表,三是写日志项表,在

一个事务中控制,当处理结束时同时更新两张表,即在待处理消息表中删除记

录和在已处理消息表中增加记录,若事务完成则回到循环体继续访问待处理消

息表。

c)private static bool JudgeT ask(T_FlowMessageQueuqWaited msg)

利用message携带的实例信息判断该实例的当前操作是否满足要求。如防止

重复操作。

●限制及约束:无。

3.LogService类

●命名空间:AHIT.WorkflowEngine

●关键字:static

●类职责:

?填写日志

在创建流程实例时写流程日志

在操作工作流结点时写日志项

?查看日志列表

?查看单体日志

●字段及属性:无

●方法:

Public static void WriteFlowLog(T_FlowLog flowLog)

写流程日志。

Public static void WriteLogItem(T_LogItem logItem)

写日志项

Public static List GetLogs(string instanceCode)

根据实例编码取该实例的操作日志列表。Log为流程日志和日志项的组合类Public static Log GetLog(string logItemNumber)

根据日志编码主键访问单体日志。Log为流程日志和日志项的组合类

●限制及约束:写日志受T ask执行成功与否的制约,被包含在ExecuteT ask()所触

发的事务里。

4.ExceptionHelper类

●命名空间:AHIT.WorkflowEngine

●关键字:static

●类职责:

?抛出自定义异常

●字段及属性:无

●方法:

Public static string GetCustomizeException(string exceptionCode)

●限制及约束:无。

2.1.3 外部接口

1.调用的外部接口(External Interface)

a)获取系统级人员信息

b)获取系统级角色信息

c)将核赔后的业务状态传递至理赔子系统

d)将核保后的业务状态传递至承保子系统

e)获取地域字典描述

f)获取险种字典描述

g)获取规则引擎的判断结果

2.被调用的外部接口(Public Interface)

a)查看当前核保流程状态

b)查看当前核赔流程状态

c)查看流程轨迹

2.1.4 尚未解决的问题

1.与规则引擎的衔接

2.子流程的需求

2.2工作流设计器(WorkflowDesigner)

2.2.1 程序概述

工作流设计器是定义工作流模板、流程节点、操作与规则的工具,是对静态定义的描述。

2.2.2 功能设计

1.T emplateConfiguration类

●命名空间:AHIT.WorkflowDesigner

●关键字:无

●类职责:

?根据业务类型(核保、核赔)和险类标识(是否农险)创建不同的双核工作流模板

?设置工作流模板的流程业务数据包定义

?构建工作流模板的各个结点

?指定各个结点的权限

?设置各个结点的级别、关系

?设置结点之间的流转规则

?指定各个结点的流程状态前活动事件和状态后活动事件

?指定各个结点的流程状态表单信息(结点对应审批窗体显示信息实体类名,运行期从流程业务数据包读取)

●方法:

创建工作流模板方法

Public bool CreateFlowT emplate(T emplate flowT emplate);

传入T emplate公共类,内部调用“其它模板配置相关类“构建工作流模板、节点、操作、规则等。

其它模板配置相关类:

2.T_FlowT emplate类

(1)根据模板编号获取模板实体

Public T_FlowT emplate GetFlowT emplate(string flowT emplateNumber);

(2)根据业务类型、险类取模板实体

Public T_FlowT emplate GetFlowT emplate(string businessType, string classFlag); (3)创建流程模板

Public bool AddFlowT emplate(T_FlowT emplate flowT emplate);

3.T_FlowStatusNode类

(1)根据模板编号取状态结点列表

Public List GetFlowStatusNodeList(string templateNumber);

(2)根据结点编号取状态结点实体

Public T_FlowStatusNode GetFlowStatusNode(string nodeNumber);

(3)添加状态结点实体

Public bool AddFlowStatusNode(T_FlowStatusNode flowStatusNode);

4.T_FlowStatusNodeRole类

(1)根据角色、状态结点编号取流程状态参与角色关系表实体

Public T_FlowStatusNodeRole GetFlowStatusNodeRole(string RoleNumber, string FlowStatusNodeNumber);

(2)也可以根据用户名,暂不考虑

(3)添加流程状态参与角色关系表

Public bool AddFlowStatusNodeRole(T_FlowStatusNodeRole flowStatusNodeRole);

5.T_StatusOperation类

(1)根据状态结点编号取流程状态操作实体

Public T_StatusOperation GetStatusOperation(string flowStatusNodeNumber); (2)添加流程状态操作实体

Public bool AddStatusOperation(T_StatusOperation statusOperation);

6.FlowBizDataBagDefinition类

(1)添加流程业务数据包定义

Public bool AddFlowBizDataBagDefinition(T_FlowBizDataBagDefinition dataBagDefini tion)

(2)根据模板编号取数据包定义实体

Public List GetFlowBizDataBagDefinition(string flowT emp lateNumber);

7.T_StatusBeforeAction

(1)根据模板编号取流程状态前活动实体列表

List GetStatusBeforeAction(string flowT emplateNumber);

(2)添加流程状态前活动实体

Public bool Add StatusBeforeAction(T_ StatusBeforeAction statusBeforeAction);

8.T_StatusAfterAction

(1) 根据模板编号取流程状态后活动实体列表

List GetStatusAfterAction(string flowT emplateNumber); (2) 添加流程状态后活动实体

Public bool AddStatusAfterAction(T_ StatusAfterAction statusAfterAction);

9.T_StatusFormInfo

(1) 根据状态结点编号取流程状态表单信息实体

T_StatusFormInfo GetStatusFormInfo(string flowStatusNodeNumber);

(2) 添加流程状态表单信息实体

Public bool AddStatusFormInfo(T_StatusFormInfo statusFormInfo);

1.Designer类(Version 1.1 的内容)

●命名空间:AHIT.WorkflowDesigner

●关键字:无

●类职责:

?以图形化的方式配置工作流模板

3.RuleDefinition类

●命名空间:AHIT.WorkflowDesigner

●关键字:无

●类职责:

?创建并保存规则

?修改并保存规则

?停用规则

规则定义相关类

a)RuleDefinition类

(1)调用规则引擎设计窗体

Public string CallRuleEngine(Rule rule);

传入Rule类(内含规则表达式及规则涉及到的实体对象),返回规则引擎编号

(2)保存规则引擎编号,调用T_StatusActionRule类

Public bool SaveRule(string ruleNumber);

b)T_StatusActionRule类

(1)根据流程状态操作编号取状态操作附加规则(主要取规则引擎编号)

Public T_StatusActionRule GetStatusActionRule(string statusOperationNumber);

(2)添加状态操作附加规则

Public bool AddStatusActionRule(T_StatusActionRule statusActionRule);

2.2.3 外部接口

1.调用的外部接口(External Interface)

a)获取系统级人员信息

b)获取系统级角色信息

c)获取地域字典描述

d)获取险种字典描述

e)定义规则

2.被调用的外部接口(Public Interface)无。

2.2.4 尚未解决的问题

1.与规则引擎的衔接

2.子流程的需求

1.3公共对象

1、T emplate类

2、Node类

3、Operation类

工作流引擎讲解

什么是工作流引擎,工作流引擎有什么作用,为什么需要工作流管理系统,在这里我们主要研究它的好处,你想要理解它的好处,就得知道不使用它会带来什么样的坏处。 现在我们来讲工作流,什么是工作流?所谓的工作流就是通常所说的业务流程,那么所谓的业务流程换句话来讲就是多个人在一起去完成一件事情。这就可以称之为工作流。流程的本质就是一个参与者参与到一个过程里面来 那么现在我们就想为什么需要工作流管理系统,工作流管理系统能给我们带来什么好处。我们就从这个角度出发来了解JBPM 工作流引擎 下面我们就来看关于为什么需要工作流管理系统,以及它给我们带来的好处。 实际上它带来的好处就是使某些容易变化的东西抽象出去,我们能够通过某种方式改变它,然后你就可以对你的某些核心部分不需要做什么变动 现在就通过一个小例子来讲这个工作流引擎到底是一个什么东西 举个请假流程的例子 一个请假的过程 重点讲解UML 里面的内容,确定UML 里面流程图的讲解顺序 请假流程 现在只看左边的内容,右边的后面再讲,我是方便讲解就将这点东西放到这个空白的地方 一个简单的流程图Main 模拟出请假的过程

对提交请假单进行分析 用一个用户来表示普通用户和审批者,只不过他们的权限不同,他们都能够登录到这个系统 现在我们来看用户和请假单,分析他们之间的关系,用户和请假单之间的联系有请假,用户填了一个请假单就创建了一个请假单对象,他们之该是一对多的关系。因为某一个用户可以请多次假 对吧(其实一般是一个请假单对应一个请假者,这个需求就应该得到客户的确定,客户说了算)那么用户和这个请假单之间还有没有其他联系? 接下来是提交请假单。我首先将请假单提交给张三,那么张三就能够看到这个请假单,如果用户将请假单提交给张三,那么就可以在张三和请假单之间建立一个待审关系 他们之间的关系也是一对多的关系,因为张三可以同时审核几个请假单,就是这意思,一个请假单等待的用户是一个,从现在的需求来看。那么两者之间还有另外一个联系那就是已审,一个用户可以审批过多个请假单,请假单也可以被多个用户审批 比如张三审批以后交给李四审批,李四审批以后交给王五审批,其实这个已审就是记录审批信息的,比如审批时间,审批意见,把它放在审批关联里边 这个就是一个基本的概念,了解这个概念之后我们就考虑它的设计,JBPM 实际上就是协助我们把这个请假单从一个用户手上转递到另一个用户手上。当把这个模型分析清楚了我们就要去实现它。 这里重点分析提交,怎样去提交,在SSH 架构体下,提交请假单这个业务逻辑,你可能就需要这样一个业务逻辑类,里边可能有这么一个方法专门来进行提交操作的,那么这个方法怎样设计,以及这个方法怎样去实现。了解这点你就可以了解JBPM 干什么的,能给我们带来什么好处 (用自己的话说明一下提交请假单的过程 <读一下那段伪代码>) 在这个过程里边写这些代码是比较麻烦的,现在还只是一个固定的流程,假设我现在在这里边变化一下 那么整个方案都要变动。 我现在希望有一个会签的功能 比如我现在要将这个这样的功能,把这个请假单同时提交给多个审批者审批。 那这个时候你就不能够在请假单中间增加一个外键, 把它整成审批者什么的,

系统分析师辅导:工作流管理系统体系结构设计

系统分析师辅导:工作流管理系统体系结构设计 摘要:工作流管理系统将最终成为覆盖于各类台式机与网络操作系统之上的业务操作系统,但工作流技术目前还不够完善。作者在深入研究了工作流管理联盟提供的工作流管理系统模型和各大主流工作流管理系统的基础上设计了一套功能全面的工作流管理系统体系结构。本文主要从该体系结构的三个层次深入介绍了该系统结构。 关键词:工作流管理系统、业务操作系统、软件体系结构、业务建模 1、引言 在一个组织内部存在着两种信息:一种是数据信息,另一种是业务信息。在组织之间也同样存在着两种信息:一种是数据信息,另一种是业务往来信息。如果这两种信息用计算机系统来管理,前一种属于组织内部的信息系统,后一种属于B2B电子商务系统。目前对数据信息的计算机管理系统(即:数据库管理系统)经过多年的发展已经成熟。对业务过程的计算机管理系统由于比较复杂,可变因素较多,难度大,因此发展还不成熟。工作流技术作为现代组织实现过程管理与过程控制的一项关键技术,为组织的业务处理过程提供了一个从模型建立、管理到运行、分析的完整框架。同时,工作流管理系统(Workflow Management System ,WFMS)通过一套集成化、可互操作的软件工具为这个框架提供了全过程的支持。Thomas Koulopoulos曾预言:工作流管理系统将最终成为覆盖于各类台式机与网络操作系统(如:Windows,Unix,Windows NT)之上的业务操作系统BOS(Business Operating System),它将带来操作系统的一次革命。但是目前工作流技术无论从理论上还是从实践都还不够完善,要实现Thomas Koulopoulos的预言可能还需有一段路要走。本文主要介绍了由作者独立设计一套工作流管理系统体系结构,以供工作流技术爱好者参考。 2、工作流管理系统的基本概念 顾名思义,工作流就是工作任务在多个人或单位之间的流转。在计算机网络环境下,这种流转实际上表现为信息或数据在多个人之间的传送。工作流管理联盟( Workflow Management Coalition ,WfMC)对工作流的定义是:“业务过程的部分或全部在计算机应用环境下的自动化”。她所要解决的主要问题是,“使在多个参与者之间按照某种预定义规则传递的文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者是促使此目标的实现”。 工作流管理系统就是通过管理一序列的工作活动以及相关人员、资源、信息技术资料来提供业务处理程序上的自动控制。工作流管理系统通过计算机软件来定义、管理和执行工作流程。在工作流管理系统中计算机运用程序的执行顺序是由工作流逻辑的计算机描述来驱动的。她的主要目标是对业务过程中各步骤(或称活动、环节)发生的先后次序,以及同各个步骤相关的人力、资源、信息资料的调用等进行管理,从而实现业务过程的自动化。当然这种管理可能会在不同的信息及通信环境下实现,所涉及的范围可以小至一个只有几人的工作组,也可以大到政府、企业组织各个机构之间。工作流管理系统将人员、组织结构、设备资源、信息源(如数据库、文件系统、电子邮件、计算机辅助设计工具等)整和成一个整体。这样,工作流管理系统就成为了一个理想的用来收容业务逻辑的业务知识仓库,并给予业务逻辑一个易操作易控制的界面。 工作流管理系统的最大优点就是实现具体应用逻辑和过程逻辑的分离,实现在不修改具体功能的情况下,通过修改业务流程模板来改变系统的功能,完成对组织生产经营过程的部

OA办公系统工作流设计文档

OA办公系统 (工作流部分) 概要设计说明书 第1版 目录 1、概述 1.1 工作流设计目标 通过OA系统提供的JBPM4引擎设计流程,实现流程的跳转,表单的设计以及表单和流程的关联。 1.2 文档的作用 本文档基于广州宏天软件有限公司开发的OA办公系统的工作流模块设计的.仅限于流程的简单开发,开发人员快速入门. 2、流程设计 2.1售前流程 2。2 采购流程 2.3 维保流程 2.4 故障处理流程 1.1 概述 主要是流程图,表单的设计以及流程图和表单关联的设计.以一个售前的流程例子介绍他们公用的部分的开发设计。

2.1。1售前流程图设计 由此页面进入“在线流程设计". 下面的页面就是OA系统提供编辑流程图的页面,可以把所需要的流程通过此工具画出来 在这里简单介绍下几个节点的作用 (1)开始节点开始:这是一个流程的起点,一个流程可以没有结束节点但是一定要有节点。 (2)任务节点:这是一个需要人参与的节点,需要人去提交数据。

(3)决策节点:这是一个特殊的节点,它不需要人参与,但是需要一些人定义的条件来决定其下一步条到哪一个分支。 (4)同步节点:这个节点是当2个分支需要同时执行时所用到的节点。(注:此节点通常和下面的合并节点成对使用,这样可以保证一个分支结束流程不会结束,等另外的分支都结束后流程才会结束) (5)合并节点:此节点是2个分支需要合并的时候的节点.其使用方法参照同步。 (6)此节点不是必须的,但是基本上都是需要这个节点的.他代表了一个流程的结束。 (7)流程节点的连接.当鼠标移到一个节点上时会有4个红点在四周,拖动一个红点到另一个节点的红点就可以连接2个节点。注意一个节点的到另一节点的线上的名字不能重复,因为流程引擎是通过流程线上的名字来跳转的,同样任何2个节点的名字也不能相同,否则会有冲突。流程就不能发布。 发布流程:再设计页面的右边会有一栏流程的详细信息如下图:

Workflow Design 工作流设计

Toward Workflow Block Activity Patterns for Reuse in Workflow Design Lucinéia Heloisa Thom and Cirano Iochpe Federal University of Rio Grande do Sul, Brazil; Vinícius Amaral and Daniel Viero, iProcess, Brazil 1.I NTRODUCTION Research on both business process modeling and implementation issues re-lated to workflow technology have quickly increased over the last years. The most significant initiatives are in the field of standardization [1], [2], [4], specification [5] and workflow definition languages [6], [7], [3]. However, since it is a relatively new and still evolving technology, workflow design pre-sents some challenges, especially with respect to techniques that can en-force correctness as well as efficiency during both the requirements analysis and the modeling phase of the workflow project. Within this context, research on workflow patterns has attracted increasing attention mainly because of the advantages of reusing patterns [8], [9]. The most extensively studied are in the field of control/data flow patterns [10], [11] as well as resource and application–oriented patterns (12). Such pat-terns are being used not only in business/workflow process modeling but also in critical evaluations of workflow languages and workflow tools (13). However, a lot less research can be found relating workflow design to a set of recurrent business process “pieces” or “parts” that must be atomically exe-cuted by the workflow process (e.g., an activity request execution and a noti-fication activity). Although one can precisely characterize the semantics of such business process “pieces” [14], [15], [16] and they have to be recur-rently re-designed in practically every workflow modeling process, there is no known research relating these business process structures to workflow pat-terns. 1.1 Approach Our approach applies the concept of block activity to well-known business processes. An activity set is a self-contained set of activities and transitions [7]. Transitions in the set should refer only to activities in the same set and there should be no transitions into or out of the set. Activity sets can be modeled as block activities. The block execution starts at the first activity in the set and executes the next activities by following the partial order im-posed upon them by the transitions until an exit activity is reached. Work-flow execution then returns to the next activity following the block. In this paper, we apply the block activity concept in order to represent a set of business (sub-)process types (e.g., logistic, financial, information and de-cision) that we call “workflow block activity patterns”. These patterns are re-lated to a set of specific atomic structures that are frequently found in busi-ness processes and have already been identified in the literature [14], [15],

基于工作流引擎的系统框架设计开发

基于工作流引擎的系统框架设计开发 ——工作流引擎子系统 摘要 工作流就是一系列相互衔接、自动进行的业务活动或任务。工作流引擎是工作流管理系统的核心,它的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。 论文主要讲述了工作流引擎的基本功能及设计方法,介绍工作流引擎的基本原理,具体分析了工作流引擎所包含的内容,详细介绍了相关的信息模型和控制模型。系统采用关系结构的理念来设计工作流引擎,给出了用Microsoft Visual Studio 2005和Microsoft SQL Server2000实现系统的方法。论文中利用本工作流引擎构建系统能适应大多数业务流程的扭转,大大缩短常见信息系统的项目开发周期,提高效率。 关键词:工作流引擎;关键业务;关系

The design of information system frame based on workflow engine ---- The subsystem of workflow engine Abstract Workflow is a series of interlocking, automatic business activities or tasks. Workflow engine is the work flow management system in the core, and its main function is to define, implement and manage work flow through the support of computer technology as well as co-ordinate work flow process of working implementation and groups of information between members of interaction. The thesis has mainly described basic functions and design of the workflow engine, introduced the basic theories, and specifically analyzed the content included in the work flow and the details of the relevant information model and control model. The idea of relation structure has been used to design this system and the method to achieve the system function with Microsoft Visual Studio 2005 and Microsoft SQL Server2000 has been given out. Constructing system with the workflow engine can adapt to the majority of the business process reversing that significantly reduce the development cycle of the common information system and improve efficiency. Key words:Workflow engine; Critical business; Relationship

BPM工作流平台设计

工作流系统设计手册 一、引言 工作流管理是目前被业界广泛应用并迅速发展的技术,它的主要功能是使业务处理过程自动化,协调人和各种应用程序的工作。工作流管理系统(Workflow Management System,简称:WfMS)以企业业务过程为核心,结合了计算机支持协同工作以及企业信息系统的相关技术,立足于过程自动化,着眼于整体效率的提高。随着计算机软硬件技术的发展,特别是Internet 和Intranet的迅速普及,工作流管理系统的应用范围已不仅仅限于传统办公环境(如保险、银行、法律、行政管理等)和工业制造中,而且逐渐扩展到企业应用环境中。 1993年成立的工作流管理联盟(Workflow Management Coalition,简称:WfMC)给出了一系列工作流的规范。其主要概念有: 工作流 工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档信息或任务能够在不同的执行者之间传递与执行。 工作流是一种反映业务流程的计算机化的模型,实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型。 工作流管理系统

它是一个软件系统,完成工作流的定义和管理,并按照在计算机中预先定义好的工作流逻辑推进工作流实例的执行。并监控其工作状态。工作流管理系统可称为企业的业务操作系统。(Business Operating System,简称:BOS) 工作流系统参考模型 有关工作流管理联盟更详细的规范请参见https://www.doczj.com/doc/8a4544739.html, 二、JU工作流管理系统 根据国际工作流管理联盟的标准模型,实现了过程定义工具、工作流执行服务(工作流机)、工作流管理工具以及工作流客户应用(人工动作)和供工作流执行服务(工作流机)直接调用的应用(自动化动作)。 人工动作必须与表单绑定。表单提供了人机交互的工作界面,而表单的后面是标准通用的关系型

工作流系统需求分析

工作流系统需求分析 业务过程描述: 工作流是一种反映业务流程的计算机化的、实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型。工作流起源于生产组织和办公自动化领域,其目的是将现有工作分解,按照一定的规则和过程来执行并监控,提高效率,降低成本。 下图是用户使用工作流系统的业务过程:

业务模型描述:

系统组成: 工作流管理系统由客户端、流程定制工具、流程监控与管理和工作流运行服务四个部分组成,下图是系统构件图: 系统功能划分: 工作流管理系统是指运行在一个或多个工作流引擎的软件上用于定义、实现和管理工作流运行的一套软件,从用户建模的过程来看在建立阶段功能主要是工作流过程和相关活动的定义和建模,在运行阶段包括运行流程的监控、管理以及执行过程中的人机交互等。 工作流管理系统由流程定制工具、流程监控与管理、工作流运行服务和客户端交互四个部分组成,整个系统的使用者可以分为四种:系统管理员、流程设计人员、流程管理人员、普通用户。 下图是整个工作流管理系统的顶层用例:

第一部分流程定制工具 本部分主要完成企业信息流中业务过程的图形化建模,定制工具提供丰富的图形化元素、简单易懂的建模方法以及完善的模型管理方式。 流程定制用例图:

打开流程模型 参与者:流程设计者。 前置条件:流程定制工具已经打开。 后置条件:被选择的流程模型中的内容被展开。 步骤序列: 1.打开流程模型列表或新建流程模型文件。 2.选择流程模型文件名称。 3.展开流程模型中的设计内容。 保存流程模型 参与者:流程设计者。 前置条件:某个流程模型已经被打开,并且被修改。 后置条件:修改过的流程模型存到了物理文件中。 步骤序列: 1.保存流程模型到物理文件中。 删除流程模型 参与者:流程设计者。 前置条件:拥有可被删除的流程模型。 后置条件:选中的流程模型被删除。 步骤序列: 1.用户打开流程模型列表。 2.用户选择想要删除的流程模型。 3.系统删除选中的流程模型。 导入导出流程模型 参与者:流程设计者。 前置条件:拥有可被导入的文件或导出的流程模型。 后置条件:流程模型被导出成文件或模型文件被导入到设计系统成为流程模型。 步骤序列: 1.用户打开可被导入文件列表或设计工具中的流程模型列表。 2.用户选择将被导入的流程文件或选择将被导出的流程模型。 3.系统把导入文件生成流程模型或把导出流程模型生成流程文件。 流程发布 参与者:流程设计者。 前置条件:拥有设计完成并可供发布的流程模型。 后置条件:流程模型被发布并可通过客户工具执行。 步骤序列: 1.用户打开流程模型列表。 2.用户选择发布的包或流程。 3.用户选择发布的运行服务器。 4.用户形成发布版本。

工作流技术方案

工作流技术方案

目录 1概述3 1.1工作流现状 (3) 1.2建设原则 (3) 1.3建设目标 (3) 1 (4) 2总体设计方案4 2 (4) 2.1业务架构设计 (4) 2.1.1业务功能设计 4 2.1.2业务模型设计 5 2.2总体架构设计 (6) 2.2.1工作流总体结构图 6 2.3技术架构设计 (7) 2.3.1展现层 7 2.3.2控制层 7 2.3.3业务逻辑层 7 2.3.4数据持久层 8 2.3.5缓存 8 3应用系统设计8 3 (8) 3.1流程定义 (8) 3.2流程管理和监控 (8) 3.3工作流引擎 (8) 3.4工作项列表 (9) 1 (9) 1.1 (9) 1.2 (9) 1.3 (9) 1 (9) 1.1 (9) 1.2 (9) 1.3 (9)

1概述 1.1工作流现状 工作流是实现企业业务过程建模、业务过程仿真、业务过程管理与集成,从而实现最终业务过程自动化化的核心技术。 传统的工作流管理系统缺乏柔性,不能及时响应变化和相互之间缺乏互操作的缺点不能满足这种复杂业务流程管理的需要。针对这种情况,提出工作流管理平台的实现方案,以便更好地对企业业务流程实行管理。 1.2建设原则 工作流管理平台的设计主要遵循实用性、稳定性、高效性、灵活性等原则: (1)稳定性原则:需要采用成熟的技术模型、稳定的软硬件产品、软件开发平台和工具。 (2)安全性原则:提供完整备份机制,提供安全的数据访问机制。 (3)友好性原则:考虑到平台将针对各个层面的用户群体,使用者的计算机水平参差不齐,所以需求平台提供的界面简便友好、操作方便。 (4)扩展性原则:系统设计应具有良好的可扩展性和升级能力,可以根据新的业务拓展,方便地追加新的模块,也可以根据运营的状况,自由地追加硬件,以实现对系统有效的负载均衡。 (5)快速开发原则:提供封装的开发构件,提供基本的系统管理模块,提供简洁的开发模板,能够满足各类业务需求的快速开发。 1.3建设目标 根据上述原则,工作流管理平台建设的主要建设目标为: (1)实现基于Jbpm的流程引擎的二次开发。 (2)实现图形化的流程定义工具和流程管理监控工具。 (3)实现工作项列表(包括待办事宜、已办事宜、历史事宜)的统一管理界面。 (4)实现在流程生命周期中应用系统对流程触发的动作的相关服务接口:工作流定义相关服务、工作流引擎相关服务、工作项列表相关服

工作流分析及设计

工作流系统需求分析及设计 业务过程描述: 工作流是一种反映业务流程的计算机化的、实现经营过程集成与经营过程自动化而建立的可由工作流管理系统执行的业务模型。工作流起源于生产组织和办公自动化领域,其目的是将现有工作分解,按照一定的规则和过程来执行并监控,提高效率,降低成本。 下图是用户使用工作流系统的业务过程:

业务模型描述:

系统组成: 工作流管理系统由客户端、流程定制工具、流程监控与管理和工作流运行服务四个部分组成,下图是系统构件图: 系统功能划分: 工作流管理系统是指运行在一个或多个工作流引擎的软件上用于定义、实现和管理工作流运行的一套软件,从用户建模的过程来看在建立阶段功能主要是工作流过程和相关活动的定义和建模,在运行阶段包括运行流程的监控、管理以及执行过程中的人机交互等。 工作流管理系统由流程定制工具、流程监控与管理、工作流运行服务和客户端交互四个部分组成,整个系统的使用者可以分为四种:系统管理员、流程设计人员、流程管理人员、普通用户。 下图是整个工作流管理系统的顶层用例:

第一部分流程定制工具 本部分主要完成企业信息流中业务过程的图形化建模,定制工具提供丰富的图形化元素、简单易懂的建模方法以及完善的模型管理方式。 流程定制用例图:

打开流程模型 参与者:流程设计者。 前置条件:流程定制工具已经打开。 后置条件:被选择的流程模型中的内容被展开。 步骤序列: 1.打开流程模型列表或新建流程模型文件。 2.选择流程模型文件名称。 3.展开流程模型中的设计内容。 保存流程模型 参与者:流程设计者。 前置条件:某个流程模型已经被打开,并且被修改。 后置条件:修改过的流程模型存到了物理文件中。 步骤序列: 1.保存流程模型到物理文件中。 删除流程模型 参与者:流程设计者。 前置条件:拥有可被删除的流程模型。 后置条件:选中的流程模型被删除。 步骤序列: 1.用户打开流程模型列表。 2.用户选择想要删除的流程模型。 3.系统删除选中的流程模型。 导入导出流程模型 参与者:流程设计者。 前置条件:拥有可被导入的文件或导出的流程模型。 后置条件:流程模型被导出成文件或模型文件被导入到设计系统成为流程模型。 步骤序列: 1.用户打开可被导入文件列表或设计工具中的流程模型列表。 2.用户选择将被导入的流程文件或选择将被导出的流程模型。 3.系统把导入文件生成流程模型或把导出流程模型生成流程文件。 流程发布 参与者:流程设计者。 前置条件:拥有设计完成并可供发布的流程模型。 后置条件:流程模型被发布并可通过客户工具执行。 步骤序列: 1.用户打开流程模型列表。 2.用户选择发布的包或流程。 3.用户选择发布的运行服务器。 4.用户形成发布版本。

基于Web的工作流管理系统的设计与实现

基于Web的工作流管理系统的设计与实现 崔永圣 2003-5-12 华特软件 摘要:Internet/Intranet应用的普及和Web技术的发展,为Web工作流管理系统的实现提供了一个理想的平台,而基于Web的工作流管理服务为异地办公及跨企业的合作提供了良好的基础,采用Web技术已成为新一代工作流管理系统的主要特征。本文研究开发的工作流管理系统原型将Web技术 与XML相结合,给出了基于xml的过程定义语言与工作流执行机的设计与实现方法。 关键词:工作流、工作流管理系统、XML,集成、工作流执行机 Abstract:The rapid growth of Internet/Intranet usage and development of Web technologies,provides a ideal platform to construct a Web_based workflow management.And the Web_based workflow management service provides condition for distributed working and inter-enterprise corporatin ,and it has become the characteristic of the next-generation workflow management.The WFMS prototype which this paper researched on combines the Web technologies and XML ,and provides a method of designing and implementing xml_based process definition language and workflow engine. keywords:Workflow ,workflow management systems ,XML,Integration、Workflow Engine 1、引言 工作流的概念起源于生产制造业与办公自动化领域。工作流是一类能够完全或部分自动执行的经营过程,根据一系列过程规则,文档、信息或任务在不同的执行者之间传递、执行。工作流的目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本,提高企业生产经营管理水平和企业竞争力,实现现代企业经营过程重组(BRP)、经营过程自动化。 根据工作流系统所采用的任务项传递机制的不同,工作流管理系统主要有三种方式:(1)、基于文件的工作流管理系统——以共享文件的方式来完成任务。这种类型的产品是产生最早、发展最成熟、最具多样性的,通常包含有Client/Server模式的图像、文档与数据库管理系统。(2)、基于消息的工作流管理系统——通过用户的电子邮件系统来传递文档信息。这种产品都实现了一种或多种电子邮件系统的集成。(3)基于Web的工作流管理系统——随着计算机网络技术的发展和Internet应用的不断普

OA流程引擎总体设计方案(含初步表说明)

AO流程引擎总体设计方案 一、名词。 流程表:每设置一个新的流程时,都会设置流程相关的字段信息。设置后生成一张流程表。每按此流程进行一个办事流程时即是此表的一条记录(实例)。 流转单:即处理流程中的各个环节,如科员填表申报环节、科长审批环节等。每个流转单所需要的字段是从流程表中选出的字段。每个流转单实例即是根据选择的字段从流程表的实例记录中进行显示或操作。 二、流程设置 2.1 流程表设置 在设置流程时,根据其下流转单的情况设置好所要的所有字段信息。设置好后生成一张数据库表。并把流程名称,流程表名等信息记录到一个流程记录表里(这张表只用来记录流程表及流程对应的流程表名)。默认存在的字段应该有:流程实例名(如:2011年3月消防器材发放管理工作),流程状态,父流程表名,父流程实例id,父流程关联流转单编号,开始时间,结束时间等。 2.2流转单设置。 2.2.1流转单基础信息设置。 设置流转单名称,即流程在此环节时的名称(如科长审批); 设置流转单编号,编号应该是唯一性的; 设置流转单类型:一般流转单或子流程流转单或起始流转单; 2.2.2选择表单字段。 字段从流程表中字段进行选择。选择每个字段后, 要设置此字段的配置属性:是否只读、是否隐藏; 要设置此字段的验证属性:是否必填、验证方法(email验证、长度验证等); 要设置此字段对应的控件:HTML控件:文本框、文本域、密码框、下拉框、多选框、单选框、上传框。及对应的默认数据和备选数据。动态控件:如部门下拉框等。及对应默认数据。 要设置此字段的控件样式:高宽等。 根据字段的名称流程表名等信息对此字段设置一个字符串标识。 在设置字段过程中如果觉得字段不够,应该有操作可以再添加流程表字段。 2.2.3设置流转单显示模板。

项目申报管理系统详细设计

文档编号: PRMS-2 版本号: V1.0 文档名称:详细设计说明书 项目名称:项目申报管理系统 项目负责人:董艳,苏丽,李瑞卿 编写:董艳 2009年11月10日 校对:董艳,苏丽,李瑞卿 2009年11月10日 审核:董艳,苏丽,李瑞卿2009年11月10日 批准:董艳,苏丽,李瑞卿2009年11月10日 开发单位:西北农林科技大学信息工程学院信管062班

详细设计说明书

1.引言 1.1编写目的 根据从该阶段开发正式进入软件的实际开发阶段,本阶段完成系统的大致设计并明确系统的数据结构与软件结构。在软件设计阶段主要是把一个软件需求转化为软件表示的过程,这种表示只是描绘出软件的总的概貌。本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件总体概貌,把它加工成在程序细节上非常接近于源程序的软件表示。 该文档供系统开发人员使用,为进一步设计软件、编写代码打下基础。 1.2项目背景 在计算机日益普及的今天,科技高速发展,国家对科技项目的研究也越来越重视,每年都有很多项目要上报国家或政府,纸制的项目申报报告的审批浪费了大量的人力、物力、财力等资源。 为了适应社会的需求,使市级重点建设项目月报信息统计工作更加科学、规范、高效、简便,我们小组打算开发“项目申报管理系统”。本系统是为方便重点建设项目业主单位报送项目月报,增强申报部门与项目单位间的信息沟通与反馈,了解项目的建设进度及存在问题,协调解决项目建设中存在的前期工作、资金筹措、征地拆迁、建设施工等问题而开发的应用软件管理系统。 根据2009年重点项目申报工作的需要,由西北农林科技大学信息工程学院信管提出开发一套为重点项目申报工作服务的应用系统。 1.3定义 项目申报管理系统是指应用电子计算机和相关网络支持,为申报项目的相关人愿提供数据信息管理系统,从而优化项目申报,减少项目申报周期,提高工作质量。 文档中采用的专门术语的定义及缩略词简要如下: PRMS:Project Report Management System,项目申报管理系统。 1.4参考资料 [1]教学提供详细设计模板 [2]杨选辉《信息系统分析与设计》北京:清华大学出版社,2007。 [3]王珊,萨师宣。《数据库原理与应用》。北京:高等教育出版社,2003。 [4]耿祥义张跃平。《JSP实用教程》北京:清华大学出版社,2007。

原型设计及工作流实现总结

关于双鸭山市煤炭局信息化子系统原型设计及工作流实现总结 在近一个月的工作时间里,主要针对双鸭山市煤炭局信息化子系统进行了基本模块的概要需求分析,其中针对建设项目管理和生产技术管理模块进行了具体的需求分析并实现了此两个模块的原型。对详细需求分析的过程了解到实现建设项目及其它各种审批使用工作流实现较符合。对于工作流的使用进行了两方面的接触,一方面是使用.NET中的Workflow Foundation(简称WF)进行自行开发,另一方面是使用现在市场上已经成行的工作流配置产品。 使用WF实现工作流主要用到了三个类库System.Workflow.Runtime; System.Workflow.Activities; System.Workflow.Activities.Rules。其中System.Workflow.Runtime包含的类和接口用于控制工作流运行时引擎和工作流实例的执行。System.Workflow.Activities定义一些活动,可将这些活动添加到工作流,以便创建并运行工作过程的可执行表示形式。程序员也可以实现自定义的活动。System.Workflow.Activities.Rules中的类定义了组成规则的条件和操作。.Net FrameWork提供工作流持久化服务,对SQL数据库的持久化提供了完全的支持与实现,对于其它类型的数据库在完成持久化服务的时候要由程序员编程继承WorkflowPersistenceService 类来实现。 在使用WF进行编程时可分为业务逻辑实现、具体数据库访问、自定义活动三个部分,程序员在进行实现时无须对三个部分全部熟悉,只要针对具体的部分熟悉其它部分了解即可。比如对工作流的流程熟悉的程序员可以实现业务逻辑部分,这部分主要是根据用户的业务流进行绘制工作流,对工作流各活动进行配置相应的参数的关联即可。目前对于在VS开发过程中如何配置工作流的操作基本可以完成,但如何把VS中工作流制作模块移植到B/S页面中还未操作过。

工作流引擎平台解决方案

工作流引擎平台解决方案 工作流引擎平台在实际系统中的应用一般分为三个阶段,即模型建立阶段、模型实例化阶段和模型执行阶段。模型建立阶段利用工作流建模工具完成各种企业经营过程或者项目管理流程模型的建立,将企业的实际经营过程或项目管理流程转化为计算机可处理的工作流模型。模型的实例化阶段为每个过程设定运行所需的参数,并分配每个活动执行所需的资源(设备、人员等)。模型执行阶段完成经营过程的执行,在这个过程中重要的任务是完成人机交互和应用的执行,并对过程与活动的执行情况进行监控与跟踪 WorkFlow的设计理念是致力于企业的业务流程自动化解决方案,为企业的业务流程自动化以及企业流程再造提供坚实的基础平台,成为业界领先的企业业务流程自动化的基础平台产品以及企业流程再造的核心产品。有力的简化应用开发的步骤,降低应用开发的难度,提高应用开发的效率及灵活性,节约应用开发的成本,从而极大的提高应用开发的生产力。WorkFlow产品构成分为三块:模型定义工具、工作流引擎、客户端应用。模型定义工具提供图形化的过程定义工具,而工作流引擎则实现了工作流的后台驱动。后台工作流引擎以COM组件方式实现,为应用系统的集成提供了方便的编程接口。客户端应用是人机交互的界面、与业务系统的具体应用。 1.模型定义工具 Workflow建模工具以图形界面为建模人员提供了一个友好、方便的建模环境。一个工作流的定义包括模板和实例两个部分,模板用于描述工作流定义,用于工作流应用的设计阶段;实例是将模板定义用于特定工作流程时对模板的拷贝。这样做是为了在模板使用过程中对模板可随时进行修改而不影响已启动的流程。一个工作流程称为一个工作(Job),组成工作的每个执行单元称为活动(Activity),组成活动的更小单位称为任务(Task),活动的入口称为主表单(MasterForm)。每个工作都是由一系列具有逻辑关系的活动组成,这些逻辑关系构成活动的路由信息。因此,一个工作实际上可以看作是一系列具体工作和它们之间的逻辑关系构成的一个有机整体。每个工作都有一个创建者,他是启动此工作的人。每个工作可以有多个拥有者,拥有者具有撤销、挂起、强行终止工作的权力。每个活动都有一个拥有者,他是模板中定义的活动执行人,活动拥有者

工作流图形设计器详细设计说明

工作流平台——工作流设计器 详细设计说明 1 引言 1.1 编写目的 为符合软件需求并对本软件系统各功能模块进行说明,以便编程人员进行程序的编制设计,同时贯彻需求报告中所确定的通用性、完整性、可靠性及可维护性原则,做到结构合理、方便、快捷、规范开发人员的工作,特编制本详细设计说明书。 适用对象: 软件开发者(Supplicrs),以便准确地理解客户需要什么样的产品和各功能模块的具体设计和编制。 1.2 背景 在企业日常经营管理活动中,为适应市场快速变化的需要,企业要经常调整自己的管理流程,这就是我们经常提到的流程重组。通常的流程重组只是将现有的业务处理次序进行改变或改变具体的执行角色或减少不必要的环节,因此,这就要求开发的计算机管理系统业务功能没有增加的情况下能根据需要随时调整处理流程。将工作流技术与业务系统结合可以很好的解决以上的问题,这也是工作流技术的应用越来越多的主要原因。 WfMC(工作流管理联盟)给出的工作流概念为:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。事实上,工作流技术就是业务流程的计算机化或自动化,它将过程逻辑从业务逻辑中分离出来,由工作流引擎专门完成对过程逻辑的计算,从而使开发人员将主要精力集中在业务逻辑的处理上。 工作流程设计器是工作流平台的一部分,它提供用户对自己的流程进行定义的功能。 系统名称:工作流程设计器(HTCS——WorkFlowDesigner)

1.3 参考资料 《workflow.mdl》作者: 《工作流管理联盟工作流标准》4Broad 译(V1.0) 2系统结构 2.1 功能概述 工作流程设计器是工作流平台中不可或缺的一部分。工作流程设计器以图形的方式为建模人员提供了一个方便的工作流程建模环境。 2.2 系统效果图 图2.0 系统效果图 2.3 系统结构图 详见workflow.mdl

工作流数据库设计

工作流设计参考(包括PHP实现) 本文关键词:php工作流,workflow 工作流设计的工作流很少有让人满意的,即便是国内用的比较多的jbpm,用起来也会觉得很便扭。再加上PHP中没有什么好用的工作流,于是干脆自己设计一个,设计的原则如下: 1 根据80/20原则,只使用wfmc模型中最符合自身应用的20%功能 2 充分吸收国内使用jbpm开发BOSS中遇到的问题,工作流引擎只负责参数的收集和流程的流转,具体和业务的控制,交给每个流程定制的控制类去实现。 3 表单采用简单的html+控制标签的方法实现 4 权限和模板引擎,以及其它辅助函数直接使用办公系统自带的框架 5 充分利用PHP语言的特点,流程设计是基于数据库的,程序上使用OO设计,但采用重对象的方法 6 不把可视化设计流程的工作交给最终客户,而且由设计时完成,因此不考虑流程版本更新的问题 一、工作流数据表设计

二、常见流程人工决策 领导传阅 部门领导审批填写表单

结束 放弃 提交 同意 重填(退回) 不同意 完成 外部响应 发送支付信息 接收支付成功响应(外部WS触发该流程) 三、PHP设计 运行的函数由结点在设计时候决定,如果没有设定,就使用默认的函数。利用了PHP语言的以下特性

使用前可以用method_exists来检查。 WorkflowService.php WorkflowService $defination $process $node $thread $input 用户输入的和流程有关的变量 list_defination(){ } init_process(defination_id){ global user; 取得$defination,得到业务的handler,例如WorkflowProposalHandler 建立$process行记录 } start_process(){ 调用WorkflowProposalHandler->start($process)//新建业务对象,并把业务类的参数例如proposal_id放到$process[‘context’]里面 init_thread(1); //默认调用第一个结点 } list_ my_thread (){ global user; } init_thread(node_index){ 取得$node 取得$process 修改$process为运行到当前结点 Switch($node[‘node_type’]) Case 1: 人工决策 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) 发送提醒 Case 2: 自动处理 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) 调用run_thread(thread_id) Case 3: 等待外部响应 建立$thread WorkflowProposalHandler-> init_function ($process,$node,$thread) Case 4: 分支 取得所有分支的子结点

相关主题
文本预览
相关文档 最新文档