当前位置:文档之家› JFlow与activiti的对比

JFlow与activiti的对比

驰骋工作流引擎JFlow与activiti

目录

前言 (4)

工作流程引擎 - 对比 (4)

5种基本控制流模式的对比 (5)

4种高级分支同步模式 (10)

2种结构化模式 (14)

4种包含多实例的模式 (16)

3种基于状态的模式 (19)

2种取消模式 (22)

总结 (23)

表单集成 (24)

表单引擎与流程引擎的关系 (25)

最简单的请假流程-根据表单的请假天数来判断流程的分支 (25)

流程引擎操纵表单引擎的一个案例 (27)

对多种表单的支持 (29)

简洁明快的CCForm (29)

Word文档支持 (31)

Excel表单的支持 (31)

表单树的支持 (32)

符合中国特色个性化JFlow功能 (32)

流程属性 (33)

多种接受人规则 (33)

接受人员投递路径自动记忆 (34)

发起前置导航 (35)

节点属性 (35)

方向条件可视化配置 (36)

JFlow对工业自动化的流程支持 (37)

前言

为了更好的说明activiti 与jflow的两款工作流引擎的特点与区别,我们按

照如下几个方面做一次全面的、客观的对比。

首先activiti是国外的一款开源的工作流程引擎,在国际上影响比较深远与

广泛,解决了BPM领域的很多问题,值得我们赞赏。他的boss是jbpm的前身。 JFlow是济南驰骋公司开放的一款工作流程引擎,JFlow的前身是CCFlow,ccflow是国内开源的一款老牌的工作流程引擎,承担过很多大型项目,适应于

复杂的国内应用环境。

Activity 相对简单,仅有流程引擎,没有表单引擎。在BPM的研究领域, 很

多的学者,专家都是把流程引擎与表单引擎分开的,对于这个观点我们并不很

赞同。实现功能需要大量的代码开发。

JFlow是JFlow流程引擎+CCForm的表单引擎的有机结合,内容相对复杂,配置程度较高,实施周期短,上手快。

工作流程引擎 - 对比

以国外流行的工作流activiti的模式与当今中国开源的JFlow(ccflow和jflow的总称)流程引擎对照。以便让各位能够了解到中国国情的工作流引擎与国际流

行的设计规则的差别、不同、与优缺点。

国外工作流比较通用的就是满足21种流程模式的支持。

5种基本控制流模式的对比

1.顺序流(Sequence)

ACTIVITI :

就是按照流程设计的步骤,一步步的向下运行,这样的模式下每个节点有先后顺序,就是每个节点只有一个节点是活动的。

例子:比如申请后进行审批,一步一步的进行任务。

JFLOW:

顺序流,也叫做没有分支的线性流程,流程一般在最后一个节点自动结束,并标识流程完成。也可以通过设置节点条件,自动结束流程。

JFlow的特点是:允许用户自己定义流程完成条件,在任何一个节点运行过程中,JFlow都要去检查条件设置,如果满足这个条件流程就自动结束。

2.并行分叉(ParallelSplit)

ACTIVITI :

流程在某个活动(节点、步骤)之后产生多个分支,并且并行流转。

例子:比如在淘宝买了个商品需要开发票,那么卖家就需要一边准备商品发货,一边准备发票邮寄。

JFLOW:

异表单分合流的分流动作,一个动作结束后(分流节点),并行启动多个分支,每个分支都要向下运动。

在cc中,可以根据方向条件设置来决定是否启用某一个分支。

3.同步(Synchronization)

ACTIVITI :

在流程中的某个点,多个并行的子流程或者活动,合并成一个流程。流程必须等待所有的分支都执行完成后,才能激活后续活动。

例子:比如商家在收到“发票”和“商品”后,才能确认收货。

JFLOW:

异表单分合流中的合流动作,可以指定一定的完成率,才能到达合流节点。

对于未完成的子线程,可以进行删除操作。

4.独占式选择(Exclusive Choice)

ACTIVITI :

一个活动完成后,只能在后面的多个分支中激活一个。

例子:比如用户下单后,可以有N种付款方式,但是只能选择其中一种。

JFLOW:

具有分支的线性流程。可以由方向条件控制,也可以由用户手动控制。

5.简单聚合(Simple Merge)

ACTIVITI :

在流程中有2个以上的分支中某一个点处被合并成一个分支,只要分支中的一条完成,即可继续进行,而其他分支自动结束。

例子:比如发货在建设银行和中国银行等支付方式中的一个完成后才被激活。

JFLOW:

即可以为带有分支的线性流程,又可以是异表单的合流动作。在线性流程中,在某一处选择需要执行的节点并完成执行后,后面的节点一步一步的执行,没有被选择的节点不执行。

在异表单中,可以通过条件设置需要执行的节点,其他节点不执行,在合流点完成汇总并激活。或者,通过设置完成率来激活合流点的操作。

区分到底是否是分合流,通过查看节点类型。

6.基本控制流程模式,在ACTIVITI 中与JFLOW中的综合实现。

ACTIVITI :

JFLOW:

4种高级分支同步模式

1.多重选择(Multiple Choice)

在流程中,当一个活动完成后,有多个分支进行选择,可以选择执行其中的一个或者N个分支。

例子:比如去世博园玩,在门口检票后,可以选择A-E个片区中的N个进行观光。

ACTIVITI 中的支持情况:

1.JPDL方式不支持先定义好这里的几种,然后根据条件去筛选其中的几种

进行,但是ACTIVITI.4之后支持一种叫foreach的节点,允许我们在运行时指定几种特定的任务,比如上面例子中的片区,我们可以在选定后再去循环。

2.BPMN方式支持根据条件执行多个子分支。

JFLOW中的支持情况:

1.通过定义流程为异表单分合流来实现。

a通过条件控制发起子线程数量。设置方向条件的时候,可以根据需要,选择不通的条件设置,比如:岗位条件、部门条件、表单条件等。

b通过节点树形中设置手工选择方向控制,可以控制发起子线程的发起数量。

2.通过父子流程也可以实现。

2.同步聚合(Synchronizing Merge)

在流程中的某个聚合点,流程会等待所有的分支到来,才能激活后续的活动。

如果分支只有一个,那么就变成简单聚合模式;如果存在2个以上分支,那就是同步模式。

这种模式的关键在于能够动态的根据分支的多少进行聚合。

ACTIVITI 中的支持情况:

可以通过设置ACTIVITI 的join节点属性multiplicity的值为某个变量,并在程序中动态的修改变量的值来制定分支的数量。

JFLOW中的支持情况:

分合流中合流操作。无论分支有多少,都可以进行汇总,并且可以对汇总的子线程进行删除操作、完成率控制等。

JFLOW的多重选择与同步聚合实例图:

结束为聚合点,中间的为分支。

3.多重聚合(Multiple Merge)

在流程中的多个分支,都可以激活后续的活动,也就是会产生多个实例。

例子:游客观光完N个片区之后,每个片区各自的系统可以对游客在自己片区的信息进行存储。

ACTIVITI 与JFLOW的支持请参考同步聚合。

4.鉴别器(Discriminator)

在流程的某个聚合点,N个分支的第一个分支到达后,就立刻激活后续活动;

与此同时,流程仍然要等待其余的分支完成并忽略完成。

注意:在其余分支未全部完成前,第一个到达的分支所激活的后续节点是无法执行的。

例子:个人申请提交后,并行提交给第一导师审批、第二导师审批、第三导师审批,他们中只要有一个完成了,那么就可以提交给学院审批。

N-out-of-M鉴别器模式:

跟鉴别器模式一样的,只是这种模式是N个到达后,激活后续节点,而剩下的M-N个节点未完成前,新激活的后续节点一样无法被执行。

ACTIVITI 中的支持情况:

没有直接支持这种模式,但是通过自定义节点,应该是可以处理这种模式的。

JFLOW中的支持情况:

有两个属性的控制,可以实现功能,就是上面所说的子线程完成路和子线程删除规则。

第1个:子线程完成率。该规则可以决定是否可见

第2个:子线程删除规则。该规则决定那些子线程可以被删除以及他们的删除方式。

2种结构化模式

1.任意循环(Arbitrary Cycles)

ACTIVITI :

某一个或多个活动可以反复执行。

例子:用户买了瓶汽水,拿到汽水后,中了一瓶,又去兑换了一瓶汽水,如果又中了,再去兑换一瓶汽水….

JFLOW:

完全是条件判断,在表单中增加一个审核组件,就可以把每次校验的信息,写入里面,完整的显示出来整个轨迹。

2.隐式终止(Implicit Termination)

ACTIVITI :

指这一个流程中,如果没有活动可以执行,那么流程会自动终止。

例子:比如用户买了汽水,中了50元,但是没有地方可以兑换。

JFLOW:

这种类型属于JFlow的线性流程的一种,该流程配上流程完成条件,就可以实现该功能。

流程完成条件,就是流程在前进中检查的条件,如果满足该条件,流程就停止运行,该流程实例结束。

4种包含多实例的模式

1.无同步的多实例(MIwithout)

在流程中,一个活动可以激活多个实例,每个实例相互独立,并不需要在后面进行同步。

例子:比如用户购买了N本书,于是后续的支付账单、更新客户可以以本书为单位各自执行。

ACTIVITI 中的支持情况:

支持这种模式,但是不允许在后面进行结束动作。

JFLOW中的支持情况:

分合流与父子流程支持这种模式,分合流上面已经讲过,下面说下父子流程。

第一种情况:发起子流程后,等所有的子流程执行完成后,父流程继续下一步骤或者结束。

第二种情况:发起子流程后,无论子流程是否执行完成,都执行到下一步或者结束。

父流程:

2.设计时确定的多实例(MIwith a Priori Design Time Knoledge)

在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候就已经知晓率。

ACTIVITI 中的支持情况:

对于设计时已经知道实例数量的,最简单的就是使用多个Task节点来实现多个实例。

JFLOW中的支持情况:

合流节点处理各个子线程的任务比率。

完成率 = 子线程上已经完成的数据/所有子线程数量*100%

该节点对于合流节点与分合流节点有效,当子线程的完成率达到该值的时候,该节点的待办才能显示出来,否则该节点的人员不能处理待办。如果合流节点的处理人能够看到待办,他就可以对该流程进行操作,比如:发送、删除、退回、删除子线程等等。

3.运行时确定的多实例(MI with a Priori RunTime Knoledge)

在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,只有在运行时根据条件来决定需要激活多少个实例。

ACTIVITI 中的支持情况:

对于运行时可以知晓实例数量的,可以通过设置JOIN节点的multipliclty来实现。

JFLOW中的支持情况:

同表单分合流配合节点访问规则可以实现这个功能。

4.运行时无法确定的多个实例(MI without a Priori RunTime Knoledge)

在流程中,被激活的多个实例需要在某个聚合点聚合,而实例的个数在设计的时候并不知道,该模式与上一个模式的区别就是,在产生的实例执行时或者已经执行完时,仍然有新的实例产生。

例子:比如要采购100台电脑,涉及到多个供应商,但是每个供应商供应多少台电脑是不知道的,因此供应商的数量也是不确定的,但是每次供应商送货来后,就会将所拥有的电脑数量和所需的100台进行比较,来决定是否要下一个供应商进行供应。

ACTIVITI 中的支持:与运行时确定的多个实例的实现方式一样。

JFLOW中的支持:

这种方式属于JFlow的父子流程来实现,开始节点启动一个任务,需要采购100台电脑,需要发起n此的选择供应商采购的子流程,每个子流程完成后,就访问父流程节点信息,进行相关的业务处理(就是是否启动下一个子流程,如果满足100,就不启动子流程了,直接完成父流程的任务,结束主流程.)。3种基于状态的模式

1.延迟选择(Deferred Choice)

流程中某个点可以有多个分支进行选择。不是基于简单的数据或者决定就可以很明显地作出选择,而是会向系统或者执行环境提供多种可选择的分支;

但是又不同于AND-Split模式,延迟选择只能选择一个分支执行,一旦选择了其中第一个分支,那么其他分支就会被撤销。这种延迟一直会持续到第一个选择分支开始实际运行。

例子:收到的一批商品运送到各个部门,到底选择什么样的运行方式,要看资源的可用性。

JFLOW中的模式:

通过在节点属性—基本属性中,设置手工选择方向条件的方式,可以实现此种模式。实际上JFlow就是将流程流转的权限在交给了当前节点的操作的人员,由他来决定流程要发送到什么地方去。

2.交叉存取并行路由(Interleaved Parallel Routing)

或者叫任意顺序流,指几个活动必须按顺序执行,不能同时进行,但是这种顺序又是不定的。

例子:体检的时候有很多项目,这些项目不能同时进行,但是可以以随意顺序进行。

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/6d18761775.html,/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项

redmine说明

简介 Redmine是一个灵活的项目管理系统,使用Ruby on Rails 框架开发, 跨平台且可以使用多种数据库。 Redmine是开源软件,遵循GNU General Public License (GPL)协议 发布。 功能特性1 多项目支持 在一个Redmine平台上管理您的所有项目 用户在不同项目中可属于不同角色 项目可设定为公开的(所有人都可见)或者内部的(只有项目成员可见)可在项目中激活或隐藏模块(即:wiki、版本库、问题跟踪……) 基于角色的灵活访问控制 定义您自己的角色并快速设定他们的权限 灵活的问题跟踪系统 定义您自己的问题状态和问题类型 可以通过web管理界面为每种问题类型和角色设置工作流程(系统安装时可选择导入默认的工作流设置) 多语言支持 可以使用多种数据库 功能特性2 甘特图和日历 根据为问题设定的开始日期和完成日期自动生成甘特图和日历 功能特性3 时间跟踪功能 在项目级别或者问题级别设定时间 根据用户、问题类型、类别或者活动生成工作量报表 自定义属性 您可以为问题、项目和用户添加自定义属性

可以使用多种格式:文本、日期、证书、下拉列表、复选框 自定义属性可以像常规属性那样显示在问题列表中,并可以作为过滤器使用新闻、文档和文件管理 您可以方便的发布消息和共享文件 为每个项目设置独立的wiki和讨论区 Wiki使用textile语法,可以通过方括号标记设置指向在wiki内部的任意页面提供历史记录的对比和注释功能 功能特性4 版本库浏览器和对比查看器 可以为每个项目绑定已有的版本库 Redmine使您可以浏览版本库的内容,查阅和搜索变动 对比和注释(即追溯)查看器 支持的版本管理系统:Subversion, CVS, Mercurial, Darcs and Bazaar 订阅(Feeds)和邮件通知 项目活动、变更、新闻、问题、问题变更都可通过Atom feeds获取通知 支持多种LDAP认证方式 Redmine使您可以通过多种LDAP方式认证用户 用户账户可在从目录服务中发现用户后被自动创建(可选的) 支持用户自注册 您可以配置系统允许用户在线注册 提供3种用户激活方式:自动激活(不需要确认)、手动激活(由管理员激活)、通过邮件自动发送的邮件激活 登陆系统

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)

PDM的主要功能

PDM的主要功能 PDM是为企业提供了一种宏观管理和控制所有与产品相关信息以及与产品相关过程的机制和技术。PDM系统包含多项功能,从面向应用与系统支持的功能来看,一般包括电子仓库(又称电子数据存储、电子保险箱、电子资料室)、面向应用的使用功能(如文档控制、变更控制、配置管理、设计检索与零件库、项目管理等)、实用化支持功能(如通知与通信、数据传输与转换、图像服务与系统管理),其功能结构如图3所示。 图3.PDM系统的主要功能(面向应用与系统支持) 从软件功能模块的组成来看,一般包括电子数据存储和文档管理、工作流程管理、产品结构及配置管理、分类与检索管理、项目管理、集成接口、用户化工具等,其功能结构如图4所示。

图4.PDM系统的功能(面向软件功能模块的组成) 2.2.1项目管理功能 项目管理的定义:为了在确定的时间内完成既定的项目,通过一定的方式合理地组织有关人员,并有效地管理项目中所有资源(人员、设备等)与数据,控制项目进度的系统管理方法,项目管理所涉及的信息最多,范围最广,实现起来也最复杂。 项目管理是面向过程的一种管理模式,它强调对项目的全过程(包括立项、计划、执行、控制和收尾等)进行全方位管理,其静态领域涉及范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、采购管理、风险管理和综合管理九个知识体系。 与目标管理不同,项目本身具有不可重复性并包含许多不确定因索,这就使得管理者和任务承担者很难就项目达成双方一致的目标。由于项目管理贯穿于项目的整个生命周期,而且围绕项目将企业不同职能部门的成员组成一个有机的整体,项目管理者既是这个团队的领导者,又是项目的执行者,对整个项目及其过程负责,准时、优质地完成全部工作,实现项目的目标。因此,项目管理可以避免目标管理特别是以人工为主的管理模式的弊端,有助于企业处理项目实施过程中需要跨领域解决的复杂问题,能有效地提升企业的运营效率。 PDM系统的项目管理功能是为完成对项目进行管理的任务而设蜀的,进行项目管理,需要定制项目模型,在项目模型中对项目的任务、人员和时间安排进行描述。利用文档管理功能对项目的所有文档和数据进行管理;利用用户管理功能组织项目组,安排项目组成员在

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

Excel模版创建pdm

Excel模版创建pdm 一、将数据字典中的数据表结构粘贴到Excel文件中,整理成如下图所示格式 二、在powerdesigner中创建PDM工程,选中该工程,然后打开脚本代码窗口:Tools -Execute Commands -Edit\Run Script ,编写代码脚本。 三、脚本代码

Dim mdl ' the current model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox "没有活动的模版" End If Dim HaveExcel Dim RQ RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation") If RQ = vbYes Then HaveExcel = True ' Open & Create Excel Document Dim x1 ' Set x1 = CreateObject("Excel.Application") x1.Workbooks.Open "C:\Users\Administrator\Desktop\Book1.xls" '指定excel文档路径 Else HaveExcel = False End If a x1, mdl sub a(x1, mdl) dim rwIndex dim tableName dim colname dim table dim col dim count on error Resume Next set table = mdl.Tables.CreateNew '创建一个表实体 https://www.doczj.com/doc/6d18761775.html, = "国家信息表" '指定表名,如果在Excel文档里有,也可以.Cells(rwIndex, 3).Value 这样指定 table.Code = "LU_STATUS" '指定表名编码 count = count + 1 For rwIndex = 2 To 1000 '指定要遍历的Excel行标,此处第一列为列名,古从第二行开始循环 With x1.Workbooks(1).Worksheets("sheet1")'需要循环的sheet名称 If .Cells(rwIndex, 1).Value = "" Then Exit For End If

Redmine使用手册

Redmine使用手册 一、 Redmine简介 Redmine是基于ROR框架开发的一套跨平台项目管理系统,是项目管理系统的后起之秀,据说是源于Basecamp的ror版而来,支持多种数据库,除了和DotProject的功能大致相当外,还有不少自己独特的功能,例如提供wiki、新闻台、时间跟踪、feed聚合、导出pdf等,还可以集成其他版本管理系统和BUG跟踪系统,例如SVN、CVS、TD 等等。 它具有以下功能: ● 多项目和子项目支持 ● 可配置的用户角色控制 ● 可配置的问题追踪系统 ● 自动日历和甘特图绘制 ● 支持 Blog 形式的新闻发布、Wiki 形式的文档撰写和文件管理 ● RSS 输出和邮件通知 ● 每个项目可以配置独立的 Wiki 和论坛模块 ● 简单的任务时间跟踪机制 ● 用户、项目、问题支持自定义属性 ● 支持多种版本控制系统绑定(SVN、CVS、Git、Mercurial、Darcs) ● 支持多 LDAP 用户认证 ● 支持用户自注册和用户激活 ● 多语言支持(已经内置了简体中文) ● 多数据库支持(MySQL、SQLite、PostgreSQL) ● 外观模版化定制(可以使用 Basecamp 、Ruby安装) 接下来详细介绍redmine的使用。 二、 Redmine操作详解 2.1、登录系统 使用Internet连接到redmine页面,会看到下面的界面

图 2-1 点击新闻标题或者项目标题都可以看到具体的内容。但是未登录只能查看,不能进行实质性操作。 点击右上角的“登录”按钮。(前提是已经注册成功,这里的注册根据管理员设置的不同方法也不相同。一般情况下是管理员添加用户后用邮件通知,用户激活。(还有的直接注册就可以登录了。)会看到下面的界面 未登录状态仅显示公开的项目 页面左面是“最近的新闻”,右面是“最近更新的项目” 左上角是快键菜单,点击“项目”可以看到所有公开的项目 右上角有登陆和注册按钮 图 2-2

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

根据activiti官方提供的编写 1.财务部门填写月财务报告 2.股东审核月财务审计报告 流程图: 流程配置: <;?xml version=";1.0"; encoding=";UTF-8";?>; <;definitions xmlns=";https://www.doczj.com/doc/6d18761775.html,/spec/BPMN/20100524/MODEL"; xmlns:xsi=";https://www.doczj.com/doc/6d18761775.html,/2001/XMLSchema-instance"; xmlns:activiti=";https://www.doczj.com/doc/6d18761775.html,/bpmn"; xmlns:bpmndi=";https://www.doczj.com/doc/6d18761775.html,/spec/BPMN/20100524/DI"; xmlns:omgdc=";https://www.doczj.com/doc/6d18761775.html,/spec/DD/20100524/DC"; xmlns:omgdi=";https://www.doczj.com/doc/6d18761775.html,/spec/DD/20100524/DI"; typeLanguage=";https://www.doczj.com/doc/6d18761775.html,/2001/XMLSchema"; expressionLanguage=";https://www.doczj.com/doc/6d18761775.html,/1999/XPath"; targetNamespace=";https://www.doczj.com/doc/6d18761775.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";>;

PDM系统功能介绍

1 PDM的常见功能介绍 到目前为止,还没有一个商用PDM软件拥有全部可罗列的PDM功能,其中有的功能构件还有待于进一步发展和完善。 但是,一般PDM系统都包括文档管理、产品配置管理及工作流程管理等最基本的功能,能对产品的整个生命周期进行完整的描述和控制,因此,PDM在企业中的作用已经普遍为大家所认同。 1.1 电子仓库 1.1.1 电子仓库介绍 在企业中,大量与产品相关的数据往往分布在多部门,甚至是多区域中,而且这些数据的格式也是多样的,如文本文件、数据库、图纸文件等,对这些数据的查询、浏览、共享,以及结合工作流程来管理这些数据等,都是企业在进行信息集成时经常遇到的问题。 PDM管理的主要对象是产品的“元数据”,即有关产品信息的信息,其实现基础是电子仓库(Electronic Data Vault)。实施并行工程所需要的“在正确的时间、把正确的数据、按正确的方式、传递给正确的人”对PDM数据管理提出了更高的要求。 电子仓库(Data Vault)是PDM最基本的功能,也是PDM的核心,通常是建立在通用的关系数据库基础上,主要保证数据的安全性和完整性,并支持各种查询和检索功能。 PDM系统中的电子仓库用以取代人工方式的纸质档案管理,使用户方便、快捷、安全地存取、维护及处理各种有关产品的文档,如从设计阶段产生的AutoCAD图纸的数据文件、3D实体造型的数据文件、CAE的分析报告,到制造阶段可能产生的变更单等,都是电子仓库管理的对象。 电子仓库为用户和应用之间的数据传递提供一种安全的手段,其透明性可使用户无需考虑分布式环境下各种数据的实际物理存放位置,允许用户迅速地、集中地处理访问全企业的产品信息,并且使整个企业的各部门共享产品数据。 PDM的电子仓库和文档管理提供了对分布式异构数据生成,存储,查询,控制存取,恢复,编辑,电子检查和记录,电子对象的历史及通用文件管理等能力。 在PDM中,数据的访问对用户来说是完全透明的,用户无需了解应用软件的运行路径、安装版本以及文档的物理位置,以及自己得到的是否是最新版本等信息,所有描述产品、部件或零件的数据都由PDM统一管理,自动集中修改。 PDM系统通过建立在数据库之上的相关联指针,建立不同类型的或异构的产品数据之

Activiti工作流对象关系及表结构

Activiti数据表结构和核心对象关系 西安创富电子科技有限公司 二〇一三年九月

版本历史

目录 1ACTIVITI数据库表结构--------------------------------------------------------------------------------------- 4 1.1 数据库表名说明 ---------------------------------------------------------------------------------------- 4 1.2 数据库表结构 ------------------------------------------------------------------------------------------- 4 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------- 5

1Activiti数据库表结构 1.1数据库表名说明 Activiti工作流总共包含23张数据表,所有的表名默认以“ACT_”开头。并且表名的第二部分用两个字母表明表的用例,而这个用例也基本上跟Service API匹配。 ◆ACT_GE_* : “GE”代表“General”(通用),用在各种情况下; ◆ACT_HI_*: “HI”代表“History”(历史),这些表中保存的都是历史数 据,比如执行过的流程实例、变量、任务,等等。当系统中配置history的信息记录级别为“none”时,这一类表也可以不用; ◆ACT_ID_* : “ID”代表“Identity”(身份),这些表中保存的都身份信 息,如用户和组以及两者之间的关系。如果Activiti被集成在某一系统当中的话,这些表可以不用,可以直接使用现有系统中的用户或组信息; ◆ACT_RE_* : “RE”代表“Repository”(仓库),这些表中保存一些‘静 态’信息,如流程定义和流程资源(如图片、规则等); ◆ACT_RU_*: “RU”代表“Runtime”(运行时),这些表中保存一些流程实 例、用户任务、变量等的运行时数据。Activiti只保存流程实例在执行过程中的运行时数据,并且当流程结束后会立即移除这些数据,这是为了保证运行时表尽量的小并运行的足够快; 1.2数据库表结构 Activiti数据表清单:

Redmine和Jira优缺点对比(严选优质)

Redmine和Jira的优缺点对比 Redmine介绍 开源,可免费使用 ?自带wiki功能 ?每个项目具有用户论坛 ?操作更加便捷 ?界面更加简洁友好,不花哨 ?易于S C M集成 ?更易于追踪问题 ?集成邮件系统(包括创建问题、以及问题变更的通知) ?对子任务的支持 JIRA pro's ?IDE集成 Redmine CONS: ?Redmine更关注于问题与项目多过于用户,很难取得较好的报告呈现方式, 包括工作完成情况、工作进度以及其他。 ?没有通知安排,只有变化通知,没有升级通知,只通知指定用户插件添加。 ?没有问题的保障计划 .没有清晰定义,因而每个角色可以看到问题追踪。 ?无法从项目一开始就选择与其相关的子项目 ?问题的时间评估功能不够强大的,J I R A甚至允许用3w4d12h的时间格式。 ?Redmine的绝大部分领域都没有基于A j a x的自动填充。

?只有7种类型的自定义字段.J I R A允许有23种,包括创建“U s e r P i c k e r ”以及其他多层次领域。 ?活动日志没有过滤器/标签,无法在某一页面中看到当前的所有问题。 ?无法对时间进行评论 ?无法设定条件控制问题状态的变化 Redmine CONS that are secondary: ?外观没有经过优化,大部分东西在页面中使用更少的空间。 ?无法手动设置问题 ?无多国语言的问题类型 ?没有增加问题可读性的图标 ?没有键盘快捷键 ?Redmine 的文件管理功能比较薄弱,无法描述所有的东西。不过,大部分都是比较容易懂,除了 一些特殊的任务, althou, most of everything is easy understandable, but for some specific tasks

RedMine_Setup_Windows

下载地址 Redmine 1.0.0: https://www.doczj.com/doc/6d18761775.html,/projects/redmine/ InstantRails-2.0-win: https://www.doczj.com/doc/6d18761775.html,/projects/instantrails/ 安装步骤 1. 下载InstantRails,解压缩。 2. 下载Redmine,解压缩。 3. 将Redmine解压缩的文件夹直接拷贝到InstantRails目录的rails_apps目录下。 4. 启动InstantRails。 5. 创建数据库,在phpMyAdmin中:create database redmine character set utf8; 在InstantRails界面点击I->Configure->Database(via PhpMyAdmin),打开PhpMyAdmin页面,点击左上角的SQL图标,在文本域中输入sql命令; (如果该栏是灰色的,表示你安装后没重启机器。重启一下即可。) 6. 将config目录下的database.yml.example文件重命名为database.yml 7. 在Redmine项目的命令行执行rake db:migrate RAILS_ENV="production",用来创建数据库,完成后应该创建43个表。 如何启动命令行: InstantRails的主菜单->Rails Application ->Open Ruby Console Window 8. 还是在命令行执行rake redmine:load_default_data AILS_ENV="production",指明当前项目运行环境为production,中间会提示选择语言,我们选择zh。 9. 启动web服务,在命令行里ruby script/server -e production。 10. 然后我们就可以启动Redmine了,在浏览器中访问地址:http://localhost:3000/ 说明: 第7、8、9步:提到的命令行就是dos窗口,进入rails_apps\redmine目录,输入命令。

Redmine在项目管理中的应用实践

Redmine在项目管理中的应用实践 摘要:Redmine是一个免费、灵活的项目管理系统,支持多项目管理、问题跟踪、甘特图和日历等功能。本文从项目管理需要出发,分别对Issue类型定义、Issue 填写要求、各类Issue流程定义以及使用中的注意事项作了详细介绍,为搭建基于Redmine的项目管理平台进行了有益探索。 关键词:Redmine、项目管理、流程 1.应用背景 目前,市场上的项目管理软件种类繁多,有免费的、也有价格不菲的,有符合标准化项目管理流程的,也有可灵活定制的。但要选择一款既适合实际项目管理要求,又最有较高性价的产品,绝非易事。 为规范项目管理,加强项目监控,经过综合评估,我们选用Redmine用于XX系统项目(以下简称“本项目”)管理。选择Redmine作为本项目管理工具,主要是基于如下几点考虑: 1)Redmine是免费、成熟的项目管理软件,有较多实际的应用案例; 2)Redmine非常容易上手,支持灵活配置,可以自定义流程; 3)本项目的规模较小,项目周期较短,参与人员不多。 2.Redmine介绍 Redmine是一个灵活的项目管理系统,使用Ruby on Rails 框架开发,跨平台且可以使用多种数据库。支持多项目管理、问题跟踪、甘特图和日历等功能,提供wiki、新闻台、feed聚合、导出pdf等,还可以集成其他版本管理系统和BUG 跟踪系统,例如SVN、CVS、TD等等。 3.Issue类型定义 问题(Issue)是Redmine系统中最核心的要素。在Redmine系统中,问题是一个宽泛的概念,英文版中用的是Issue,可以翻译成问题、课题。在本项目中,发现的错误、新提的要求、对工作的安排等都可以被当作问题来处理。问题

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

A c t i v i t i工作流入门详 解完整教程 Prepared on 24 November 2020

Activiti入门教程详解完整教程 1.Activiti介绍 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。 Activiti基于Apache许可的开源BPM平台,创始人TomBaeyens是JBossJBPM 的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 1.1工作流引擎 ProcessEngine对象,这是Activiti工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。 1.2BPMN 业务流程建模与标注(BusinessProcessModelandNotation,BPMN),描述流程的基本符号,包括这些图元如何组合成一个业务流程图(BusinessProcessDiagram) 2.准备环境 2.1Activiti软件环境 1)或者更高版本 2)支持的数据库有:h2,mysql,oracle,mysql,db2等 3)支持Activiti运行的jar包,可以通过maven依赖引入 4)开发环境为或者以上版本,myeclipse为版本 安装流程设计器(eclipse插件) 1)打开HelpInstallNewSoftwareAdd

输入Name:ActivitiDesigner designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。 安装完成后在菜单选项中会出现Activiti的目录选项 设置eclipseactivit插件的画流程图选项 打开菜单Windows-->Preferences-->Activiti-->Save下流程图片的生成方式 勾选上Createprocessdefinitionimagewhensavingthediagram操作,勾选上这个操作后在画流程图后保存eclipse会自动生成对应的流程图片。 准备开发环境 Activiti依赖 在eclipse左边工作栏右键New选择创建MavenProject项目,创建一个名为ActivitiTest的项目 点击Finish完成。 右键项目选择Properties,选择ProjectFacets勾选上图中的选项,点击Apply,再点击OK 然后将项目转换成web项目,右键项目选择Properties,在ProjectFacets中做如下勾选,然后点击Appy应用和OK确定 然后右键项目Properties,选择DeploymentAssembly,将test相关目录Remove掉之保留main下面需要发布的内容,如下图 然后点击Appply和OK 然后在文件中添加以下依赖

制造业PDM实例分析

制造业PDM实例分析 摘要:PDM项目在上海机床厂合作比较顺利,所涉及的技术路线除与ERP集成工作未结束外,各技术路线、应用子系统已经在上海机床厂磨研所、上依公司得到推广与应用,对同行业具有示范作用。江苏申菱电器制造有限公司制定了以下一套CAD/CAPP/PDM的一体化解决方案,不仅大大的提高了设计人员的工作效率,又有效的实现了数据的一致性和规范性。 关键词:PDM ;上海机床厂;江苏申菱电器制造公司

1 引言 企业如何管理大量电子化数据并从中迅速查找、访问到所需的信息,是企业要解决的一个重要问题。产品数据管理( ProductDataManagement, PDM)的出现为此提供了一种可靠的途径。 1.1 PDM的基本概念 PDM技术最早出现在20 世纪80 年代。其初衷是为了解决大量工程图样文档的管理问题,然后逐渐扩展到产品开发过程的三个领域: 1)设计图样和电子文档的管理; 2)自动化工程更改单的管理;3)材料清单(BOM)的管理。 PDM是以软件技术为基础,以产品为核心,实现对产品相关的数据、过程、资源一体化集成管理的技术。PDM明确定位为面向制造企业,以产品为管理的核心,以数据、过程和资源为管理信息的三大要素。 PDM进行信息管理的两条主线是静态的产品结构和动态的产品设计流程,所有的信息组织和资源管理都是围绕产品设计展开的,这也是PDM系统有别于其他的信息管理系统,如管理信息系统(M IS) 、物料管理系统(MRP) 、项目管理系统( ProjectManagement)的关键所在。PDM系统中数据、过程、资源和产品之间的关系如图。 1.2 PDM系统的体系结构 PDM系统是一个管理软件系统,面向产品全生命周期,以产品为核心,将产品设计开发过程中的产品数据、设计活动、人员组织以及相关的设计环境统一组织起来。 PDM系统的体系结构如图2所示。

activiti工作流数据库表详细介绍(23张表)

activiti工作流数据库表详细介绍(23张表) Activiti的后台是有数据库的支持,所有的表都以ACT_开头。第二部分是表示表的用途的两个字母标识。用途也和服务的API对应。ACT_RE_*: 'RE'表示repository。这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。 ACT_RU_*: 'RU'表示runtime。这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。Activiti 只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。ACT_ID_*: 'ID'表示identity。这些表包含身份信息,比如用户,组等等。 ACT_HI_*: 'HI'表示history。这些表包含历史数据,比如历史流程实例,变量,任务等等。 ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。资源库流程规则表 1) act_re_deployment 部署信息表 2) act_re_model 流程设计模型部署表 3) act_re_procdef 流程定义数据表运行时数据库表 1) act_ru_execution运行时流程执行实例表 2) act_ru_identitylink运行时流程人员表,主要存储任务

节点与参与者的相关信息 3) act_ru_task运行时任务节点表 4) act_ru_variable运行时流程变量数据表历史数据库表 1) act_hi_actinst 历史节点表 2) act_hi_attachment历史附件表 3) act_hi_comment历史意见表 4) act_hi_identitylink历史流程人员表 5) act_hi_detail历史详情表,提供历史变量的查询 6) act_hi_procinst历史流程实例表 7) act_hi_taskinst历史任务实例表 8) act_hi_varinst历史变量表 组织机构表 1) act_id_group用户组信息表 2) act_id_info用户扩展信息表 3) act_id_membership用户与用户组对应信息表 4) act_id_user用户信息表 这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足通用数据表 1) act_ge_bytearray二进制数据表 2) act_ge_property属性数据表存储整个流程引擎级别的数

PowerDesigner导出表结构到word

一、模版修改 在导出表时,powerdesigner默认为我们提供了很多的模版,在工具栏中选择 【Report--->Report Template】即可看到所有的默认模版。如图一: 点击close 图一模版列表 这里我们为了导出powerdesigner中创建的表,在工具栏中选择【Report--->Reports】(快捷键Ctrl+E), 然后创建一个New Report,如下图二所以,选择Standard Physical Report,这里选择的标准的模版,点击OK确定。 图二创建新的Report 从工具栏【Report--->Print Preview】或者点击图标同样可以预览导出到word的效果了。效果 如图三所示:

图三导出到word中预览效果 从【图三】中的工具栏里面HTM和RTF两种导出格式。如果导出到word选择RTF格式即可,但是我们从【图三】中看出红色标出的部分,1 是word的页眉,同样还有页脚信息,2 是一些列的属性清单。 图四设置页眉、页脚 在【图四】中,选择Header/Footer后,删掉Header里面的%MODULE% %MODELNAME%,删掉Footer里面的%APPNAME% %DATE% 页数%PAGE%,User_defined footer就会自动勾上,这样就去掉了页眉、页脚了 还有其他的比如表前面的自增序号,第一页中的创建者、版本、日期信息也不需要,我们可以进行配置去掉,如下【图五】【图六】

图四

图五 Properties配置 在图五中,在默认配置中(General)勾上No paragraph numbering即可取消表前面的自增序号,在Title Page中选择No Title Page就不会生成第一页中关于创建者、版本、日期等信息。 在【图三】中,预览看到的内容太多,就必须删除一些我们不需要的内容,经过删减之后,如下【图六】 所示 图六 在【图六】中右键单击【List of Table Columns - 表<%PARENT%>列说明】,从菜单中选择Edit Title...,就可以编辑成现在我们已看到的。然后,在右键菜单中选择Layout...,选择我们所需要显示的内容,Code 表示列名称,一般用英文单词或拼音字母表示,Name一般用中文描述,Data Type 表示数据类型,Comment表示字段备注或字段说明等。 到此基本上已经完成了powerdesigner模版的修改 二、导出表 然后点击[Report---->Generate RTF]导出到word中,最后我们看看导出到word的效果,如下图:

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