EMSFLOW流程平台

EMSFlow由自定义表单、流程引擎、流程定义、流程客户端、流程管理与监控制几个部分组成, EMSFlow流程管理平台完全基于WEB形式使用(包括流程定义工具),灵活方便,安全强大,在任何地方都可以使用技术特点:完全基于JAVA/J2EE标准开发,工作流流程定义工具使用Java Applet技术实现,可以直接在网页里使用EMSFlow流程管理平台的宗旨:让企业流程自动化、让企业流程管理简单化

EMSFLOW流程管理平台是EMSFLOW业务基础平台的一部分,先介绍一下EMSFLOW平台
注: 人工活动构件
EMSFLOW平台由EMSFLOW工作流、EMSFLOW VisualWeb自定义表单,EMSFLOW 统计报表和业务模块组成

  1. 快速流程流程开发-工作流
  2. 快速J2EE应用开发-VisualWeb

  Visual Web是构件化的J2EE快速开发平台,完全基于在线设计,提供了6种不同类型的页面,30余种 页 面构件,提供了丰富的业务构件,可以在线进行拖拉式页面开发,可以在线进行任意的动态页面布局,实现真正的所见即所得。
同时提供了2种快速开发向导表单维护向导和多表查询向导,几分钟便可以完 成一个完整的功能,直接在线构件组装,在线运行,同时如果您需要扩展开发,Visualweb可以为您生成完整的JAVA和JSP代码,使得软件开发效率提高8倍以上。 VisualWeb架构完全可扩展,用户可以实现自己的页面、页面构件、业务构件。

  1. 快速业务应用框架-业务模块

EMSFLOW平台提供了丰富的业务模块,可以在应用中迅速搭建应用框架,并提供了灵活的扩展接口
组织机构管理 :EMSFlow提供了功能强大的组织机构管理,支持树形的组织机构,并且定义了灵活的群组
权限、菜单管理:功能权限、数据权限管理,多种菜单风格,包括Tab式菜单、树形菜单、下拉菜单风格等
系统管理:角色、用户管理、数据字典管理、表间字典管理等
协同办公模块: 邮件管理、发文、收文管理、消息管理、日程管理、车辆管理、会议管理、公告管理等
文件管理: 基于WEB的文件系统管理,可以为每个文件目录设置访问权限,进行加密处理,安全性高
数据树管理: 几分钟完成基于数据库的树形构件,简单易用
产品特点:
1)完全基于J2EE架构实现,安全性好,性能高,易于使用与扩展
2)完全基于BS环境操作,流程定义使用Applet,表单定义使EMSFLOW VisualWeb,完全在线使用
3)工作流引擎符合WFMC标准,流程定义格式为XPDL标准
4)灵活易用的表单定义与VisualWeb,可以快速建立业务表单
5)一个流程中支持任意多个表单,多种表单形式,可以使用自定义表单VisualWeb,也可使用开发的页面
6)表单数据与引擎数据分离,数据访问灵活,直接在定义工具中设置对业务数据、引擎数据、子流程数据进行访问。
7)在流程定义中支持包括串行,并行、同步、独占式选择、同步归并、子流程嵌套、活动回退业务补偿等都多种流程模式,多种分支聚合策略,流程流转灵活,支持任意步骤的回退,支持自由流
8)任务分配、执行方式灵活,多种任务分配与完成策略,并提供2种运行时期动态人员分配方式
9)提供了自动活动构件扩展开发机制,并预制了多种常用的自动构件,如EMAIL发送等,可以直接在界面上拖拉使用
10)图形化工作流运行的管理与监控
11)嵌入式工作流,可与应用系统无缝集成
EMSFlow产品的服务宗旨是把工作流应用简单化,面向最终用户使用的业务人员和应用软件开发商不同的客户群,EMSFlow工作流采用二种使用模式:用户可以直接,也为开发商提供了强大的扩展功能

  1. 用户使用模式:该模式适合最终用户使用,用户可以直接使用功能强大的表单自定义与流程定义工具直接在界面上定义流程并使用,不需要进行编写任何程序
  2. 扩展开发模式:EMSFLOW也提供了强大的二次开发接口,引擎中的人工活动,自动活动和引擎功能都可以方便的进行扩展开发,EMSFlow也使用了灵活的自动活动构件、人工活动构件,业务构件等。

EMSFLOW流程管理平台运行环境
支持Windows 2000/ XP /2003,Linux,Unix
  支持的J2EE服务器
WegLogic 8.1+、WebSphere 6.1+、JBoss4.x Tomcat4.x,5.x
  支持的数据库
Oracle9.1+,DB2 8.1+,SQLServer2000,MySQL5.x

EMSFlOW流程管理平台介绍

  注: 人工活动构件

工作流引擎:

  1. 标准性

  1: 完全符合WFMC标准的工作流引擎,流程的定义格式为标准的XPDL格式
2:引擎完全基于Java/J2EE架构
3:支持:人工活动、,自动活动、,路由活动、子流程、转移(条件转移,人工转移)等多种活动形式
4:支持嵌入式部署、EJB服务器、WebService等多种工作流引擎接口

  1. 灵活性

引擎功能灵活,支持国内很多特殊的灵活性需求,支持自由流,任意步骤流程回退,动态指定下一活动执行人员等灵活的功能特性。
注: 人工活动构件

  1. 业务数据与流程相关数据分离强大性

业务数据与流程相关数据分离,业务数据(自定义表单)中定义的表单操作的数据与流程的相关数据分离,但访问业务数据的时候可以象访问相关数据一样访问,方便灵活,简单易用,大大提高流程与业务数据的实用性与可管理性

  1. 定义了丰富的自动活动

EMSFlow引擎提供了自动活动组件扩展开发机制,并预制了多种常用的自动活动组件,如EMAIL发送,WEB SERVICE调用等,可以直接在界面上拖拉使用。

流程定义工具-自定义流程

1:复杂的流程也能方便定义,在界面上拖拉拷贝,就可以完成一个复杂的流程定义,可以直接访问定义好的角色,用户机构等信息
2:基于Java Applet实现,直接在WEB页面里使用,方便灵活
3:支持拷贝、粘贴、拖、拉、对齐、等间距、Undo、RedoCopy,Paste、珊格、自动布局等排版功能,使流程定义更方便,定义的流程更简洁、美观。
4:工具向导帮助对工作流引擎系统数据、业务表单数据、子流程数据直接访问
5:流程定义工具面向业务人员设计,简单易用,不需要了解很深的技术知识。

流程定义工具中的相关图元所表示的意义


图元

名称

含义

注: 人工活动构件

开始活动

表示一个业务流程的开始。在流程开始活动可以定义流程的启动表单以及业务流程的触发事件。

注: 人工活动构件

人工活动

指需要业务人员进行一些手工处理的活动,比如填写表单等等。

注: 人工活动构件

自动活动

指无需人工干预,系统自动执行的活动,用来完成一组业务技术,比如:EMAIL发送

注: 人工活动构件

子流程

一种特殊的活动,此活动本身是指向某一个流程,表示当流程运行到此处时,启动另外一个流程。子流程的启动分为同步和异步两种方式。

注: 人工活动构件

路由活动

是一种逻辑活动,此活动在流程中起辅助设计的作用,用来帮助完成复杂的流程设计,活动本身并不执行任何具体的任务。

注: 人工活动构件

结束活动

表示一个业务流程的结束。

注: 人工活动构件

连接线

表示从一个活动执行到另一个活动的顺序。设置连接线的条件表达式,通过条件决定流程的流转。

流程客户端

EMSFlow客户端是完全基于WEB模式,用户可以使用客户端组合查询,领取,执行,代理,回退,执行流程执行者等流程的执行功能。
注: 人工活动构件

流程定义管理

EMSFLOW流程定义界面提供流程定义管理,设计、倒入、倒出、发布等流程定义的管理功能
注: 人工活动构件

流程实例管理

EMSFlow流程管理与监控是完全基于WEB模式的管理与监控,提供了多条件的组合查询流程、活动、工作项实例,可以灵活查看表单的审批数据,可以终止,挂起,恢复流程,图形化监视流程执行。

注: 人工活动构件

流程运行图形监控

注: 人工活动构件

EMSFLOW工作流查询统计功能

任务平均办结周期分析:

介绍:用来分析任务执行的平均周期
查询组合条件:任务执行时间段,流程模板,任务活动状态,执行人所属部门,执行人员
向下攒取条件:按流程模板名称统计,按活动名称统计,按流程实例统计
注: 人工活动构件

任务参与者办理时间分析:

介绍:用来分析任务执行者的执行平均周期统计分析
查询组合条件:任务执行时间段,流程模板,任务活动状态,执行人所属部门,执行人员
向下攒取条件:参与者à参与者,流程定义à参与者,流程模板à参与者,流程实例,流程实例à参与者,流程实例,流程实例,工作项
注: 人工活动构件

超期任务情况分析

介绍:用来分析超时任务的数量
查询组合条件:任务执行时间段,超时时间(统计超时间多长时间的任务,如8小时),流程模板,任务活动状态,执行人所属部门,执行人员
统计类型:全部流程超时流程统计,全部工作项超时统计,有时间限制的流程超时统计,有时间限制的工作项超时统计,按员工统计工作流超时工作项,按员工流程定义统计工作流超时工作项
注: 人工活动构件

流程状态分析

介绍:用来分析统计工作流 流程,活动,任务的状态
查询组合条件:任务执行时间段,流程模板,任务活动状态
向下攒取条件:按流程模板à按流程模板,流程实例
人员的任务办理数量分析
介绍:用来分析任务执行者的任务执行数量
人员的任务办理质量分析
介绍:用来分析任务执行者的任务执行质量
使用功能强大的交叉表显示数据,支持向下攒取
如:任务平均执行时间分析向下攒取的数据显示
按参与者
注: 人工活动构件
按参与者-流程模板

注: 人工活动构件
按参与者-流程模板-流程实例

注: 人工活动构件
2:图形显示支持饼状图,柱状图,折线图

VisualWeb-自定义表单

EMSFLOW流程管理平台包含一个功能强大的表单定义功能,可以轻松的在几分钟内定义一个复杂的,完全符合业务要求的表单模型,不需要任何编程工作,是的EMSFLOW流程管理平台零编码实现流程定义成为可能。
Visual Web是构件化的J2EE快速开发平台,完全基于在线设计,提供了6种不同类型的页面,30余种 页 面构件,提供了丰富的业务构件,可以在线进行拖拉式页面开发,可以在线进行任意的动态页面布局,实现真正的所见即所得。
同时提供了2种快速开发向导表单维护向导和多表查询向导,几分钟便可以完 成一个完整的功能,直接在线构件组装,在线运行,同时如果您需要扩展开发,Visualweb可以为您生成完整的JAVA和JSP代码,使得软件开发效率提高8倍以上。
VisualWeb架构完全可扩展,用户可以实现自己的页面、页面构件、业务构件。
完全可视化页面设计
1)真正的所见即所得
2)在线支持任意的页面布局,目前同类型产品中,只有EMSFLOW VisualWeb能实现
组件化页面设计
1)展现端开发效率提高数倍数
2)页面组件、业务组件完全可以复用,页面完全可以复用,保护软件投资,提高开发效率
3)组件经过大量应用验证,可靠性大大的提高
在线页面设计
1)可以快速适应需求变化,真正做到随需应变
2)可以在线搭建一些应用,随需应变
快速开发向导
1)几分钟完成一个完整的表单维护功能,一个应用50%的基本维护功能可以使用表单维护向导快速创建
2)多表查询向导可以快速创建任意复杂的多表查询与统计,只需要输入一个查询SQL语句
3)表单维护向导可以快速实现页面与数据模型的建立,把精力放在更复杂的业务上
支持代码生成
EMSFLOW表单向导设计完表单维护功能后,除了可以直接在线运行外,还可以进行代码生成,可以生成完整的Java、JSP 代码并自动进行Struts Config配置,直接编译便可以运行,运行效果与在线运行效果完全一致,Java代码基于Struts结构, 为行业标准,学习成本低。

VisualWeb-表单维护

通过表单维护向导,可以几分钟内快速设计一个包含完整的表单维护功能,提供了30余种页面组件,可以完全在线定义页面布局。可以通过向导创建数据库(每个数据组件对应数据库表的一个字段)

图:在线表单定义界面
每个数据字段属性中包含页面校验设置和创建数据库表的字段属性
1
通过表单维护向导几分钟可以完成一个标准的表单维护功能
1
维护界面
1
录入界面

VisualWeb-主从表

主从表主表是表单维护,从表采用Rich Client方式的DataGrid,可以实现页面不刷新批量提交,支持键盘操作。
1

VisualWeb多表查询向导

提供了查询调试界面,几分钟可以完成一个查询列表界面,可以写任意复杂的SQL语句
1
多表查询设计界面

VisualWeb-DataGrid

DataGrid是使用富客户端技术,使用Ajax实现的表单维护功能,DataGrid可批量提交,修改,删除数据
可以批量倒出与倒入Excel数据,支持键盘操作,
行间的字段支持计算表达式。
支持设置对列进行统计
1

表单提供的主要组件

VisualWeb表单中提供了30多种满足各种不同功能的组件,下面介绍几个

  1. 1)TAB组件,可以设计任意多个tab,tab里可以是一个数据页面、DATAGRID和URL

1

  1. 下拉树组件,系统管理里提供了下拉树的维护

1

  1. 数据字典组件,维护ID,NAME,如下面的维修类型,系统管理提供了维护界面

1

  1. 表单字典与富下拉:表间字段是用来实现一个表单的外键与另一个表单关联,是EMSFLOW平台中对选择组件的扩充,表单字典显示效果是普通下拉,富下拉是跟表单字典一样,只不过显示变成了Rich Client形式下拉

1

  1. 文件上传组件,文件上传组件可以选择保存到文件目录或者数据库表中

1

自定义表单的权限控制

自定义表单除了灵活性外,安全性也是很重要的,EMSFLOW自定义表单提供了权限控制界面,可以让用户自己对表单的每个字段的访问都按角色或者部门来设置权限。

  1. 字段权限:如下图,可以为数据页面、查询、列表页面 按部门或者角色定义每个字段的访问权限

是用户在线控制字段级权限
1

  1. 数据权限:如下图,可以在查询页面按部门或者角色设置每个查询字段的初试值,可以控制每个用户登陆后查看到不同的数据,是行级权限控制。

1

VisualWeb统计报表-自定义报表

VisualWeb统计报表是可完全在线定义的Web报表,支持复杂的数据展现和Chart图形显示。
1
统计报表特点:

统计报表设计界面
1

                                     报表定义界面

报表设计主要步骤

使用步骤1:在线调试查询语句
1
步骤2:定义字典翻译,选择查询条件页面字段
如图:定义哪些数据需要用数据字典或者表单字典翻译,如一条记录的回购类型的数据如果不翻译,则数据为:1 ,加了字典翻译后,则显示为‘买入回购国债’
1
步骤3:编辑查询统计属性.
确定报表的行字段与列字段,第一个被选取行字段是报表行字段,值字段为列字段;如果有第二个被选取的字段,则与值字段组合形成报表列字段

1

报表提供的属性

  1. 可以任意定义报表的行与列显示内容与统计,并且提供多种方式来设置每个单元格的内容

1

  1. 倒出excel.有两种倒出方式,直接倒出和按模板倒出。

1

  1. 可以为报表行增加交叉表头

1

  1. 可以定义报表的图形显示,并且自己控制图形的显示纬度与图形参数

1

  1. 可以通过为行列设置条件定义本行与本列符合条件 数据的显示颜色

1

  1. 可以直接使用html打印来打印报表,也可以倒成excel后打印

1

  1. SQL输出. 每个单元格都可以通过SQL语句从数据库中取数据,并显示出来

1

灵活的流程表单

特性1:功能强大的自定义表单,几分钟完成一个表单定义
特性2:流程中支持任意多个表单、表单间数据任意传递
特性3:流程中任意控制限表单字段访问权
特性4:表单固定部分与变化部分分离,减少表单变更

自定义表单

组件化(构件化)在线自定义表单界面,几分钟完成一个功能强大的表单定义,如图为定义界面
1

流程中支持任意多个表单、表单间数据任意传递

1个流程可以支持任意多个表单,如图,流程包含合同表和用户表2个自定义表单,表单可以设置初始值,也可以从系统或者前面的表单读取数据
1

如下图:在流程中表单任意初始流程数据或者访问表单数据,还可以进行值的计算
1
运行流程的时候,表单自动设置为流程数据
1

流程中任意控制限表单字段访问权

可以把流程表单中的任意一个字段设置为只读或者隐藏,这样,执行本活动的人只能查看或者不能查看本字段
如图,设计时期,把流程中表单字段设置为只读或者隐藏,还可以加上初始值
1
如图,运行时期,合同名称和合同标题字段都变成只读,并且设置了初始值
1

表单固定部分与变化部分分离,减少表单变更

在工作流管理系统中,有3个部分属于经常变化的部分:1:流程的流转,2:任务的分配与完成,3:流程的表单。工作流表单一直是开发工作量大而且经常易变部分,而在EMSFLOW流程
管理平台中,这些问题都迎刃而解。
现在一般的工作流系统都把工作流中的表单开发成一个完整的表单,而如果这里的审批流程的顺序稍微做一下调整或加一个审批环节,
就得重新修改流程与表单,工作流产品的价值根本无法体现。
1
如图所示,这是一个请假申请的表单,它由2部分组成,上面为表单基础信息,下面部分为表单的审批信息,普通的工作流系统都把它当做一个完整的表单来开发。 而EMSFlow产品是把基础表单与审批部分表单分开,定义表单的时候定义基础部分表单,而审批表单是根据审批流程而产生的,最后生成报表,由2部分表单组合成一个完整的表单,
这样审批流程有任何变动,都会自动产生出相应的表单,而不需要修改任何表单信息,大大提高了应用的灵活性。
如下图,是EMSFLOW 自定义表单生成的界面,只包括上图需求表单的基础字段部分
1
下图则为请假表单的审批流程
1
经过上图审批流程的审批,形成了如下图的审批信息,审批路径如上图绿色线所走过的路径
1
如上图,为EMSFLOW表单在请假流程中实际执行的数据,由上部分的基本请假信息和下部分的审核信息组成,审核信息是根据
每个步骤的审批信息动态生成,如果审批流程有任何变化,审批信息都会动态更新。而不需要重新编写表单代码,EMSFLOW中的表单通过自
定义表单完成,建立表单模型不需要任何编码工作,可以大大提高工作效率。

分支模式(SplitMode)和聚合模式(JoinMode)


工作流中的流程状态流转实现大部分都是通过活动的分支模式与聚合模式以及连接线上的条件来实现流程的流转组合实现,下面我们将要结合EMSFLOW流程管理平台来介绍一下
这2种模式的基本算法与使用。
1
图:人工活动的聚合分支属性页,用来设置聚合分支的参数

分支模式(SplitMode)


分支模式,表示该活动结束后,它的后继活动的触发情况。它包括“全部分支(AND)”、“单一分支(XOR)”:
1. “AND”型分支模式
表示该活动结束后它的所有后继活动将同时被触发。
2. “XOR”型分支模式
如果该活动的分支模式为“单一分支”,那么引擎会根据由该活动“射出”的连接线上的条件进行判断,决定该触发哪个后继活动。具体分为下面三种情况:
1) 满足条件的连接线所指的活动被触发;
2) 如果有若干个连接线上的条件都满足,那么比较连接线上的优先级,优先级高的那条连接线所指的活动将被触发;
3) 如果连接线上的条件都不满足,那么取“默认值”的那条连接线所指的活动将被触发。
【注】活动的“分支模式”为“单一分支”时,由它射出的连接线有且只有一条线的取值是“默认值”。
【示例】
1. “AND”型分支模式示例
如图1所示,由于人工活动1的分支模式是“全部分支”,那么当人工活动1完成后它后继的所有活动(人工活动2、人工活动3、人工活动4)将同时被触发。
1

图1 “全部分支”型分支模式

2. “XOR”型分支模式示例
1) 手工判断
由该活动射出的连线上只有一个满足条件时如果分支类型为XOR,并且Transition上没有设置条件(设置为人工活动类型),则该活动到下一步执行为手工判断执行.
1

图2 手工判断“单一分支”型分支模式

2) 条件判断:由该活动射出的连线上有多个,并且分支类型为XOR时,如果连接线上有条件,则按照条件判断来决定下一步骤走哪条分支
1

图3 条件判断“单一分支”型分支模式
如果有多个满足条件,则走优先级别高的条件,如果优先级别相同,则由系统自动判断下一步骤所走的路线.
如上图3 所示,由于“A” 活动的分支模式是“单一分支”并且在处理的过程中“num==1”,尽管由A指向B和C的两条分支都满足条件,但指向B的优先级
大于指向C的优先级,因此“B”活动被触发。

3. 组合式判断

对于情况稍微复杂一点的,我们可以把几种情况组合起来使用,例如下面这个分支,是手工判断和条件判断组合,主管审批到下一步骤,是手工判断,是否需要上级主管审批到下一步骤,为条件判断,总经理审批到下一步骤为手工判断,组合起来使用,可以实现比较复杂的业务。
1
 

聚合模式(JoinMode)


有分就有聚,同理,聚合模式表示该多路活动入口分支触发它的的方式。它包括“全部聚合(AND)”、“单一聚合(XOR)”,如果只有一个活动入口,则不聚合模式不起作用。
1. “全部聚合”型聚合模式
表示该活动必须等到它的所有前驱活动全部完成才可以触发。
2. “单一聚合”型聚合模式
表示当该活动的若干前驱活动中只要有一个满足条件的活动完成,该活动即可被触发。
3. “按指定数量”型聚合模式
表示当该活动的若干前驱活动中完成的活动达到指定的聚合数量,该活动即可被触发,比如聚合数量为2,则前驱活动中只要完成2个,该聚合活动便启动。
【示例】

1. 全部聚合型聚合模式示例
表示该活动必须等到它的所有前驱活动全部完成才可以触发
如图4所示,“人工活动5”的“聚合模式”设置为“全部聚合”,那么只有在它的前驱“人工活动2”、“人工活动3”,“人工活动4”都完成后,“人工活动3”才可以运行。
1

图4 “全部聚合”型聚合模式

2. “单一聚合型聚合模式示例
如图5所示,由于“人工活动3”的“聚合方式 ”设置为“XOR(任意一个)”,那么根据上面的算法说明,当“人工活动2,3,4”中的任意一个完成后,“人工活动5”就可以运行了,本例是人工活动4完成后就触发人工活动5,而无需考虑“人工活动2”或“人工活动3”是否完成。
1

图5 “单一聚合”型聚合模式
 3. “按指定数量聚合型聚合模式示例

以上只是简单的介绍了EMSFLOW工作流实现流程流转的一些算法,更多的扩展方法我们在高级教程中介绍,如果您对此感兴趣,请与我们联系。

任务的分配与完成策略

1
图:任务的分配与完成策略设置
1
图:执行人员选择

任务的分配与完成应该是工作流里面最常用到的功能,灵活性要求也最高,下面我们结合执行者设置来说明分配与完成策略。
分配策略:指的是当一个任务分配给一个或多个部门/角色/人员的时候,任务应该如何分配
完成策略:指的是任务分配给多个人以后,几个人完成任务才算这个任务完成,例如任务分配给5个人以后,3个人完成任务便算任务完成,便是一种完成策略。
动态分配策略
现在工作流的需求也要求越来越灵活,EMSFLOW也提供了2种运行时期动态的任务分配策略,来满足不同的需求。
   运行时期动态分配下一部执行人员:指的是系统运行时期由本活动执行人员来指定下一步的执行者,如果指定了多个人员,完成策略同样对动态指定有效。
   流程启动时动态分配所有人工活动的执行人员:指的是流程在启动活动的时候,可以为每个人工活动动态设置执行人员,如果没有动态设置,便使用设计时期指定的执行者,完成策略同样对动态指定有效。

1

分配策略(AssignmentStrategy)

1
任务的分配策略通常相对简单,因为主要的任务执行是由完成策略来控制,EMSFLOW工作流提供了2种任务分配策略。如图。
分配所有人员:如果活动有多个执行者,或者包含角色,部门的时候,则会给所有的执行者分配一条任务(部门为本部门所有员工,角色为本部门该角色所包含的员工)
不管设置的是角色、部门,还是人员,任务分配的时候,都是以人为单位的。例如:
值班主任角色包括2个人员,则任务分配的时候是分配给这2个人。 如例:任务分配后,
角色所包含的2个人员都被分配了任务
1
分配任意一个:如果活动有多个执行者,或者包含角色,部门的时候则会分配所有执行者中的随机选择一个来分配任务。

完成策略(CompletionStrategy)

完成策略决定着一个活动需要多少人员来执行,当一个活动的执行人员达到完成策略设置的数量,该活动便完成,而被分配任务的未执行的工作项都被设置为关闭中断状态,不需要再执行

1
任意完成一个:本活动所有被分配任务的人员,任意一个完成工作项,则完成本活动,启动下一活动,所有其他未执行的工作项状态被设置为4(关闭中断)
必须所有完成:必须所有分配任务的人员都完成,本活动才能完成,如例子:

1
按完成数量:根据指定的数量来控制活动的完成,人员的任务完成数量达到指定的数量,活动便完成,不受任务分配数量的影响,适用于大数量的人员分配,比如,执行者是一个部门,而部门的人员一直在变动,只需要指定具体的数量,便可以不受人员变动的影响。
按完成的百分比:根据根据任务分配数量*百分比来算出完成的数量,来控制活动的完成,比如,一个活动,分配给了10个人执行,完成策略是按完成的30%,则任务完成数量=10*30%=3个,3个人完成任务便完成本活动。

运行时期动态分配下一部执行人员

1
在设计时,指定哪一部需要动态指定,在转移线中设置,如图
1
运行时期,执行一级审核活动的时候,便会出现如图中红色部分的人员设置框,设置动态指定活动的人员

流程启动时动态分配所有人工活动的执行人员

这是提供的一个比较灵活的功能,可以在流程启动的时候为所有人工活动动态指定执行人员,如例:
1
启动时动态设置人工活动执行人员
1
设置后的人工活动颜色会变
流程启动后,动态分配的3个人都分配了任务
1

EMSFLOW工作流的回退

回退算法一直是工作流引擎中比较复杂的部分,一般的工作流不支持回退或只支持回退到上一步,EMSFLOW工作流引擎支持任意步骤的回退操作,下面我们将以结合例子做介绍。
场景1:如果是从并流中的一个节点开始回退:正运行的其他并点将被关闭,回退开始点和回退目标点都有状态记录,重新执行的时候,并1,并2都会被重新执行。
本例中,将从并1点回退到经理审核点,并2点将被关闭
1
1
使用客户端执行回退操作
1
回退完成,各活动状态被重新标识
1
重新执行经理审核,并1,并2都被重新执行,回退的记录可以通过工作流管理界面查询

场景2:如图:从总审回退到并1点与从总审回退到并2点对分2的join处理不同
回退后重新执行的时候
总审-à并1: 分2的流入节点只要一个完成便启动
总审-à并2: 分2的流入节点要副总审核与并3节点都完成才能启动

1
1
1
总审-à并1: 分2的流入节点只要一个完成便启动

1
总审-à并2: 分2的流入节点要副总审核与并3节点都完成才能启动
1
总审-回退到并2后重新执行,副总审核与并3都执行,才能启动分2
1
工作流活动执行过的状态都可以使用管理界面查询
总结:EMSFLOW工作流引擎支持任意步骤的回退,回退后对各分支与聚合的处理方法与正常执行一致,回退算法要处理的场景很多,我们不一一介绍,因为在使用的时候,是感觉不到内部的处理,与正常操作一致,使用方便

EMSFLOW工作流对系统数据与业务数据的访问

特点1业务表单数据与工作流系统数据分离,大大提供了工作流数据处理的灵活性(传统的工作流都把业务表单数据定义在工作流的相关数据中,使用很不方便,查询和维护都很复杂,适用性不高)。
无论是使用EMSFLOW的自定义表单还是使用自己开发的的表单功能,业务数据都是单独保存,但EMSFLOW工作流访问业务数据的时候可以象访问工作流系统数据一样访问,方便灵活,简单易用,大大提高了业务数据的实用性与可管理性。
特点2可以直接在见Studio中定义对本流程和所有子流程的业务数据与工作流系统数据进行访问
我们将结合例子来介绍工作流中的数据问, 这里介绍的是在流程定义工具中直接访问业务数据与系统数据,在程序中访问可以直接参考API文档

场景1:自动活动中对系统数据的访问

如图:是一个包含子流程和一个邮件发送自动活动的流程,在编辑邮件发送内容和发送对象的时候,都可以直接访问流程和子流程中的
1
图:对系统数据访问流程

1

图:对系统数据和业务表单数据访问的编辑页面

1
如图,流程下拉列表可以选择本流程和所有的子流程
1
数据类型中可以选择需要访问的数据类型:
表单数据—为业务表单数据,选择后,数据名称中将列出业务表单中所有字段

流程数据—为流程相关的数据,这里可以访问的包括实例代码,状态等
1

 

活动数据—可以选择不同的活动中的数据
1

 

流程启动者—启动流程的人员,可以选择人员的ID、名称、EMAIL等

1

 

活动参与者,活动执行者—界面基本一致,区别在于活动参与者是所有被分配了任务的人,不一定执行了任务,执行者是所有活动执行人员
如果有多个活动执行者,返回者将以 ‘;’进行分隔如  ‘admin;user1;user2’

 

1

 

子流程数据访问-选择子流程后,界面操作都一样,数据名称中的数据项都换成了子流程的内容
1

 

下面我们以这个邮件发送的实际的例子来演示对系统和业务数据的访问
1
如上图,是一个设置好的EMAIL发送的内容,流程实际运行后,都换成了系统数据

1
图:发送到的目的地也是访问的工作流系统数据

1
图:流程执行后,实际收到的邮件内容
从上面可以看到,EMSFLOW工作流可以非常灵活的访问系统和业务数据,而且在界面上通过简单的设置就可以完成,不需要编写任何JAVA代码

场景2:活动流转中通过的系统和业务数据访问来判断一下步的走向

活动的下一步走向分2种,缺省是人工活动,在界面上直接选择下一步,还有一种就是根据条件进行判断,如果连接线中的条件满足,则走本条,否则走缺省的分支。
1
图:根据条件判断来决定下一步的走向
1
图:文档评审子流程
如上图,我们可以看到对系统数据访问的界面与自动活动中一致,我们不再介绍,这里的表达式中的条件执行如果为true,则走本分支,如上图,表达式的意思是
如果文档审批子流程审批通过(状态=5 表示完成),并且请假表单中天数>3 则走人工活动3
不满足,走人工活动4

 

场景3:执行者设置中的流程启动者和活动执行者

 

1
与场景1,2基本一致,这里就不过多介绍

EMSFLOW工作流引擎可灵活扩展

插件式功能模块管理

EMSFLOW工作流引擎采用插件式引擎管理,客户有不同的需求的时候可以对引擎中某个插件进行扩展开发升级,如下图,可以对10多种功能插件进行扩展开发。

1
EMSFLOW工作流可扩展插件

事件监听机制提高扩展灵活性

EMSFLOW提供事件监听机制来提高引擎的可扩展性,对引擎流转的主要动作事件源都提供了事件监听,事件源与监听者之间的松散耦合性,可以灵活地增删事件源与监听者,而不影响其它模块,具备良好的可扩展性,便于升级事件服务,便于增加新的功能,多线程并发执行
异步应用调用和回调
1
EMSFLOW工作流引擎事件监听示意图

系统管理

组织机构管理

EMSFlow提供了功能强大的组织机构管理,支持树形的组织机构,并且定义了灵活的群组,可以支持一段时间内的临时部门,比如一个项目组。组织机构可以在界面上直接定义任意级别的组织机构,不限定级别的级数。

1

权限、菜单管理

EMSFlow流程管理平台提供了完善的功能权限和数据权限管理。

  1. 功能权限
     指是一个角色或用户否允许操作的某个具体功能,体现为系统中的菜单项或者是页面上的一个链接(点击),对于菜单,如果不具有该功能权限,则登录后不显示对应菜单项,对于页面上的链接,如果不具有该功能权限,则点击后出现页面提示"你没有使用该功能的权限"。
  2. 数据权限
    一个角色或用户操作一个功能中允许操作的数据范围的大小,例如对于用户甲和用户乙,同样具有查询客户需求反馈的功能,用户甲为客服中心的客服处理人员,可以查询公司所有部门的需求与反馈,用于乙为某个业务部门的客服处理人员,则只能查询属于本部门的客户需求与反馈。
  3. 菜单管理

系统缺省可以支持定义3级菜单,可以灵活的在线定义菜单,不同角色或用户可以分配不同的菜单,可以与功能权限结合控制菜单的使用权限,可以定义不同的菜单风格,用户可以选择自己喜欢的菜单风格。
1

EMSFLOW平台特性列表

EMSFlOW工作流-可视图化J2EE/JAVA工作流引擎


特性名称

成熟度

在线流程设计(Java Applet)

成熟

可视化、图形化流程设计

成熟

流程所有的执行人员可在启动的时候指定

成熟

活动执行人可在运行时动态设定

成熟

支持人工协作活动和自动活动、路由活动

成熟

支持按业务规则和条件表达式的流转

成熟

提供Copy,Paste,undo,redo的能力,增强易用性

成熟

流程模板定义时选择生成新版本

成熟

浏览历史版本, 启用历史版本

成熟

 

 

可视化、图形化流程跟踪、监控

成熟

流程的启动、暂停、终止管理、删除

成熟

流程和活动的委托,转交 成熟

成熟

支持流程的循环、分支、并发

成熟

支持自由流

成熟

支持任意步骤工作流回退和任意节点跳转激活

成熟

支持子流程

成熟

支持主送、抄送、会签、和不定流程

成熟

支持监管者催督办 成熟

成熟

活动的时间约束(如超时处理)

成熟

自动活动构件库

成熟

活动改派

成熟

流程和流程设计元素可以通过元件库管理复用

成熟

层级化的父子流程跟踪能力

成熟

流程定时或由外部事件激发运行

成熟

 

 

自定义表单(VisualWeb)

成熟

表单定义和自动生成 成熟

成熟

表单的自定义扩展,如使用自定义JSP

成熟

表单初始化数据设置

成熟

一个流程中支持任意多个表单

成熟

在线动态布局

成熟

页面任意部分颜色和CSS设置

成熟

富文本编辑大大文本存储(CLOB)

成熟

自定义表单代码生成

成熟

定义查询和显示列表页面,任意修改查询显示字段和布局

成熟

 

 

报表管理:

 

交叉表数据显示,Chart图形展现

成熟

流程统计

成熟

任务平均办结周期分析

成熟

任务参与者办理时间分析

成熟

超期任务情况分析

成熟

人员的任务办理数量分析

成熟

人员的任务办理质量分析

成熟

 

 

用户和权限管理:

 

用户、群组管理

成熟

支持动态群组和人员计算扩展函数

成熟

支持流程和部门的分级管理

成熟

支持使用部门和职务岗位

成熟

支持权限的集中管理

成熟

支持多身份验证级别和SSO

成熟

 

 

业务数据与工作流系统数据分离

成熟

业务表单数据与审批数据分离

成熟

工作流引擎与其他系统与组织机构资源结合

成熟

在流程定义工具中对流程与子流程的系统数据与业务表单数据访问计算

成熟

在流程定义工具中对子流程进行数据传递

成熟

 

 

可配置的工作流缓存

成熟

组织机构可替换

成熟

与应用系统无缝集成

成熟

EMSFlow VisualWeb-J2EE构件化快速开发平台


特性名称

 

可视化页面设计

成熟

构件化页面设计方式

成熟

在线页面构件组装设计、运行,完全BS操作

成熟

在线页面构件属性编辑

成熟

代码生成(JAVA、JSP、自动配置)

成熟

支持Oracle,SqlServer,DB2等多种数据库

成熟

支持数据页面、查询页面、列表页面、DataGrid多种页面类型

成熟

支持页面作为页面构件进行嵌套使用

成熟

支持自定义新的页面类型、自定义新的页面构件开发

成熟

 

 

丰富的页面构件库(30多种页面构件):

成熟

页面构件支持数据绑定

成熟

支持主键设置、支持自动产生序号设置

成熟

支持不能为空、输入类型校验(JS校验)

成熟

支持文本框,多行文本编辑,富文本编辑构件

成熟

富文本输入,支持BLOB,CLOB等大文本

成熟

选择框(下拉框、单选框、多选框)选项与在线切换

成熟

数据字典构件与表单字典构件(支持下拉、单选、多选显示方式)

成熟

日期输入构件

成熟

文件上传构件、图片浏览构件

成熟

数据树构件与后台管理

成熟

新闻显示页面构件与后台管理

成熟

提交按钮页面构件,支持业务构件开发

成熟

边框构件

成熟

 

 

支持CSS样式,可以自己调整页面构件的样式

成熟

功能强大的表格编辑,可在线实现任意布局

成熟

提供DataGrid模板,可直接设计DATAGrid功能

成熟

表单定义向导,可直接生成表单增加/修改/删除/查询完整的功能

 

多表查询向导,根据一条SQL语句生成完整的产品功能

成熟

提供WEB开发框架构

成熟

支持AJAX

成熟

 

 

VisualWeb功能支持发布到菜单

成熟

 
EMSFlOW业务构件-成熟的业务构件库


特性名称

 

组织机构管理构件(支持任意级别树形显示)

成熟

角色管理与权限分配

成熟

用户管理

成熟

菜单定义与显示构件(支持3层结构:Tab与下拉显示风格)

成熟

功能权限管理

成熟

数据权限管理

成熟

数据字典管理

成熟

表单字典管理

成熟

数据树管理

成熟

常用功能设置

成熟

 

 

 

sssss
  • 11111