资源描述
驰骋工作流程引擎:简单来自背后的力量 http://ccflow.org
驰骋工作流程操作手册
.net 工作流引擎 V4.0
用
户
手
册
驰骋软件公司2003-2009 2009-05 更新
目 录
===================
1工作流引擎前言: 3
2《流程业务人员设计手册》 3
2.1简单的流程开发过程 3
2.2设计流程框架 3
2.3表单设计 4
2.3节点属性设置 6
2.3.1节点属性 7
2.3.2岗位(能够访问此节点的岗位) 7
2.3.3设计单据文书 7
2.3.4调用外部程序 8
2.3.4设计事件 8
2.4流程属性 8
2.4.1运行流程 8
2.4.2流程检查 9
2.4.3报表定义 9
2.4.4数据转出定义 10
2.5与现有的系统耦合 10
3《流程用户操作手册》 10
3.0 概要介绍 10
3.3流程的基本操作 10
4《驰骋工作流引擎二次开发手册》 17
4.1什么是流程的二次开发? 17
4.2二次开发常见的问题? 17
4.2.1与我的系统实现接口的步骤是什么? 18
4.2.2为什么这样设计接口? 18
4.2.3怎么调用节点事件? 18
4.2.4设置调用(启动)外部程序 19
4.2.5设置流程数据转出接口 20
4.3类设计与数据库设计命名规则 21
1工作流引擎前言:
本用户手册包含了,《流程业务人员设计手册》《流程用户操作手册》《流程二次开发手册》三大部分,详细的介绍了整体工作流引擎设计的结构、功能、性能、操作、应用。迅速的帮助您在短时间内完成构造本单位的内部管理信息系统。
在网站上,有详细的、大量的、流程设计、应用案例,也有很多的视频录像。
驰骋工作流引擎组成:
流程后台设计器,流程前台运行,客户端消息提醒工具。
2《流程业务人员设计手册》
2.1简单的流程开发过程
一个简单的流程开发过程(采购申请单)
手工写一个死的工作流程,非常的费劲并且,不容易维护,让用户获的良好的操作体验非常困难。
下面介绍利用驰骋工作流引擎设计一个简单的工作流过程,此过程帮助您了解什么是工作流引擎,什么是流程,以及如何使用工作流程这个强大的工具来开发您的应用,来规范您的业务,提高内部单位的管理效率。把单位的业务由手工管理实现流程管理的基本变革。
以下4个步骤帮助您建立一个流程系统。
第1步:分析业务需求,画出流程图,设置岗位.
第2步:设计表单,设计单据(文书), 设置方向条件.
第3步:测试与运行流程.
第4步:设计流程报表.
2.2设计流程框架
整体框架,分为三个部分
2.3表单设计
充分利用表单设计功能,您可以满足多种类型的客户需求的表单样式。
从数据格式上说:
系统为您提供:普通类型字段、外键字段、枚举字段。可以满足任意单据需要的格式。
从表单板式上说:
可以设计成4列格式、两列格式、大块文本格式、分组格式。
标准的4列格式如下:
包含两列格式的表单:
大块文本格式:
分组格式:
字段分组:就是把类似的字段放在一起,让用户操作更友好。比如:我们纳税人设计一个基础信息采集节点。在登记纳税人基础信息时,我们可以把基础信息、车船信息、房产信息、投资人信息分组:
如何实现分组格式?
约定格式如下@从分组的字段名=分组名称。
比如:@NodeID=节点基本信息@LitDay=考核设置。就显示出来如下表单。
2.3节点属性设置
在节点上点右键,就出现如下节点属性:
2.3.1节点属性
2.3.2岗位(能够访问此节点的岗位)
在节点上右键 =》岗位
2.3.3设计单据文书
在流程的各个环节,您经常遇到需要按照固定的格式打印的情况,系统称为他文书单据。本系统为您提供的定义格式非常灵活,定义一个单据的步骤如下。
首先选择用word 画出来一个模板,然后把他存储为.rtf 格式。
其次在空白的地方填写好变量,所说的变量就是您在设计文书时的英文名称。
普通字段的格式如下:<ND001.qingjiayuanyin> 输出请假原因。001表示节点的编号,您可以在节点的属性里面可以看到它。审核节点:<C.ND002.Note> 输入审批意见。两者不同的地方就是加 “C.” 表示它是审核节点数据。
特殊用法:在不同的场合下,对字段的输出有不同的要求。以下是输出金额字段。
金额类型:
<ND1001.jiekuanjie> 输出事例: 200.1201 // 普通的一个数值类型
<ND1001.jiekuanjie.RMB> 输出事例: 200.12 // 金额格式。
<ND1001.jiekuanjie.RMBDX> 输出事例: 贰佰零壹角贰分 // 人民币大写。
日期类型:
<ND1001.RDT> 输出事例:2009-05-29 // 系统的存储格式。
<ND1001.RDT.Year> 输出事例:2009 // 输出年度。
<ND1001.RDT.Month> 输出事例:05 //输出月份。
<ND1001.RDT.Day> 输出事例:29 //输出日期。
<ND1001.RDT.NYR> 输出事例:2009年05月29日 // 系统的存储格式。
<ND1001.RDT.NYRDX> 输出事例:贰零零玖年无月贰十九日 // 系统的存储格式。
输出外键标签值:
<ND10001.FK_Dept> 输出事例: 01 // 部门编号
<ND10001.FK_DeptText> 输出事例: 总经理部 // 部门名称。
明细的表达:
<ND10001Dtl.JE.SUM > // 对列值求合
< ND10001Dtl.JE.AVG> // 对列值求平均
2.3.4调用外部程序
流程的节点会涉及到调用外部程序,比如要在节点上调用调用外部分
2.3.4设计事件
请参考流程二次开发 4.4.2章节。
2.4流程属性
2.4.1运行流程
此功能,能够帮助您快速的完成测试,启动它后,他连接到前台界面上直接把能够发起流程的用户输出出来,让你选择用户登陆。直接进入系统后,直接启动该流程,而不让一步步的进入在启动流程了。
2.4.2流程检查
此功能能够帮助您检查您设计的流程是否符合要求,从而提高了您的设计与测试效率,如果不符合要求系统会以红字提示,您可以很快的发现错误,并修正它。
2.4.3报表定义
基本知识:
视图就是把一个流程中的各个表连起来,组合成新表,提供用户查询。
视图仅仅提供对流程数据的查询、分析。用户不可以修改这些数据。
各个岗位关心的数据项目不同所以系统允许设计多个视图。
设计完成一个视图后,就可以利用4个视图组件来发挥视图的数据作用。
定义完的流程都反映在前台流程报表的菜单中。
视图的组件:
查询组件:提供给用户数据查询,双点查询的行可以实现卡片数据显示。
分组分析: 提供给用户分组分析、用户可以根据自己的需要任意组合分组条件、分析的内容。实现三种图形分析,极其方便灵活、所有的组合可能都可以完成。
对比分析:在数据分析中,我们经常遇到客户要查看一个部分的,一项数值指标升高或者降低了多少. 升高或者降低比率是多少? 这个组件,让你完成任意的可能发生的组合。满足多种对比分析的需要。
交叉报表:利用这个组件您可以完成多纬度的交叉报表,实现任意可能的分析情况。
视图的访问权限:
视图有查看的权限,所以在设计视图时,需要定义岗位访问权限与人员访问权限。
视图的设计:
选择字段:系统列举了该流程上的所有的字段,选择字段后确定。
字段派序:您可以利用向上、向下的箭头进行对字段排序。
字段命名:您可以对字段中文命名。
查询条件:用于显示在组件上的查询条件。
2.4.4数据转出定义
当流程运行完后,流程数据如何被其它的系统所使用,这里为您提供数据转出接口。
2.5与现有的系统耦合
<<与驰骋工作流引擎耦合过程.doc>>
3《流程用户操作手册》
3.0 概要介绍
名词解释:
工作流程:就是处理一件事情的过程。现有的流程就是用计算机语言,把现实工作的过程描述出来。把手工作业下的流程通过网络与计算机实现出来,用计算机减少手工作业下的劳动强度,进而实现集团公司规范化、高效的管理。
工作节点:一条流程是由多个节点完成的,节点也是处理此事情的环节。
表单:就是一个环节上要处理的内容,也就是工作内容,也称为采集的信息。
在途工作:在途工作就是我参与的一条流程,这条流程还没有处理完。从在途流程中你可以查看这条流程运行在什么位置?
介绍:
1, 流程中的表单,都是系统自动生成的格式统一、使用方便、每个表单的填写不用在做单独培训。熟悉一个表单的填写,其它的表单您都会处理。
2, 流程操作简单方便。基本功能点少。常用的功能有:发起、填写、保存、发送。
3, 在处理流程时,自动化程度高,系统自动寻找要接受的人员,被发送人可以执行在次的分配。
4,流程的工作报告可以详细的让操作员看到每个的操作步骤。
5, 流程功能齐全:退回、转发、工作撤消、删除、授权、查询。满足高级用户的需要。
6,流程运行模式齐全:单签、会签、并流、合流。
3.1流程的基本操作
启动并发送流程:
能够启动什么样的流程是由当前进入系统的岗位与部门确定的。
点流程发起菜单,就可以看到当前的操作员能够发起的流程。
点击要发起的流程,系统会弹出窗口打开第一个节点信息采集界面,输入要发起的信息然后进入。填写完成后,点发送按钮,系统会提示您执行的结果。其它的流程环节处理也是如此。
当前人员能够发起流程,点其中的一个流程就可以出现如下流程处理,如下图。
您填写完每个项目后,可以点底部的附件,添加附件。点配件填写明细表。
点上部的工具上的发送按钮,将工作发送到下一个工作岗位。
点保存按钮可以保存当前的数据。
点工作报告按钮可以查看工作的情况。
特别说明:流程标题就类于邮件的标题一样,如果您不填写系统会自动增加一个标题. XXX在XX月XX号XX:XX发起。
附件:你可以把这个附件发送到下一次工作环节中去。
下面我们在填写完一个表单后发送到下一个步骤。系统会把执行的信息提示给您。如下图。
因为下一个步骤有多个人可以去处理,如果您只想指定特定的人去处理,您可以执行分配工作。只有被分配人才能看到、处理您的工作。您的分配信息系统会自动记录下来,如果下一次在运行到这里,系统会按照您上次分配的结果进行处理,这叫分配工作的智能投递。因为系统已经记录下来你的上次操作行为。
如下图:
工作发送出去后,接受人的待办工作列表里就出现了他的一个工作信息。如下图:待办工作列表。
在途工作:
就是我参与的工作,但是还没有完成的工作。您都可以在在途工作中查询出来。
说明:在在途工作您可以查看此工作运行的情况,如果您发送的工作接受人还没有处理,您就可以撤消发送。
工作撤消:
如果工作您发送后、对方没有处理前感到有错误,您可以在在途工作中查询出来并撤消发送。修改本次填写的结果重新发送,如果您是第一个节点,您就可以删除它。
工作处理:
处理当前待办的工作,包含如下几个操作点。
1, 填写表单与明细表单。
2, 附件操作。
3, 退回。
4, 转发。
5, 查看工作报告。
6, 撤消处理。
如下图:
如果不同意,就可以退回,点退回按钮,出现如下界面。
点完成按钮就可以完成退回,您可以退回到流程经过的任意步骤。
转发就是当前的工作转交给另外的人去处理,转发的范围就是您单位或者科室内部的人员。
输入转发原因,点转发按钮,就可以完成工作的转发了。
流程查询:用来查询以前发生的工作时,可以利用流程查询功能。点流程查询功能后系统列出来当前人员能够操作的节点。这是确定您要查询那一个流程那一个节点的数据。如下图所示。
点查询按钮,就是执行对此节点的数据,如下图:就查询出来部门负责人审核的节点,点工作报告就可以查看此流程的详细信息。
4《驰骋工作流引擎二次开发手册》
4.1什么是流程的二次开发?
如果您的单位已有了现有的系统,您想与现有的系统联合起来工作,这就需要二次开发。
比如:您有一个销售管理信息系统,对于VIP用户的认定,您想设置一个流程来完成。那么VIP用户认定流程中,需要把认定的结果,也就是流程控制的结果写入销售管理系统中去。如何实现两个系统无缝的连接,这就需要调用工作流程引擎的接口才完成,这是业务人员所完成不了的。
我们用如下图形来说明两个系统的关系:
流程把节点运行过程,通过接口把数据写入业务中去,从而完成流程系统的功能。
4.2二次开发常见的问题?
流程的二次开发就是,利用工作流引擎的接口完成个性化的应用。
4.2.1与我的系统实现接口的步骤是什么?
第一步:部署工作流系统,在您的数据库上建立WF数据库。建立应用程序名称为. Front。
第二步:删除Port_Emp, Port_Dept, Port_Station, Port_EmpDept, Port_EmpStation 5个物理表。
Port_Emp操作员字段如下:No 编号,Name用户名称 Pass密码,FK_Dept 所在部门, SID随机号,用与两个系统安全校验。
Port_Dept部门字段: No编号,Name名称
Port_Station岗位字段: No编号,Name名称.
Port_EmpDept人员与部门对应: FK_Emp, FK_Dept.
Port_EmpStation人员与岗位对应: FK_Emp,FK_Station.
第三步:按照工作流程结构建立以上5个表的视图,把您的数据映射到WF数据库里。
第四步:
在您的系统上增加一个菜单,连接到
http://yourserverIP/Front/WF/Port.aspx?UserNo=admin&SID=YourSID
第五步:测试是否成功。
4.2.2为什么这样设计接口?
1, 简单部署,方便调用,两个系统完全分开,只有一个调用连接。
2, 外面是1个系统对,其实是2个系统,在工作,两个系统各运行各的,容易判断错误。
3, 容易业务扩展。
4.2.3怎么调用节点事件?
工作流引擎为每个节点提供如4个事件:
当节点保存时、当节点发送前、当节点发送成功后、当节点发送失败后。
这4个事件您可以用来处理用户特殊的需求。在各个事件里您都可以抛出异常到给用户,或者处理复杂的、个性化的业务逻辑。 比如在节点保存时事件中,你可以获取外部系统数据,填写当前节点的表单,可以检查用户输入是否符合标准与完整。 在节点发送时,您可以检查一下是否符合发送的条件。在节点发送成功后,您可以为下一个节点设置默认信息。在节点发送失败后,你可以撤消一些操作。
工作流引擎为您提供两种模式的数据接口
存储过程模式。
类库模式。
存储过程模式
用户按照约定的规则编写存储过程,放在当前的数据库中,流程在运行期间会自动调用这些存储过程。比如:当节点保存时调用 "ND"+节点编号+"WhenSave". 这个名称存储过程。比如当前节点编号是0901, 在这个节点保存时系统会调用ND0901_WhenSave这个存储过程。约定规则如下:
当节点保存时,存储过程名称:"ND"+节点编号+"WhenSave"。
当节点发送前时,存储过程名称:"ND"+节点编号+"WhenSend"。
当节点发送成功后时,存储过程名称:"ND"+节点编号+"WhenSendOK"。
当节点发送失败后时,存储过程名称:"ND"+节点编号+"WhenSendError"。
以上存储过程接受2个参数,
1,WorkID , 当前工作节点的ID Int64类型。
2, WorkPara 工作属性。格式为@字段1=字段值1@字段n=字段值n 当前工作节点的所有字段值。
类库模式:
开发人员建立一个类库,编译出的DLL,符合BP.*.DLL 格式。新建类从BP.WF.WorkAction 上继承下来。重写如下个几个方法。
WhenSave() WhenSend() WhenSendOK() WhenSendError()
在子类里,您可以重写这4个方法,实现您的业务逻辑。
两个模式的优缺点?
类库模式开发方便,不过需要便宜才能执行,需要二次开发人员熟悉 .net 开发工具与环境。
存储过程模式,简单需要开发人员熟悉存储过程的编。在测试服务器上弄好后要发布。
4.2.4设置调用(启动)外部程序
应用案例:在流程一个节点上调用(启动)外部程序,实现其它系统的业务操作。
实现方法:点节点属性,如下图。
点调用外部程序接口,如下图。
如果是外部的 URL 您可以用 http://yoururl 方式,设置。系统会把当前用户下的当前节点下的所有信息传递出去。
如果以本地的可执行文件,可写成C:\\YourAppPath\xyz.exe. 系统会调用这个exe文件,并把给他参数。
4.2.5设置流程数据转出接口
发生时间:在流程完成时发生。
操作方法:在流程设计器中,点右键,找[数据转出定义借口]
之后出现如下界面。
点保存之后就可以完成。
4.3类设计与数据库设计命名规则
总体规则
1, 以英文命名,每一个字母大写,提倡用简写。比如Emp 人员 Dept 部门 Station 岗位。
2, 如果英文名称太长,或者不常用可考虑用中文命名,建议用中文的缩写。比如管理机关GLJG。
3, 对于类与表的命名必须有前缀,比如BP.Port.Dept 类名, 表名为Port_Dept.。
4, 前缀命名尽量简单。比如考核命名空间英文名称为Check 空间可以命名为CH。共用的类英文名称为Public 可简写为 Pub.
类库设计规则:
1, 格式为 BP+前缀+类名。比如:BP.Port.Emp 人员类。
2, 属性命名与字段命名相同。特殊属性可以遵守总体命名规则。
3, 类库的倒数第一个命名空间要与要与物理表的前缀一致。比如:物理表考核项目。
BP.CH.CheckIiems。物理表为 CH_CheckItem.
4, 如果一个属性是外部实体或者枚举类型,以His 开头。 比如在类人员中的部门类HisDept.
5, 方法命名规则,遵守总体命名规则的 第1,2条。
6, 变量的命名规则,字母小写,以下划线开头。比如: _age 年龄。_addr 地址。要求每一行都要有注释。
数据库设计命名规则:
1, 物理表命名格式 前缀+“_”+对应的类名。部门操作员 Port_Emp, Port_Dept ,CH_CheckItem.
2,视图命名格式。 “V_” + 前缀 + “_” +对应的类名。V_CH_CheckItemExt。
3, 存储过程命名规则“Pro_” + 前缀 + “_”+过程名称. 比如Pro_Sys_Init.
4, 函数命名规则 “Fun” + + 前缀 + “_”+函数名. 比如:Fun_Sys_GenerOID.
5, 外键字段命名规则 “FK_” +对应的物理表类名.
比如:在人员表(Port_Emp)中表示部门的字段 FK_Dept. 同事一看就知道,这个字段是外键,并且它的对应到Dept这个类的物理表上。
如何与现有的系统耦合?
驰骋工作流程操作手册 http://ccflow.org
展开阅读全文