开源工作流引擎Shark入门2——使用JaWE设计一个流程
2009-09-03 14:53
561 查看
XPDL描述了工作流的相关元素,如参与者、活动、活动间的转移、上下文变量等内容,由这些元素组成一个个流程。XPDL是一个xml格式的文件,可以用文本编辑器直接编辑,但这需要对XPDL规范非常熟悉。JaWE是一个图形化的XPDL编辑器,利用这个工具就不需要学习枯燥的XPDL中的xml元素了,在图形界面上用拖拽式的方法就可以设计出我们需要的流程。
本文讲述如何用JaWE设计一个简单的请假流程,这个流程假设由员工提出请假申请,经理进行审批,如果审批通过,员工休假完之后进行销假;如果审批没有通过,员工可以查看经理拒绝的原因。出于工作流系统与业务系统协同运行的原因,假设业务系统有一个对象叫做请假单据,每个对象有一个id,业务系统要把请假单据的id传入流程的上下文,以作为工作流系统与业务系统交互的桥梁。
运行开始菜单|程序|Together Workflow Server CE 2.4-1|TWE|Together Workflow Editor Community Edition,就打开JaWE了,新建一个包(Package),一个包里面包含若干个流程(Process),一个包其实也就是一个xpdl文件,保存为mydemo.xpdl。
在左侧的导航树上,右键点击新建的包,选“Properties”,设置包的一些属性:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-1.jpg)
图1包的属性
在包的属性页上,点击“Workflow Processes”标签页,点击新建元素按钮新建一个流程,在流程的属性页里面,设置属性:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-2.jpg)
图2新建请假流程的属性
在请假流程的“Workflow Variables”标签页设置以下流程上下文变量(其中biz_id代表业务系统请假单据的id):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-3.jpg)
图3请假流程的变量
在右侧的流程图示区域,画出请假的流程,效果如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-4.jpg)
图4请假流程整体图
参与者“申请人”设置以下属性:
id:employee
name:申请人
type:Role
参与者“经理”设置以下属性:
id:manager
name:经理
type:Role
活动“请假申请”设置以下属性:
id:askForLeave_act1
name:请假申请
performer:申请人
start mode:Automatic
finish mode:Automatic
活动“审批”设置以下属性:
id:askForLeave_act2
name:审批
performer:经理
start mode:Automatic
finish mode:Automatic
活动“休假结束销假”设置以下属性:
id:askForLeave_act3
name:休假结束销假
performer:申请人
start mode:Automatic
finish mode:Automatic
活动“查看拒绝原因”设置以下属性:
id:askForLeave_act4
name:查看拒绝原因
performer:申请人
start mode:Automatic
finish mode:Automatic
从“请假申请”到“审批”的Transition比较简单,连上就可以。从“审批”到“休假结束销假”或“查看拒绝原因”的转移是有条件的,下面分别给出这两个Transition的属性图示:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-5.jpg)
图5“审批”到“休假结束销假”的Transition的属性
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-6.jpg)
图6“审批”到“查看拒绝原因”的Transition的属性
这样一个简单的流程就画完了,可以再模拟器中进行模拟流程,也可以用在应用程序中。
本文讲述如何用JaWE设计一个简单的请假流程,这个流程假设由员工提出请假申请,经理进行审批,如果审批通过,员工休假完之后进行销假;如果审批没有通过,员工可以查看经理拒绝的原因。出于工作流系统与业务系统协同运行的原因,假设业务系统有一个对象叫做请假单据,每个对象有一个id,业务系统要把请假单据的id传入流程的上下文,以作为工作流系统与业务系统交互的桥梁。
运行开始菜单|程序|Together Workflow Server CE 2.4-1|TWE|Together Workflow Editor Community Edition,就打开JaWE了,新建一个包(Package),一个包里面包含若干个流程(Process),一个包其实也就是一个xpdl文件,保存为mydemo.xpdl。
在左侧的导航树上,右键点击新建的包,选“Properties”,设置包的一些属性:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-1.jpg)
图1包的属性
在包的属性页上,点击“Workflow Processes”标签页,点击新建元素按钮新建一个流程,在流程的属性页里面,设置属性:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-2.jpg)
图2新建请假流程的属性
在请假流程的“Workflow Variables”标签页设置以下流程上下文变量(其中biz_id代表业务系统请假单据的id):
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-3.jpg)
图3请假流程的变量
在右侧的流程图示区域,画出请假的流程,效果如下:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-4.jpg)
图4请假流程整体图
参与者“申请人”设置以下属性:
id:employee
name:申请人
type:Role
参与者“经理”设置以下属性:
id:manager
name:经理
type:Role
活动“请假申请”设置以下属性:
id:askForLeave_act1
name:请假申请
performer:申请人
start mode:Automatic
finish mode:Automatic
活动“审批”设置以下属性:
id:askForLeave_act2
name:审批
performer:经理
start mode:Automatic
finish mode:Automatic
活动“休假结束销假”设置以下属性:
id:askForLeave_act3
name:休假结束销假
performer:申请人
start mode:Automatic
finish mode:Automatic
活动“查看拒绝原因”设置以下属性:
id:askForLeave_act4
name:查看拒绝原因
performer:申请人
start mode:Automatic
finish mode:Automatic
从“请假申请”到“审批”的Transition比较简单,连上就可以。从“审批”到“休假结束销假”或“查看拒绝原因”的转移是有条件的,下面分别给出这两个Transition的属性图示:
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-5.jpg)
图5“审批”到“休假结束销假”的Transition的属性
![](http://p.blog.csdn.net/images/p_blog_csdn_net/tsun7263/EntryImages/20090903/Shark2-6.jpg)
图6“审批”到“查看拒绝原因”的Transition的属性
这样一个简单的流程就画完了,可以再模拟器中进行模拟流程,也可以用在应用程序中。
相关文章推荐
- 开源工作流引擎Shark入门3——与业务系统结合的一个demo
- Altium Designer入门使用3--印制电路板设计流程与经验之谈 2
- 使用silverlight构建一个工作流设计器(十三)(动态生成流程图片下载_上)
- 使用silverlight构建一个工作流设计器(十四)(动态生成流程图片下载_下)
- Altium Designer入门使用3--印制电路板设计流程与经验之谈 2
- 三款工作流引擎比较:WWF、netBPM 和 ccflow 下面将对目前比较主流的三款工作流进行介绍和比较,然后通过三款流程引擎分别设计一个较典型的流程来给大家分别演示这三款创建流程的过程.这
- [开源] AccountMaster - 账户管理 -> 项目介绍及用户使用流程设计
- 机器学习小试(6)使用TensorFlow跑通一个通用增量学习流程-设计配置文件
- [开源] AccountMaster - 账户管理 -> 项目介绍及用户使用流程设计
- Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
- 开源工作流引擎Shark入门4——任务的分配
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
- 使用silverlight构建一个图形化流程设计器(二)(附源代码下载及在线演示)
- 使用silverlight构建一个图形化流程设计器(一)(源代码下载及在线演示)
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- Altium Designer入门使用2--印制电路板设计流程与经验之谈
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- 开源工作流引擎Shark入门1——安装与配置
- 简单工作流引擎是按一个单据的(类型),单据的(主键) 来处理流程步骤的,这个就是工作流设计的核心思想
- 【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形 【转】