当前位置:文档之家› 工作流数据库设计

工作流数据库设计

工作流数据库设计
工作流数据库设计

工作流设计参考(包括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: 分支

取得所有分支的子结点

init_thread(子结点)

Case 5: 汇总:

取得所有前结点,如果所有前结点的Thread都结束了,调出下一结点

调用init_thread(子结点)

Case 6: 结束:直接结束进程process

end_process()

}

run_thread(thread_id){

取得$node

取得$process

取得$thread

Switch($node[‘node_type’])

Case 1: 人工决策

修改$thread为已接收

WorkflowProposalHandler-> run_function ($process,$node,$thread) 显示表单Case 2: 自动处理

修改$thread为已接收

$next_node_id=WorkflowProposalHandler-> run_function ($process,$node,$thread) 调用transit_thread(thread_id, $next_node_id)

Case 3: 等待外部响应

修改$thread为已接收

$next_node_id=WorkflowProposalHandler-> run_function ($process,$node,$thread) transit_thread(thread_id, $next_node_id)

Case 4: 分支

Case 5: 汇总:

Case 6: 结束:

}

save_thread(thread_id){

//保存结点数据

取得$node

取得$process

取得$thread

Switch($node[‘node_type’])

Case 1: 人工决策

WorkflowProposalHandler-> save_function ($process,$node,$thread) 保存表单WorkflowProposalHandler-> run_function ($process,$node,$thread) 显示表单

Case 2: 自动处理

Case 3: 等待外部响应

Case 4: 分支

Case 5: 汇总:

Case 6: 结束:

}

transit_thread(thread_id, $next_node_id){

取得$node

取得$process

取得$thread

Switch($node[‘node_type’])

Case 1: 人工决策

WorkflowProposalHandler->transit_function($process,$node,$thread,$next_node_id) 修改$thread为已完成

If($next_node_id < $ cur_node_id) { //回退

删除所有大于$next_node_id的Thread

}

init_thread($next_node_id);

Case 2: 自动处理

修改$thread为已完成

If($next_node_id < $ cur_node_id) {

//回退

删除所有大于$next_node_id的Thread

}

init _thread($next_node_id);

Case 3: 等待外部响应

修改$thread为已完成

If($next_node_id < $ cur_node_id) { //回退

删除所有大于$next_node_id的Thread

}

init _thread($next_node_id);

Case 4: 分支

Case 5: 汇总:

Case 6: 结束:

}

end_process();

list_my_process

view_process

workflow_proposal_handler.php

WorkflowProposalHandler

start()

prepare_input() 准备用户输入变量,从$_POST收集

init_function () 线程建立后调用的默认函数,当流程的执行者由程序生成时,在此函数内更改$thread的executor,例如直接赋值user[2]

run_function () 线程运行化时候调用的默认函数

save_function () 保存运行信息

transit_function () 执行流转

sendmail 其它结点调用函数

workflow.php

switch(op)

case list_defination

参数:无

WorkflowService->list_defination();

case start_process : 启动

参数:defination_id

WorkflowService->init_process(defination_id);

WorkflowService->start_process();

case list_ my_thread : 待处理的列表

WorkflowService->list_ my_thread();

case run_thread :

参数:thread_id

WorkflowService->run_thread(thread_id);

case save_thread :

参数:thread_id

把input收集起来(所有的变量以f_ 开头),赋给WorkflowService的Input,另外还要获得thread_id

WorkflowService->save_thread(thread_id);

case transit_thread :

参数:thread_id

把input收集起来,赋给WorkflowService的Input,另外还要获得thread_id

$next_node_id = 得到用户选择的下一结点id

WorkflowService-> transit _thread(thread_id,$next_node_id);

case list_my_process: 所有我发起的流程

case list_all_process: 所有我发起的流程

case view_process :

在其它程序中初始化流程

1先自行建立好业务表单

2WorkflowService->init_process(defination_id);

3把建好的业务表单的ID放在process的context里面

4WorkflowService->init_thread(1);

WorkflowService->transit_thread(1,2) ;通过手动调用把前面的流程过掉

外部服务继续流转流程(只用于自动流程)

1 把input收集起来,赋给WorkflowService的Input,另外还要获得thread_id

2 WorkflowService->run_thread(thread_id);

Activiti工作流入门详解完整教学教程

Activiti入门教程详解完整教程 1.A ctiviti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(Business Process Model and Notation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

2.准备环境 2.1Activiti软件环境 1)JDK1.6或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为Eclipse3.7或者以上版本,myeclipse为8.6版本2.2安装流程设计器(eclipse插件) 1)打开Help →Install New Software →Add 输入Name: Activiti Designer Location: https://www.doczj.com/doc/4c8811807.html,/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项

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

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

BPM工作流平台设计

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

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

Activiti 库表结构 张表

Activiti-5.21数据字典 简介 #前缀描述 1ACT_RE_RE表示Repository资源库,保存流程定义,模型等设计阶段的数据。 2ACT_RU_RU表示Runtime运行时,保存流程实例,任务,变量等运行阶段的数据。 3ACT_HI_HI表示History历史,保存历史实例,历史任务等流程历史数据。 4ACT_ID_ID表示Identity身份,保存用户,群组,关系等组织机构相关数据。(Activiti中的组织机构过于简单,仅用于演示。) 5ACT_GE_GE表示General通用,属于一些通用配置。 6其他ACT_EVT_LOG和ACT_PROCDEF_INFO没有按照规则来,两者分别属于HI和RE。 ACT_RE_ ACT_RU_

ACT_HI_

数据库 #表名描述 1ACT_EVT_LOG事件日志 2ACT_GE_BYTEARRY xml, png等二进制内容3ACT_GE_PROPERTY引擎版本信息 4ACT_HI_ACTINST历史节点

5ACT_HI_ATTACHMENT附件 6ACT_HI_COMMENT评论 7ACT_HI_DETAIL变更历史 8ACT_HI_IDENTITYLINK历史参与者 9ACT_HI_PROCINST历史流程实例 10ACT_HI_TASKINST历史任务 11ACT_HI_VARINST历史变量 12ACT_ID_GROUP群组 13ACT_ID_INFO用户的人员详细信息 14ACT_ID_MEMBERSHIP用户与群组关系 15ACT_ID_USER用户的基本信息 16ACT_PROCDEF_INFO流程定义的动态变更信息17ACT_RE_DEPLOYMENT部署包 18ACT_RE_MODEL模型(用于Web Designer)19ACT_RE_PROCDEF流程定义 20ACT_RE_EVENT_SUBSCR事件监听 21ACT_RU_EXECUTION流程实例与分支 22ACT_RU_IDENTITYLINK参与者 23ACT_RU_JOB异步作业 24ACT_RU_TASK任务 25ACT_RU_VARIABLE变量 ACT_EVT_LOG 事件日志,默认不开启。 #字段名字段类型长度空默认描述主 键 外 键 1LOG_NR_BIGINT19主键自 增2TYPE_VARCHAR64类型 3PROC_DEF_ID_VARCHAR64流程定义 4PROC_INST_ID_VARCHAR64流程实例 5EXECUTION_ID_VARCHAR64执行 6TASK_ID_VARCHAR64任务

Activiti6.0工作流使用说明文档V1.0

Activiti工作流使用说明文档 V1.0 2019年8月9日

目录 一、模型设计器 (4) 1.1任务 (5) 1.1.1 用户任务 (5) 1.1.2 服务任务 (5) 1.1.3 脚本任务 (6) 1.1.4 业务规则任务 (7) 1.1.5 接收任务 (7) 1.1.6 手动任务 (7) 1.1.7 邮件任务 (8) 1.1.8 Camel任务 (8) 1.1.9 Mule任务 (8) 1.1.10 决策任务 (9) 1.2构造 (10) 1.2.1 子流程 (10) 1.2.2 事件子流程 (11) 1.3泳道列表 (11) 1.4分支 (12) 1.4.1 排他分支 (12) 1.4.2 并行分支 (12) 1.4.3 包容分支 (13) 1.4.4 事件分支 (13) 1.5事件 (14) 1.5.1 定时器事件 (14) 1.5.2 信号事件 (14) 1.5.3 消息事件 (16) 1.5.4 错误事件 (16) 1.5.5 边界事件 (17) 1.5.6 中间事件 (18)

1.5.7 开始事件 (18) 1.5.8 结束事件 (18) 1.6属性元素 (18) 1.6.1 异步 (18) 1.6.2 排他 (19) 1.6.3 补偿 (19) 1.6.4 中断任务 (20) 1.6.5 分配 (21) 1.6.6 到期时间 (22) 1.6.7 表单 (22) 1.6.8 表达式 (24) 1.6.9 多实例 (25) 1.7监听器配置 (28) 1.7.1 执行监听器 (29) 1.7.2 任务监听器 (30) 1.7.3 事件监听器 (32) 1.7.4 全局事件监听器 (33) 二、workflow-service (34) 2.1数据更新逻辑 (34) 2.2方法表达式配置 (35) 2.3自定义外置表单 (36) 2.4事件监听器配置 (37) 2.5方法调用说明 (37) 三、常见问题 (37)

工作流分析及设计

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

业务模型描述:

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

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

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

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],

activiti流程开发基本步骤详解

activiti流程开发指南 ?一、BPMN ?二、activiti主要接口 ?三、如何实现一个业务流程 ?四、如何管理所有流程与实例 ?五、开发流程 ?六、api 一、BPMN 1. 什么是BPMN 首先BPMN规范是由标准组织BPMI发布的.BPMN 1.0规范发布于2004年5月。此规范展示了BPMI组织两年多的努力成果。BPMN的主要目标就是要提供被所有业务用户理解的一套标记语言,包括业务分析者、软件开发者以及业务管理者与监察者。BPMN还将支持生成可执行的 BPEL4WS语言。所以,BPMN在业务流程设计与流程实现之间搭建了一条标准化的桥梁。 BPMN定义了业务流程图,其基于流程图技术,同时为创建业务流程操作的图形化模型进行了裁减。业务流程的模型就是图形化对象的网图,包括活动(也可以说工作)和定义操作顺序的流控制。 2. BPMN基础 业务流程图由一系列的图形化元素组成。这些元素简化了模型的开发,且业务分析者看上去非常熟悉。这些元素每个都有各自的特性,且与大多数的建模器类似。比如,活动是矩形,条件是菱形。应该强调的是:开发BPMN的动力就是为了在创建业务流程模型时提供一个简单的机制,同时又能够处理来自业务流程的复杂性。要处理这两个矛盾的需求的方法就是将标记的图形化方面组织分类为特定的类别。这里提供标记类别中的一小部分,以便业务流程图的读者可以简单地识别出元素的基本类型从而理解图形。以下是四种基本的类型: 1)流对象 2)连接对象 3)泳道

4)人工信息 BPMN2.0概要:https://www.doczj.com/doc/4c8811807.html,/workclass/201206272.asp 二、activiti主要接口 ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); RepositoryService repositoryService = processEngine.getRepositoryService(); TaskService taskService = processEngine.getTaskService(); ManagementService managementService = processEngine.getManagementService(); IdentityService identityService = processEngine.getIdentityService(); HistoryService historyService = processEngine.getHistoryService(); FormService formService = processEngine.getFormService(); ProcessEngines.getDefaultProcessEngine()会在第一次调用时初始化并创建一个流程引擎,以后再调用就会返回相同的流程引擎。使用对应的方法可以创建和关闭所有流程引擎:ProcessEngines.init()和ProcessEngines.destroy()。 ProcessEngines会扫描所有activiti.cfg.xml和activiti-context.xml文件。对于activiti.cfg.xml文件,流程引擎会使用Activiti的经典方式构建: ProcessEngineConfiguration.createProcessEngineConfigurationFromInputStream (inputStream).buildProcessEngine(). 对于activiti-context.xml文件,流程引擎会使用Spring方法构建:先创建一个Spring的环境,然后通过环境获得流程引擎。

Activiti工作流数据库表结构

Activiti数据表结构 目录 1ACTIVITI数据库表结构 ----------------------------------------------------------------------------------------------- 2 1.1数据库表名说明 ------------------------------------------------------------------------------------------------ 2 1.2数据库表结构---------------------------------------------------------------------------------------------------- 3 1.2.1Activiti数据表清单: ---------------------------------------------------------------------------------------- 3 1.2.2表名:ACT_GE_BYTEARRAY (通用的流程定义和流程资源)-------------------------------- 3 1.2.3表名:ACT_GE_PROPERTY (系统相关属性) ----------------------------------------------------- 4 1.2.4表名:ACT_HI_ACTINST (历史节点表) ------------------------------------------------------------ 5 1.2.5表名:ACT_HI_ATTACHMENT (附件信息)-------------------------------------------------------- 6 1.2.6表名:ACT_HI_COMMENT (历史审批意见表)-------------------------------------------------- 6 1.2.7表名:ACT_HI_DETAIL (历史详细信息)----------------------------------------------------------- 7 1.2.8表名:ACT_HI_IDENTITYLINK (历史流程人员表) ---------------------------------------------- 8 1.2.9表名:ACT_HI_PROCINST(历史流程实例信息)核心表---------------------------------------- 8 1.2.10表名:ACT_HI_TASKINST(历史任务流程实例信息)核心表------------------------------ 9 1.2.11表名:ACT_HI_VARINST(历史变量信息) ------------------------------------------------------ 9 1.2.12表名:ACT_ID_GROUP(用户组表) ------------------------------------------------------------ 10 1.2.13表名:ACT_ID_INFO (用户扩展信息表) ---------------------------------------------------- 10 1.2.14表名:ACT_ID_MEMBERSHIP(用户用户组关联表) -------------------------------------- 11 1.2.15表名:ACT_ID_USER(用户信息表) ------------------------------------------------------------ 11 1.2.16表名:ACT_RE_DEPLOYMENT(部署信息表)------------------------------------------------ 12 1.2.17表名:ACT_RE_MODEL (流程设计模型部署表) ----------------------------------------------- 12 1.2.18表名:ACT_RE_PROCDEF (流程定义表) ---------------------------------------------------- 13 1.2.19表名:ACT_RU_EVENT_SUBSCR (运行时事件) ------------------------------------------------- 14 1.2.20表名:ACT_RU_EXECUTION (运行时流程执行实例) ----------------------------------- 15 1.2.21表名:ACT_RU_IDENTITYLINK(身份联系) --------------------------------------------------- 15 1.2.22表名:ACT_RU_JOB(运行中的任务)---------------------------------------------------------- 16 1.2.23表名:ACT_RU_TASK(运行时任务数据表) ------------------------------------------------------ 16 1.2.24表名:ACT_RU_VARIABLE(运行时流程变量数据表) ----------------------------------------- 17 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------------- 18

activity工作流表结构分析

activity工作流表结构分析 activity工作流表结构分析 版权声明:本文为博主原创文章,未经博主允许不得转载。 1、结构设计 1.1、逻辑结构设计 Activiti使用到的表都是ACT_开头的。 ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。 ACT_RU_*: ‘RU’表示runtime,运行时表-RuntimeService。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。 ACT_ID_*: ’ID’表示identity (组织机构),IdentityService接口所操作的表。用户记录,流程中使用到的用户和组。这些表包含标识的信息,如用户,用户组,等等。 ACT_HI_*: ’HI’表示history,历史数据表,HistoryService。就是这些表包含着流程执行的历史相关数据,如结束的流程实例,变量,任务,等等ACT_GE_*: 全局通用数据及设置(general),各种情况都使用的数据。 1.2、所有表的含义

序号表名说明 1 act_ge_bytearray二进制数据表 2 act_g e_property 属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录, 3 act_hi_actinst历史节点表 4 act_hi_attachment历史附件表 5 act_hi_comment历史意见表 6 act_hi_identitylink历史流程人员表 7 act_hi_detail历史详情表,提供历史变量的查询 8 act_hi_procinst历史流程实例表 9 act_hi_taskinst历史任务实例表 10act_hi_varinst历史变量表 11act_id_group用户组信息表 12act_id_info用户扩展信息表 13act_id_membership用户与用户组对应信息表 14act_id_user用户信息表 15. act_re_deployment部署信息表 16. act_re_model流程设计模型部署表 17act_re_procdef流程定义数据表 18act_ru_event_subscr throwEvent、catchEvent时间监听信息表 19act_ru_execution运行时流程执行实例表 20act_ru_identitylink运行时流程人员表,主要存储任务节点与参与者的相关信息 21act_ru_job运行时定时任务数据表 22act_ru_task运行时任务节点表 23act_ru_variable运行时流程变量数据表 2、表以及索引信息 2.1 二进制数据表(act_ge_bytearray) 2.1.1 简要描述 保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据,特别注意类路径部署时候,不要把svn等隐藏文件或者其他与流程无关的文件也一起部署到该表中,会造成一些错误(可能导致流程定义无法删除)。 2.1.2 表结构说明

工作流Activiti的学习总结(十二) activiti官方十分钟快速学习

根据activiti官方提供的编写 1.财务部门填写月财务报告 2.股东审核月财务审计报告 流程图: 流程配置: <;?xml version=";1.0"; encoding=";UTF-8";?>; <;definitions xmlns=";https://www.doczj.com/doc/4c8811807.html,/spec/BPMN/20100524/MODEL"; xmlns:xsi=";https://www.doczj.com/doc/4c8811807.html,/2001/XMLSchema-instance"; xmlns:activiti=";https://www.doczj.com/doc/4c8811807.html,/bpmn"; xmlns:bpmndi=";https://www.doczj.com/doc/4c8811807.html,/spec/BPMN/20100524/DI"; xmlns:omgdc=";https://www.doczj.com/doc/4c8811807.html,/spec/DD/20100524/DC"; xmlns:omgdi=";https://www.doczj.com/doc/4c8811807.html,/spec/DD/20100524/DI"; typeLanguage=";https://www.doczj.com/doc/4c8811807.html,/2001/XMLSchema"; expressionLanguage=";https://www.doczj.com/doc/4c8811807.html,/1999/XPath"; targetNamespace=";https://www.doczj.com/doc/4c8811807.html,/bpmn20";>; <;process id=";financialReport"; name=";Monthly financial report reminder process";>; <;startEvent id=";startevent1"; name=";月财务报告审核开始";>;<;/startEvent>; <;!-- 采用用户组为accountancy编写财务报告 -->; <;userTask id=";usertask1"; name=";财务编写月财务报告"; activiti:candidateGroups=";accountancy";>;<;/userTask>; <;userTask id=";usertask2"; name=";股东审核月财务审计报告"; activiti:candidateGroups=";management";>;<;/userTask>; <;endEvent id=";endevent1"; name=";月财务报告审核结束";>;<;/endEvent>; <;sequenceFlow id=";flow1"; name=";"; sourceRef=";startevent1"; targetRef=";usertask1";>;<;/sequenceFlow>; <;sequenceFlow id=";flow2"; name=";"; sourceRef=";usertask1"; targetRef=";usertask2";>;<;/sequenceFlow>; <;sequenceFlow id=";flow3"; name=";"; sourceRef=";usertask2"; targetRef=";endevent1";>;<;/sequenceFlow>; <;/process>; <;bpmndi:BPMNDiagram id=";BPMNDiagram_financialReport";>; <;bpmndi:BPMNPlane bpmnElement=";financialReport"; id=";BPMNPlane_financialReport";>; <;bpmndi:BPMNShape bpmnElement=";startevent1"; id=";BPMNShape_startevent1";>; <;omgdc:Bounds height=";35"; width=";35"; x=";30"; y=";200";>;<;/omgdc:Bounds>; <;/bpmndi:BPMNShape>; <;bpmndi:BPMNShape bpmnElement=";usertask1"; id=";BPMNShape_usertask1";>;

景观设计工作流程

景观设计工作流程 项目前期 一、设计委托阶段 1.客户与公司达成初步设计意向,设计总监接受任务,收集项目背景资料并分析设计任务。 2.向甲方提供项目建议书(公司简介、案例展示,项目建议)。 3.促成甲方项目设计委托,达成委托意向。 4.确认项目主设计师 二、项目准备性分析(实地调研、收集资料,含影像资料、市场分析、项目定位) 1.基地现状分析 2.景观资源分析 3.交通区域分析 4.当地历史、人文景观分析 5.规划与建筑设计理念分析 6.项目市场定位分析 7.设计条件及客户要求的合理性分析 三、与客户进行第一次沟通,了解项目概况阶段 1.建设规模 2.投资规模 3.技术经济指标 4.设计周期 5.可持续发展 6.收集项目“红线图”,确认项目面积 7.提炼整理甲方的要求,植物品种和功能设施上的要求等 四、确定项目设计小组及人员分工,提供项目工作时间安排表(附合同后) 五、客户与公司签订设计合同,并支付设计费用的定金 概念方案阶段 六、概念设计阶段 1.从分析与定位得出概念主题 2.对客户项目进行投资经济分析 3.景观设计风格的确定 4.详细的设计分析过程 5.彩色总平面图及设计说明书 6.设计内容示意图 7.提供项目设计比较方案 8.选定方案硬质景观主材和软质景观苗木 9.商务着手整理收集项目资料

七、与客户进行第二次沟通(概念性方案的沟通,确定设计的整体方案) 1.方案PPT演示讲解 2.提供甲方投资经济分析建议,与甲方确定明确的投资强度 3.明确项目设计面积 4.设计师详细记录甲方提出的要求和意见 5.商务进行会议记录,并整理成为会议纪要,由主设计师修改签字认可后,次日发送给相关项目人员 6.提交设计成果并确认,商务协调项目合同履约情况 方案阶段 八、方案设计阶段 1.对甲方提出的方案意见及建议进行修改完善,并深化 2.据草图绘制彩色总平面图(注明各功能空间及景点名称,并标注剖面位置) 3.彩色鸟瞰图 4.景观区示意图,并附文字说明 5.总体景观设计分析图: (1)硬质景观平面 (2)软质景观(水景、灌木、草皮)平面图 (3)主干乔木配置图 (4)交通流线及消防分析图 (5)运动、活动(老人、儿童)场地、泳池及健身动线分析图 (6)轴线及景观焦点 6.主要景点的立剖面图以及整个地块的纵断面和横断面图 7.画出重要景点的透视效果图 8.设计说明:基地概况、设计内容、设计原则、景观分析【景观设计轴线及焦点景观、视觉走廊、动线系统(人车分流、消防通道处理)、景观设计分区】 9.采购部门提供方案硬质景观选定的主材列表、本地属性、表现情况及价格 苗木基地提供方案软质景观选定的苗木列表、本地属性、表现情况及价格 10.设计部门提供小品、活动区域及构筑等立面参考建议图片及估价 11.设计部门综合硬软景造价及可调控的小品、活动区域及构筑等立面造价形成方案基础设计造价 九、与客户进行第三次沟通 1.方案PPT演示讲解 2.确认硬软景主材苗木的选定 3.提供给甲方方案基础设计造价,为平衡实现景观表现效果,针对小品、活动区域及构筑立面等部分与甲方进行确认,实现项目造价成本控制。 4.明确项目设计面积 5.商务进行会议记录,并整理成为会议纪要,由主设计师修改签字认可后,次日发送给相关项目人员 6. 提交设计成果并确认,商务协调项目合同履约情况

特别响、非常近——BPMN2新规范与Activiti5

特别响、非常近——BPMN2新规范与Activiti5 上世纪九十年代以后,随着WfMC联盟的成立,BPM市场群雄逐鹿如火如荼,工作流技术得到了突飞猛进的发展,其中IBM、Oracle等大型软件厂商在工作流领域各扯大旗割据一方。2011年BPMN2.0新规范的发布为各工作流产品互容互通提供了统一的标准,结束了各工作流厂商各自为政相互抵斥的局面。 什么是BPMN、Workflow? ?BPM(Business Process Management)——“通过建模、自动化、管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”。 ?Workflow——“全部或者部分由计算机支持或自动处理的业务过程”(工作流管理联盟WfMC组织对工作流概念的经典定义) BPM基本内容是管理既定工作的流程,通过服务编排,统一调控各个业务流程,以确保工作在正确的时间被正确的人执行,达到优化整体业务过程的目的。BPM概念的贯彻执行,需要有标准化的流程定义语言来支撑,使用统一的语言遵循一致的标准描述具体业务过程,这些流程定义描述由专有引擎去驱动执行。这个引擎就是工作流引擎,它作为BPM的核心发动机,为各个业务流程定义提供解释、执行和编排,驱动流程“动“起来,让大家的工作“流”起来,为BPM的应用提供基本、核心的动力来源。 现实工作中,不可避免的存在跨系统跨业务的情况,而大部分企业在信息化建设过程中是分阶段或分部门(子系统)按步实施的,后期实施的基础可能是前期实施成果的输出,在耦合业务实施阶段,相同的业务过程可能会在不同的实施阶段重用,在进行流程梳理过程中,不同的实施阶段所使用的流程描述语言或遵循的标准会有所不同(服务厂商不同),有的使用WfMC 的XPDL,还有些使用BPML、BPEL、WSCI等,这就造成流程管理、业务集成上存在很大的一致性、局限性,提高了企业应用集成的成本。 BPMN2.0规范的引入 遵循BPMN2.0新规范的工作流产品能很大程度上解决此类问题。BPMN2.0相对于旧的1.0规范以及XPDL、BPML及BPEL等最大的区别是定义了规范的执行语义和格式,利用标准的图元去描述真实的业务发生过程,保证相同的流程在不同的流程引擎得到的执行结果一致。BPMN2.0对流程执行语义定义了三类基本要素,它们是日常业务流程的“三板斧”: ?Activities(活动)——在工作流中所有具备生命周期状态的都可以称之为“活动”,如原子级的任务(Task)、流向(Sequence Flow),以及子流程(Sub-Process)等?Gateways(网关)——顾名思义,所谓“网关”就是用来决定流程流转指向的,可能会被用作条件分支或聚合,也可以被用作并行执行或基于事件的排它性条件判断 ?Events(事件)——在BPMN2.0执行语义中也是一个非常重要的概念,像启动、结束、边界条

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