`

(转贴)用VML开发工作流设计器 UCML.NET工作流管理系统

 
阅读更多

VML - 94KB

(由于要求下载的人很多, 我现传上来供大家下载学习, 点击下载 作者的网站:www.erist.com)

工作流是许多系统中必备的一种功能,而工作流设计器就显示对用户很重要。可视化的设计器对于客户来说就更好了,非常直观,有效果的减少用户的烦脑。

在各种应用中有b/s的系统,有c/s的系统。不同的系统工作流程都是相似的。当今web应用日益广泛,因此本文将讲述如何在web上实现工作流设计器。

由于本人的经验所限,所选技术只在微软路线上。经过查阅资料,发现web上的图形表现形式有svg,vml等等。之所以选择vml是因为它靠浏览器 IE就可以完全支持,不用安装插件,SVG就要安装插件。虽然从一些文章说的,VML已经过时,查看文档大部分是1999年的,但VML作为一种技术,感觉还是成熟的。后来还是选择了VML。

在web上作设计器,图形有了,剩下的就是控制这些图形元素。工作流程有两种基本元素一种我们称之为节点,一点称之为关系(节点间的关系)也就是工作流的流向问题。下面为两种基本形状。

要控制图形,因为VML是一种标记语言,符合基本HTML标记的规范,所有能控制HTML的都可以用来控制VML标记对象。

要实现工作流设计器有几个要点:

1、支持工作流元素的添加、删除、移动。

2、建立节点间的关系

3、将设计好的流程保存到永久物质里(如文件,数据库等)

4、可以从永久数据里读取数据,并表现为图形。

第一点:比较好完成,网络上有较多的脚本控制图形的拖动。

第二点呢,我们采用拖动某个节点的尖头,并绘制线段,当鼠标弹起时,查看当前鼠标下的结象,绘制关系。

数据存储为了方便应用,我们使用XML文件存储(当然,在写这篇文章时,已经完成了数据库的存储,XML只是为了演示方便而作。)数据库的数据与XML的转化可以使用XSD来完成。

为了将XML数据表现为VML标记,我们采用了习惯的作法,XSL可扩展样式,将XML表现为VML标记。

将设计好的图形,保存为数据,我们采用在客户端形成XML数据,传到服务器端。在写文章时,还未完全实现。工作还在继续,也许明天或后天能全部完成。

现在我们先来看一下作好的工作流设计器的样式:

演示地址位于:http://www.erist.com/demo/VMLWorkFlow/WorkFlowDesign.aspx

左边为设计器,右边为工具栏。

可从右边工作栏增加节点,并通过拖动节点间而增加关系。

新增的节点未指定部门,可以点键菜单来指定部门。

源文件已经在文章中打包了,以供下载。

相关文件描述如下:

Control.js 控制图形的脚本

Designer.ascx 用于设计器的控件

EditDepartment.aspx 选择部门的页面

Flow.xsd 工作流原始数据样式

WorkFlow.xsd 转换后的数据格式

WorkFlow.xslt 将XML转为VML的样式表

WorkFlowBLL.cs 业务逻辑层,包含两种数据的转换格式以及从数据中设计工作流位置信息的初始值

WorkFlowDAL.cs 数据访问类,用于从数据库中提取数据。

WorkFlowData.xml 用于演示的XML数据源

WorkFlowDesign.aspx 设计器的承载页面。

如果各位有什么好的意见和建议可以论坛发表,有什么问题也可以提。

我去吃饭了,改天聊。

0
0
0
(请您对文章做出评价)
posted on 2004-06-09 14:15 josson 阅读(6043) 评论(37) 编辑 收藏 网摘 所属分类: vs studio.net(asp.net ,C#)

<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.cnblogs.com/josson/articles/14447.html" dc:identifier="http://www.cnblogs.com/josson/articles/14447.html" dc:title="" trackback:ping="http://www.cnblogs.com/josson/services/trackbacks/14447.aspx" /> </rdf:RDF> -->
#1楼 2004-07-15 18:05 Rover

评论

1116791
Cool!
回复引用

#2楼 2004-11-13 23:49 erist[未注册用户]
老兄,转我东西也不吱一声。

请大家去网站:www.erist.com

回复引用

#3楼[楼主] 2004-11-15 14:26 josson
不好意思, 老兄, 我只是想将它收藏, 以备查用, 并不想盗你的版, 你网站的链接不是放在里面吗.
回复引用查看

#4楼 2004-12-16 10:11 weak
能把代码实例发给我吗?我去下载www.erist.com 没有找到,谢谢
回复引用

#5楼 2004-12-16 10:16 weak
我的邮箱是wwwqqqxxx@126.com
回复引用

#6楼 2004-12-16 10:16 weak
能把代码实例发给我吗?我去下载www.erist.com 没有找到,谢谢
我的邮箱是wwwqqqxxx@126.com

回复引用

#7楼 2004-12-21 13:57 erist
在艾森软件里。
回复引用

#8楼 2005-02-18 15:49 高手啊,佩服佩服
能给我发一份吗?我的邮箱是sdxmcx@hotmail.com万分感谢
回复引用

#9楼 2005-04-19 16:02 yg
有机会也发一份吧。谢谢
yang_2004_yg@sina.com

回复引用

#10楼 2005-06-25 12:32 jussen
to erist :
艾森软件里的连接失效了,能不能也发给我一份,先谢过了
wujunsheng123@hotmail.com

回复引用

to erist :
好东西,不过艾森软件里下载不了,能不能也发给我一份,谢了
luckyzmw@163.com

回复引用

#12楼 2005-07-20 10:15 tomcat[未注册用户]
我也想要,谢谢
zh_h_p@sohu.com

回复引用

#13楼 2005-07-20 15:51 tegger[未注册用户]
我也要,Thx
tegger@sohu.com

回复引用

可以给我也发一份吗~
先谢过了~
wbug@163.com

回复引用

#15楼 2005-08-01 14:31 ming[未注册用户]
我也要喔,先谢了!
minjiang98@163.com

回复引用

#16楼 2005-08-02 20:52 arty[未注册用户]
yfc@seu.edu.cn我也很想要,多谢
回复引用

#17楼 2005-08-02 23:14 老王[未注册用户]
我也很想要,谢谢,whwbj@sina.com
回复引用

#18楼 2005-08-04 22:36 sun[未注册用户]
发我一份,谢谢。sunjunjie@icitic.com
回复引用

#19楼 2005-08-08 15:17 追忆[未注册用户]
给我发一份,谢谢 qinlin@bcactc.com
回复引用

#20楼 2005-10-22 15:49 湘子
能不能发份给偶


…………

^_^
谢谢了


xiangzi@gmail.com

xiang_@hotmail.com

回复引用查看

#21楼 2005-11-20 08:53 王朋[未注册用户]
老姜,在百度上搜到你的blog了,借鉴一下,^_^
回复引用

#22楼 2005-12-28 15:07 mazy[未注册用户]
能给我发一份吗,谢了!
mazy_2008@yahoo.com.cn

回复引用

#23楼 2006-01-11 11:21 duchx[未注册用户]
下载不到,能给我发一封嘛,谢谢

duchxs@126.com

回复引用

#24楼 2006-04-24 09:44 小洋[未注册用户]
下载不到,能给我发一封嘛,谢谢

ojake2005@126.com

回复引用

#25楼 2006-09-28 16:41 huangz[未注册用户]
今天才看到,真是好东西啊,能给我发一份例子代码吗,先谢拉.我的邮箱huangz71@126.com
回复引用

#26楼 2006-12-14 08:59 liuc[未注册用户]
在百度上搜到你的blog了,借鉴一下!
回复引用

看过演示,感觉真是好啊!
请您给我发一份例子代码,好吗?
先谢啦! 我的邮箱: jingcortes@tom.com

回复引用

#28楼 2007-02-25 11:01 kaner[未注册用户]
下载不到
麻烦给我发一封吧
kaner812@126.com
谢谢

回复引用

我都想要啊.给我一份可以吗?
huangyaoen123@netease.com
谢谢!

回复引用

#30楼 2007-03-24 23:10 zhout[未注册用户]
急用,老兄,能不能发我一份啊,这里下载不了
回复引用

#31楼 2007-03-24 23:11 zhout[未注册用户]
急用,给我一份资料啊,我的邮箱 tingting472007@163.com
回复引用

#32楼 2007-04-05 21:29 bolai[未注册用户]
给我一份啊,bolai2008@126.com
回复引用

#33楼 2007-04-13 17:45 ansen[未注册用户]
给我也发一份,xzsdyxm@hotmail.com,谢谢
回复引用

#34楼 2007-05-14 14:49 梦飞[未注册用户]
给我也来一份吧,yy1074@163.com,谢谢
回复引用

谢谢,请也给我一份吧!!
  gaohuizhen1026@126.com
  

回复引用

#36楼 2007-06-12 16:14 Jackson[未注册用户]
俺也想要啊.给我一份可以吗?
zengweihuab@163.com
谢谢!

回复引用

#37楼 2008-03-21 17:21 bpm[未注册用户]
我也想要啊.给我一份可以吗?
masterlife21@yahoo.com.cn
谢谢!

回复引用

UCML.NET工作流管理系统

 

工作流定义

业务过程(Business process)是指为了实现某一业务、战略目标而组合在一起的一组过程或活动。而工作流是业务过程的自动化处理,在业务流程处理过程中,根据一组定义好的处理规则,可以把相关的信息、文档、任务或业务从一个参与者传递到另一个活动的参与者。

简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。

在现代化的组织管理活动中,组织机构与流程运作构成了现代企业内部的垂直管理线路和水平管理线路。其中垂直管理线路明确了组织成员的分工(企业的战略目标、部门的职能和岗位责任等),水平管理线路明确了组织成员的协作,这种既分工又合作的方式,就构成了企业横向与纵向结合的经营与管理模式。

通过现代化的工作流软件技术手段,将这些管理线路规范化、标准化和流程自动化,从而有效地提高业务运作效率,降低成本,为实现企业的战略目标提供保障。

返回

UCML.NET工作流管理系统概述

UCML.NET工作流管理系统(UCML.NET WorkFlow)参照工作流管理联盟(WfMC)标准设计,以业务管理为核心(BPM),以工作流平台技术为依托,可以帮助企业快速构建高效、柔性的业务流程管理系统;

UCML.NET工作流系统具有独立的框架级工作流引擎服务器,由UCML直接生成C#源码,客户可以方便扩展。

UCML.NET工作流管理系统不但涵盖了流程开发、发布、管理配置、运行、监控的整个过程,还提供流程KPI接口,方便对流程五要素指标(时间、质量、数量、风险、成本)及其他KPI指标的采集,为业务流程的管理、监督、考核和优化提供依据。

返回

UCML.NET工作流管理系统详细介绍

UCML.NET工作流管理系统涵盖了从流程开发、发布、管理配置、运行、监控的整个过程,包括如下几个组成部分:

可视化的工作流开发环境

UCML工作流设计支持图形化的工作流定义,可以方便地支持鼠标拖拉处理,UCML工作流设计与UCML业务开发基于一体化的设计环境,与UCML开发平台完美结合,可以实现复杂的业务处理;另一方面,UCML工作流系统运行可以独立于平台之外,与客户现有的应用系统甚至是正在运行的应用系统实现无缝整合。一个典型的流程设计界面如下:

UCML工作流设计主要步骤:

·可视化工作流模型设计
1)工作流活动节点支持人工节点、自动节点、路由节点、子流程节点(流程嵌套);
2)支持活动的串行、并行、条件流转、跳转、退回、撤回、自循环处理;
3)支持节点与、或、异或等输入输出方式定义;
4)任务分配方式支持手工分配、竞争分配、系统配置及智能任务分配等多种分配方式;
5)支持任务超时处理,任务的重新分配;
6)支持任务的主办完成、会签完成、规则完成;
7)工作流模型启动支持人工启动、自动启动两种方式。自动启动支持一次性启动、按周期启动等多种方式;人工启动即可以支持从工作流模型启动,也可以支持通过业务启动流程。

·定义流程状态数据
流程状态数据是指工作流在运转过程中流程流转所需要的保存在流程实例中的数据,流程状态数据一般是影响节点的分支输出条件、
业务单据号、流程的发起者或参与人等数据;

UCML工作流与业务之间采用松耦合方式,流程和业务之间通过流程状态数据进行交互。

·流程下的业务处理
1)流程下各个活动节点即可以调用同一个业务模块,也可以调用不同的业务模块;
2)流程下不同节点可以控制具有不同的动作权限、列权限及行权限;
3)流程下的业务即可以是UCML开发的业务模块,也可以是用户自主开发的业务模块;
4)UCML提供多种标准的业务组件及处理方式供开发者直接使用。

·标准工作流接口
UCML工作流系统具有标准的流程交互接口,如流程启动、挂起、恢复、终止,任务完成、退回、撤回、回滚,分配主办任务、会签任务、知会任务,流程状态数据交互,节点跳转等;在流程运转过程中提供多种事件回调接口,如任务创建时,任务分配时,分配前、分配后,任务完成规则,任务超时等

返回

工作流引擎与服务(WorkFlow Engine)

UCML.NET工作流引擎是一个独立后台服务程序,用UCML工作流开发平台可以直接生成相关工作流引擎源码及.Net项目工程;

UCML.NET工作流引擎负责任务的调度,分配,超时监控,事件控制等工作。UCML工作流引擎采用多线程任务队列、流程实例缓存及定向负载平衡等优化处理策略,经过了大并发、大数据量的实际使用检验,能满足高负载、高并发的需要。

返回

WEB客户端管理

UCML.NET工作流系统提供了标准的业务基础框架,包含了业务运行所需要的绝大部分基础功能组件,是一个功能强大的业务基础平台;开发者不需要写一行代码,只需简单发布,就可以调试、运行业务流程。

UCML.NET工作流系统WEB客户端业务基础框架的主要功能包括:

·组织机构、岗位、人员管理,支持多级组织,一岗多人、一人多岗处理;

·支持外部组织及人员统一管理,实现业务权限、流程权限的统一分配;

·群组(虚拟组织)管理,支持相对角色,如发起人、发起人部门主管等;

·业务权限(访问权限、行权限、列权限、动作权限、控制码权限)管理 ;

·流程权限管理,包括流程的管理权限、发起权限,任务的执行权限、分配权限;

·最终用户可视化自动义流程(Web方式),用户可以方便增加、删除节点,定义分支条件,为不同节点指定调用不同的业务模块,为不同节点分配业务模块上的动作及列权限;

·待办事宜,可以进行任务委托,退回处理;

·手工任务分配,任务签收;

·批量任务审批,一次同时审批多个任务。

返回

可视化的流程监控

及时掌握工作流运行状态是每一个管理者都十分关心的问题,UCML.NET工作流系统提供了方便简捷的WEB工具,可以让管理者可视化地了解每一个流程实例的流转状况。

UCML工作流监控工具可以对运转的流程实例进行监控和干预,可以挂起、解挂流程,终止流程,开发者还可以根据具体的业务需要实现流程的跳转,转发,回退任务等

返回

标准的工作流服务组件

为了帮助客户快速开发,UCML把一些工作流中常用的功能封装成标准组件,开发者直接调用这些组件就可以实现复杂流程的处理,大大提升了工作流的开发效率,这些组件包括:

·手工发送组件

·会签组件

·阅办情况组件

·执行人选取组件包

·图形化流程监控组件

·处理意见组件

·意见跟踪组件

·附件上传组件

·手工分配任务选人组件

返回

流程套路生产线

在制造业里有生产线的概念,每个产品都有自己固定的生产线,通过生产线可以快速组装出产品来。我们得到的借鉴是一定要在自己开发的业务领域内搭建生产线,形成各种生产套路,这个套路不是一条,在UCML工作流开发平台中不仅提供了大量的流程生产线套路,同时开发者还可以根据各种需要定义自己新的生产线套路,从而为特定领域的开发提供大量的、可重用的组件及套路,实现真正的软件开发工业化生产。

返回

UCML工作流系统特点

UCML工作流管理系统参照WfMC标准设计,同时又对国内流程管理进行总结和抽象,更便于国内用户使用和扩展开发。

· 可视化流程定义
可视化的流程设计可以让客户拖拉式地设计流程,大大提升了流程的设计效率,同时也大大降低流程设计难度。

· 可视化的流程监控
使用者可以方便地以图形化的方式察看每个流程实例的运转状况,用不同的颜色区分出每个节点的运行状态,可以方便地掌握整个流程实例运转状态及每个节点的执行状况。

· 具有强大的工作流引擎服务
UCML工作流引擎脱离了UCML开发环境,直接生成源码级工作流引擎;UCML工作流引擎采用多线程任务队列、流程实例缓存及定向负载平衡等优化处理策略,能满足高负载、高并发的需要。

· 松耦合的流程和业务处理模式,方便与其它系统集成
UCML工作流引擎和业务系统之间以接口形式进行交互,保持了流程和业务之间的独立性,提升了系统适应变化的能力;
UCML工作流引擎服务不但可以被UCML生成的业务单元调用,也可以被开发者通过.Net和Java等编写的业务模块调

· 灵活的参与者设置 复杂的任务分配体系
UCML支撑的工作流系统可以由不同岗位、不同部门甚至是打破企业界限的一组人一起协作完成;
工作流任务的参与者既可以支持固定角色,也可以支持相对角色;
工作流的任务分配不但可以支持系统配置、手工指定方式进行任务分配,还可以通过流程回调接口根据企业特定的组织架构及管理规则进行智能任务分配。

· 标准的服务组件可以直接使用
UCML提供了工作流开发过程中常用的、可重用的流程业务组件,如:手工发送组件、会签组件、阅办情况组件、执行人选取组件包、签署意见组件、流程跟踪组件、附件上传组件等,开发者可以直接使用这些组件,提升了工作流的开发效率。

· 丰富的接口可供扩展
UCML工作流系统具有标准的流程交互接口,如流程启动、挂起、恢复、终止,任务完成、退回、撤回、回滚,分配主办任务、会签任务、知会任务,流程状态数据交互,节点跳转等;在流程运转过程中提供多种事件回调接口,如任务创建时,任务分配时,分配前、分配后,任务完成规则,任务超时等。

· UCML业务开发平台超越传统的流程表单设计器 可以满足复杂的业务处理需求
UCML是一个完整的业务基础开发平台,不但可以开发工作流系统,还可以开发各种复杂业务、WEB报表等系统。

· 支持多种数据库类型
可以支持MS SQL Server、Oracle、DB2、Sybase、Mysql等多种主流数据库。

·首家软件生产线技术 打造流程开发专享知识库
UCML在公网上提供了大量的可重用的业务逻辑模型及生产线库,供开发者快速构建自己的业务流程系统。同时开发者可扩展、增加自己的业务逻辑模型及生产线,逐步形成独立的面向领域的生产线及知识库。

返回

UCML工作流功能列表

功能分类

功能明细

说明

流程定义

可视化流程定义

活动节点类型

开始、结束节点

人工节点

自动节点

路由节点

子流程节点(嵌套流程)

流转方式

串行

并行

分支

合并

跳转

退回

撤回

回滚

自循环

输入输出方式

异或(按条件)

输出条件定义

简单条件定义-通过鼠标选择方式

复杂条件定义-通过写C#语法实现

超时处理

流程的备份与恢复

流程的导入与导出

流程状态数据(流程属性变量)定义

流程中的业务

支持单表单、多表单

可以为每个节点指定同一个业务或不同的业务

团队开发管理

Office控件支持

可选

流程运行

工作流引擎运行方式

终端模式

Windows服务模式

流程启动方式

自动启动(定时、循环、周期启动流程)

手工启动-通过流程模型启动业务

手工启动-通过业务程序启动流程

任务分配方式

手工分配-手工指定把任务分配给谁

负载平衡-根据有执行权限人的负载情况分配任务

全部成员-所有有执行权限的人都分配任务

智能任务分配-回调函数分配

任务状态

已分配任务

已接收任务

已处理任务

任务完成模式

主办完成

会签完成

规则完成

参与者

执行人

监管人

督办人

参阅人

委托人

分配者-有权分配任务的人

流程干预方式

启动、终止

挂起、解挂(恢复)

协同工具(可扩展)

UCML协作通-即时通讯

可选

内部消息

短信

可选

邮件

可选

流程监控

可视化流程监控

流程步骤查询

流程日志记录

流程管理

流程权限管理

流程管理者权限

流程启动权限

节点执行权限

节点任务分配权限

待办事宜

分配任务

批量任务处理

签收任务

任务代理管理

可视化流程自定义

系统管理

集团型组织机构

岗位管理

人员管理

一人多岗

群组管理(虚拟组织)

角色权限管理

菜单权限(Access 权限)

数据权限(行权限)

列权限

动作权限

工作日管理

标准工作日定义

节假日定义

个人工作日定义

返回

更多详细资料请参阅:
UCML工作流系统开发在线演示
UCML工作流管理系统技术白皮书

返回

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics