驰骋流程设计器
操作说明书
2011 年 8 月修订
目录
1 总体说明.........................................................................................................................................4
产品信息..............................................................................................................................4
关键字..................................................................................................................................4
概要说明..............................................................................................................................5
流程的分类..........................................................................................................................5
2 ccflow 的安装.................................................................................................................................6
下载 ccflow..........................................................................................................................6
安装文件清单......................................................................................................................7
环境要求..............................................................................................................................8
安装步骤..............................................................................................................................8
常见安装问题....................................................................................................................10
3 流程设计基础...............................................................................................................................10
流程创建............................................................................................................................10
流程的基本元素.....................................................................................................10
ccflow 支持的流程模式.........................................................................................11
创建简单的流程步骤.............................................................................................14
流程属性............................................................................................................................15
检查报告..........................................................................................................................15
设计报表..........................................................................................................................15
删除数据..........................................................................................................................16
节点属性............................................................................................................................16
基本属性..........................................................................................................................17
按钮标签..........................................................................................................................23
考核属性..........................................................................................................................25
相关功能..........................................................................................................................26
父子流程的设计................................................................................................................35
同步分合流程的设计........................................................................................................35
异步分流程的设计............................................................................................................35
4.数据查询与报表...........................................................................................................................35
概述....................................................................................................................................36
数据展现的三大方式........................................................................................................36
通用数据查询:.....................................................................................................36
数据分组分析:.....................................................................................................36
对比分析:.............................................................................................................37
报表定义............................................................................................................................37
数据使用的权限控制........................................................................................................37
5 系统维护.......................................................................................................................................38
系统设置............................................................................................................................39
全局设置.................................................................................................................39
系统枚举值.............................................................................................................40
编码表.....................................................................................................................41
JS 校验库................................................................................................................42
全局变量.................................................................................................................42
功能执行.................................................................................................................43
组织结构............................................................................................................................43
部门维护.................................................................................................................44
岗位维护.................................................................................................................45
人员维护.................................................................................................................46
6 高级开发.......................................................................................................................................47
类设计与数据库设计命名规则........................................................................................47
表结构与运行机制。........................................................................................................47
, 框架表...................................................................................................................48
, ccflow 流程规则描述表........................................................................................49
, ccflow 流程运行数据表.......................................................................................50
, 公共字典表...........................................................................................................50
流程生命周期(创建、运行、数据归档)...................................................................50
流程创建时.............................................................................................................50
流程运行时.............................................................................................................52
流程完成后(数据归档). .........................................................................................52
数据查询.................................................................................................................52
利用 ccflow 流程数据,为客户开发一个高级流程查询页面。........................53
流程发起参数传递。.......................................................................................................54
二次开发 SDK...................................................................................................................55
7 Ccflow 技术文摘..........................................................................................................................55
ccflow 向流程开始节点表单传输数据方法大全............................................................55
1 总体说明
产品信息
产品名称: 驰骋.net 工作流程引擎.
英文名称: chicheng workflow engine
简 称: ccflow 版本:
开发历史: 2003-2011 年. 性 质: 开源软件
许可协议: LGPL URL:
官方网站:
源 代 码: 请用 svn 下载.
运行环境: bs 结构. windows XP, windows server. win7 以上. .. Office2007 (如果需
要单据打印.)
开发语言: VS2010. . c#.net.
客 户 端: FireFox 以上. IE7+,或者使用 IE 内核的浏览器.
组成部分: 流程图形设计器(有:cs 版本与 bs 版本)/流程前台运行程序(BS 结构)/流程服务
(CS)/web 的方式的表单设计器/BRP 工具
基本功能: 图形化流程设计/智能表单 web 定义定义免程序开发/级联下拉框/流程轨迹/单据
自定义打印/邮件短信工作到达通知/自动任务分配/支持 sdk 模式开发/简洁集成/消息侦听/
丰富事件
接口/报表定义/工作量分析/绩效考核/手机访问/支持 sqlserve,oracle,mysql,access 数据库
关键字
流程、节点、连接线、标签、岗位、部门、人员、单据打印、消息侦听。
名词解释:
工作流程:就是处理一件事情的过程。现有的流程就是用计算机语言,把现实工作的过
程描述出来。把手工作业下的流程通过网络与计算机实现出来,用计算机减少手工作业下的
劳动强度,进而实现集团公司规范化、高效的管理。
工作节点:一条流程是由多个节点完成的,节点也是处理此事情的环节。
表单:就是一个环节上要处理的内容,也就是工作内容,也称为采集的信息。
在途工作:在途工作就是我参与的一条流程,这条流程还没有处理完。从在途流程中你
可以查看这条流程运行在什么位置?
概要说明
Ccflow 流程设计器概要说明:
Ccflow 流程设计器上由 开发。
流程设计器集成了 ccflow 自由表单设计器、傻瓜表单设计器,关于这两类的设计器说
明请参考表单设计器说明手册。
Ccflow 流程设计器支持线形流程、父子流程、同步分合流、异步分合流程。足能够满
足您们的业务流程应用模式。
Ccflow 流程设计器全部实现了可视化设计,设计所见既所得。
Ccflow 流程设计器可以导出 xml 备份文件。
Ccflow 方便调试,流程运行前体检,方便检查流程设计的错误。
Ccflow 流程设计器概念少,名词简单通俗,好理解,上手快。
Ccflow 支持报表定义。
流程的分类
Ccflow 把流程分为公文类流程与业务类流程。
公文流程是以文档传递为基础的流程,而业务流程则是以表单数据为基础的流程。
类别的约定:
公文流程中只有一个类别: 01 表示公文类. 只要编号不是 01 的流程就是业务流程。
在创建流程时,ccflow 自动判断编号是否是 01 如果是就按照公文类的流程创建否则按
照业务类的流程创建。
表单区别:
公文流程的表单字段是固定的,一般不做变化,比如:文号,发文单位,收文单位,机
密程度,紧急程度等等,而业务类流程表单是变化的。公文流程节点上只有一个表单,而业
务流程有多个表单。
载体区别:
公文以文档为中心,公文流程表单是描述文档的属性,公文流程用户操作的前台表现形
式以 word 为处理工作的载体,采用了 vsto 技术,处理文件流转。
业务流程以 IE 或者 cs 程序为载体处理数据流转。
数据存储区别:
公文流程的数据分为三部分,流程运转记录存储在数据表里,公文模板存储在 ftp 服务
器上,公文文档数据存储在 ftp 服务器上。
在本说明书中如果特别说明都是业务流程开发。
开发模式说明
Ccflow 分为如下几种开发模式,您可以根据自己的需要选择合适自己的开发模式。
独立运行模式
与其它的系统不耦合,登陆与功能操作完全独立。
嵌入运行模式
Ccflow 的功能都是以页面体现的,你可以根据本文章中的功能调用列表处理。
SDK 开发模式
把整个环境融入到您的解决方案里面,采取调用静态方法的方式处理。
比如:登陆,发送,撤消,删除,保存。
2 ccflow 的安装
下载 ccflow
1, 请下载并安装 svn 软件,您可以在网络上搜索或者在 ccflow 官方网站上,加入 qq 群,在
文件共享里可以下载 svn。
2, 重启机器。
3, 打开资源管理器,转到 d:根目录,点右键。
4, 找到 svn checkout 菜单. 中文名词叫 检出。
5, 输入: 检出地址为: D:\ccflow 其它的选项目就不
要变化。
6, 点确定按钮。
7, ccflow 里面的文档与源程序,视频文件估计有 140m,经常听到网友反映下载有问题您需
要换一个网络环境。因为此服务器在国外,经常有 dns 的问题。
安装文件清单
D:\ccflow\Components 组件目录.
D:\ccflow\Components\ -- 底层基类.
D:\ccflow\Components\ --bs 控件层.
D:\ccflow\Components\ --工作流程引擎层
D:\ccflow\Components\ --cs 控件层.
D:\ccflow\DLL -- 第三方组件中需要调用 dll.
D:\ccflow\Documents - 文档
D:\ccflow\VisualFlow --bs 工作流程引擎前台.
D:\ccflow\VisualWorkFlowServices - 流程服务程序.
D:\ccflow\VisualFlowWebDesigner - silverlight 流程设计器.
D:\ccflow\CCFlowWord2007 - VSTO 公文流程.
D:\ccflow\ExpandingApplication 行业应用通用代码。
D:\ccflow\Tools 工具
关于: ccflow 前台目录结构.
D:\ccflow\VisualFlow\Comm --通用功能层.
D:\ccflow\VisualFlow\Data -- 应用程序数据目录. 包含一些 xml,等等。
D:\ccflow\VisualFlow\Data\Install 与安装有关系的文件
D:\ccflow\VisualFlow\Data\JSLib 系统 javascript 函数库。
D:\ccflow\VisualFlow\Data\Language 语言包(完善中)
D:\ccflow\VisualFlow\Data\Node cs 流程设计器节点类型(cs 流程设计器不在发展)
D:\ccflow\VisualFlow\Data\XML xml 配置文件不仅仅 ccflow 使用,bp 框架也使用它。
D:\ccflow\VisualFlow\DataUser -- 用户数据目录。
D:\ccflow\VisualFlow\DataUser\Bill 单据打印生成数据.
D:\ccflow\VisualFlow\DataUser\CyclostyleFile 单据模板数据
D:\ccflow\VisualFlow\DataUser\DtlTemplete 导入明细表模板文件.
D:\ccflow\VisualFlow\DataUser\EmailTemplete 自定义邮件发送格式文件.
D:\ccflow\VisualFlow\DataUser\JSLib 用户自定义函数库
D:\ccflow\VisualFlow\DataUser\JSLibData 用户自定义函数生成文件。
D:\ccflow\VisualFlow\DataUser\Log 系统日志文件
D:\ccflow\VisualFlow\DataUser\ReturnLog 退回日志文件.
D:\ccflow\VisualFlow\DataUser\Siganture 签名文件.
D:\ccflow\VisualFlow\DataUser\Style 用户自定义风格文件。
D:\ccflow\VisualFlow\DataUser\UploadFile 表单附件上传文件,单附件,与多附件。
D:\ccflow\VisualFlow\DataUser\XML 用户系统配置文件。
D:\ccflow\VisualFlow\WF\DocFlow -- 公文流程(目前还不是很完善)
D:\ccflow\VisualFlow\OA -- 通用 oa 组件(目前还不是很完善)
D:\ccflow\VisualFlow\SDKFlowDemo -- sdk 开发模式的案例.
D:\ccflow\VisualFlow\WF\WAP -- 手机访问前台代码目录. (说明:对 C 级用户有效)
D:\ccflow\VisualFlow\WF -- ccflow 前台应用程序层(主要的功能都是在这个目录里面)
D:\ccflow\VisualFlow\WF\Admin - 对 ccflow 的管理比如设计方向条件.报表定义...
D:\ccflow\VisualFlow\WF\MapDef - 表单定义.
D:\ccflow\VisualFlow\ClientBin - silverlight 程序.。
流程设计器, 表单设计器。
环境要求
Window 系列, 以上. . . 以上.
安装步骤
安装设置 CCFLOW 前,为了保证显示效果,请确认已经安装了 D:\ccflow\Tools 下面的
及 office 组件
安 装 微 软 silverlight , 目 前 微 软 银 光 的 版 本 为 , 可 以 从
下载并安装 ,如果你本机上是 以下的版本请删除
它在安装它。
0, 确认升级到 IE7 以上,并且做如下设置.
1, 菜单->工具->Internet 选项-> 隐私 -> 把打开弹出窗口阻止程序 关闭上,否则一些功
能就不能使用.
2, 菜单->工具->Internet 选项-> 常规 -> 浏览历史记录设置-> 选中 () 每次访问此网页
时. 单选按钮. 点确定,以避免缓存对程序有影响。
1,使用 svn 下载源程序,请查看如下连接。
2,在 IIS 里面新建一个应用程序池,应用程序池 ID 号为:ccflow
3, 建立虚拟目录 ccflow 在 80 端口下 映射目录为 D:\ccflow\VisualFlow\
执行权限为纯脚本,应用程序池选择为:步骤 2 新增的应用程序池。
4, 创建数据库 ccflow.
1, 建立数据库(不管你用的什么数据库) 比如: ccflow
2, 请看下面第 5 步骤, 为数据库配置链接.
3, 执行修复&安装数据库工具: http://localhost/ccflow/WF/Admin/
5, 修改 D:\ccflow\VisualFlow\ Appsetting 节点中的数据库连接。
如下:【如果使用的是 MSSQL 数据库,修改数据库的链接的用户名和密码即可】
<appSettings>
<add key="IsDebug" value="0" />
<add key="SysLanguage" value="CH" />
<add key="SysNo" value="WF" />
<add key="SysName" value="驰骋工作流" />
<add key="InitConnNum" value="10" />
<!-- 数据库连接 url. -->
<add key="AppCenterDSN" value="Password=;Persist Security Info=True;User ID=sa;Initial
Catalog=ccflow;Data Source=.;Timeout=2" />
<!--ccflow 支持的数据库类型, MSSQL, Oracle, DB2, 注意区分大小写. -->
<add key="AppCenterDBType" value="MSSQL" />
6, 启动流程设计器
BS 版本流程设计器路径, Silverlight beta 版本.
http://localhost/ccflow
7, 启动流程服务: 用来发短信与邮件的服务.
D:\ccflow\VisualWorkFlowServices\bin\Release\
把他在桌面上创建一个快捷方式.
常见安装问题
1, 没有把 ccflow 作为主目录, 导致一些项目文件找不到位置,强烈建议你放在 d:\ccflow 下
面.
2, 没有建立应用程序 /ccFlow . 导致仅仅建立了一个虚拟目录,在脚本与执行权限上没有设
置<脚本与可执行程序>
3, 在 internet 信息服务(iis) 中, web 服务扩展 的 dll 没有被允许.
4, 没有注册 到 iis 上. 需要执行如下命令.
cd C:\WINDOWS\\Framework\
-ua
-i
5, 没有配置 mime 类型, 导致流程轨迹图,流程设计器不能被使用. 处理方法.
打开 IIS->站点属性->HTTP 头->MIME 类型->新建:
扩展名: .xap MIME 类型: xapapplication/x-silverlight
扩展名: .xaml MIME 类型: application/xaml+xml
6. 出 现 用 户 名 及 密 码 错 误 , 请 在 文 件 中 删 除 userName="administrator"
password="jiaozi"
7. silverlight 版本不是 以及 以上,请先卸了,重新安装。
8. 打开流程设计器时出现错误,密钥错误。
可能有两部分原因:
1. 服务器 c:\windows\temp 目录的访问权限不够.
2. 没有在网站跟目录下设置好策略文件,请把 D:\ccflow\VisualFlow\
与 两个文件放在网站根目录下。
您的系统与 ccFlow 组织结构表耦合
组织结构表的概念:
用于控制用户的权限的表都称为组织结构表,比如:操作员、部门、岗位。与 ccflow
的耦合也就是组织结构表的耦合。
耦合说明
在应用过程中,您的应用系统与 ccflow 数据库是分开的,应用示意图如下。
在 ccflow 系统中有如下 5 个组织结构表。
表英文名称 中文名称 字段说明
Port_Station 岗位 岗位编号 No, 名称 Name.
岗位级别: int 枚举类型
您的业务系
统数据库
Ccflow 业务
系统数据库
您的应用系
统
Ccflow 前 台
应用系统
应用界面是整体的
通过网页框架把流
程功能界面嵌入您
的应用系统里面。
0,高层岗 1,中层岗,2 执行岗
Port_Dept 部门 No 部门编号 Name 部门名称
Port_Emp 人员 No,编号 Name,名称 Pass,密码
FK_Dept,所在部门编号 SID,登陆安全 ID
Port_EmpStation 人员岗位表 FK_Emp 人员编号 FK_Station 岗位编号
Port_EmpDept 人员部门表 FK_Emp 人员编号 FK_Dept 部门编号
与驰骋工作流耦合,主要是用户表,部门表,岗位表,用户与部门对应表,用于与岗位
对应表。对应的表结构。
耦合的过程就是不使用工作流引擎中的表,而使用视图数据。
编号规则
部门编号人长度决定着数据访问权限,比如:
部门编号 部门名称
01 集团总部
0101 集团财务部
0102 公司 1
010201 公司 1 市场 1 部
010202 公司 1 市场 2 部
数据访问规则是,集团总部下面的人员可以产看整体数据。公司 1 人员可以查看公司 1 人
数据,不可以查看其他部门的数据与他的上一级数据。
岗位表 Port_Station
岗位表 Port_Station 编号的长度需要是 2 的倍数。
中文名称 英文名称 描述
编号 No
名称 Name
说明:岗位表也可以成为角色表、用户组,岗位人编号规则概念部门的编号规则长度相同。
部门表 Port_Dept
中文名称 英文名称 描述
编号 No
名称 Name
部门编号的长度需要是 2 的倍数。并且有清晰的隶属关系,比如:部门编号为 0103 的部门
隶属于部门编号为 01 的部门。
人员表 Port_Emp
中文名称 英文名称 描述
编号 No
名称 Name
密码 Pass
部门 FK_Dept 与 Port_Dept 对应
验证码 SID 登陆时间的随机号
人员部门对应表 Port_EmpDept
中文名称 英文名称 描述
人员 FK_Emp 对应
部门 FK_Dept 对应
人员岗位对应表 Port_EmpStation
中文名称 英文名称 描述
人员 FK_Emp 对应
部门 FK_Statioin 对应
3 流程设计基础
流程创建
流程的基本元素
节点、连接线、标签:构成的流程设计的界面基本元素。
部门、岗位、人员构成了组织结构,是流程运行的基础。
流程考核,报表定义,数据查询,工作质量成本分析是流程运转的延伸应用。
ccflow 流程模式
流程模式就是流程运行的模式类型,ccflow 目前支持的类型有线形流程、父子流程、
同步分合流、异步分合流。
我们所分析的流程一般都是从这 4 种流程模式上延伸出来的,或者说都是它们的变形。
创建简单的流程步骤
第一步:画出流程图。
第二步:设计表单。
第三步:设置方向条件。
第四步:设置节点访问权限
第五步:检查并运行流程。
这类的流程被一个人发起以后,整个流程的生命周期,在同一个时间点,只能有一个人
处理,不存在多线程问题。所以这类的流程的轨迹是一根线。我们称为线性流程。
流程属性
检查报告
检查流程的设计是否完整。如果出现红色的提示,表明流程设计错误,根据错误提示去处理。
设计报表
基本知识:
视图就是把一个流程中的各个表连起来,组合成新表,提供用户查询。
视图仅仅提供对流程数据的查询、分析。用户不可以修改这些数据。
各个岗位关心的数据项目不同所以系统允许设计多个视图。
设计完成一个视图后,就可以利用 4 个视图组件来发挥视图的数据作用。
定义完的流程都反映在前台流程报表的菜单中。
视图的组件:
查询组件:提供给用户数据查询,双点查询的行可以实现卡片数据显示。
分组分析: 提供给用户分组分析、用户可以根据自己的需要任意组合分组条件、分析的
内容。实现三种图形分析,极其方便灵活、所有的组合可能都可以完成。
对比分析:在数据分析中,我们经常遇到客户要查看一个部分的,一项数值指标升高
或者降低了多少. 升高或者降低比率是多少? 这个组件,让你完成任意的可能发生的组合。
满足多种对比分析的需要。
交叉报表:利用这个组件您可以完成多纬度的交叉报表,实现任意可能的分析情况。
视图的访问权限:
视图有查看的权限,所以在设计视图时,需要定义岗位访问权限与人员访问权限。
视图的设计:
选择字段:系统列举了该流程上的所有的字段,选择字段后确定。
字段派序:您可以利用向上、向下的箭头进行对字段排序。
字段命名:您可以对字段中文命名。
查询条件:用于显示在组件上的查询条件。
删除数据
删除当前流程运行的数据,不删除流程。
节点属性
基本属性
节点属性 描述
流程步骤 需要手工的维护,系统无法自动计算每个节点在流程中的步骤。
名称 节点名称。
是 否 允 许 分
配工作?
发送下一步骤时,比如 n 个人可以处理,是否允许发送人指定人员进行处理?
是 否 可 以 强
制 删 除 子 流
程
对于分合流有效,如果到了规定的完成时间,对于未完成的子流程是否可以
强制被合流上的操作人员强制删除。
焦点字段
应用场景:
如下流程图是一个典型的对附件的审批流程,起草人发起一个标准文件,经过各部门审
批,意见征集(分合流),各部门汇签(分合流)。
在工作日志中,用户希望看到日志记录每次审批意见,如果有多次退回,多次审批意见,
个是什么。如下图:
如何让 ccflow 要知道记录表单的那个字段,这个字段可能是审批意见也可能是备注。
如果您不设置它,ccflow 就记录不上。
解释说明:
节点属性中的焦点字段是用来处理记录一个表单中重要的字段,比如:一个审批表单中
的审批处理意见字段,对这个表单来说他非常重要,在流程中我要记录这个字段作为此节点
的审核信息。
并非所有的节点都要设置焦点字段。
如下功能中用到焦点字段,工作日志、转发、退回。
在工作日志中应用:
如果您为此节点设置了焦点字段,系统在日志记录时,就会记录到日志中去。如果没有
则不记录,如果对一个审批流程来说,记录每个节点的审批意见记录工作日志非常中要。
在转发中应用:
如果设置了焦点字段,用户就可以在当前表单上在这个字段上填写意见,按下转发按钮
后这个字段的数据就会被带到转发功能界面里去,符合操作习惯。
在退回中应用:
同上。
投递规则
就是下一步工作人员的接受人范围处理规则。
如何设置下一步的接受人范围,是我们研究的难题, 到目前位置,ccflow 为您提供了如
下几种模式.
说明:
1, 下列设置类型,都设置当前节点作用于下一步节点。
2, 每一种类型,都有路径自动记忆功能,所说自动记忆功能是当节点第一次向下一个节点
投递时,它把要投递的人记录下来。
如果你执行了分配系统就把分配的人员,做为接受人员计算.
可以设置的投递的类型:
按岗位:
--------------
设置方法: 在下一个节点上的节点属性里,设置节点岗位.
这是默认的投递规则,他是在下一个节点设置岗位时按照岗位计算. 他的计算方式,首
先按照当前操作员的部门范围计算.
如果该操作员部门下没有这个工作岗位的人员,ccflow 就会把当前操作员的部门级次提高
一个级别,在寻找,依次计算。
理解了这个算法,你就不难理解为什么,本部分的业务,只能让本部门的经理审批了.
举例说明:
一个省机关下面有 n 个县,n 个市,n 个县. n 个所. 一个所员受理人员的业务,只能让
自己的所长审批,所长的业务只能投递到本区县的相关业务部分审批,而非其它区县业务部
分审批.
这就是岗位的权限与部门权限的交叉形成的被投递的人员集合. 这就是 ccflow 经常说
的.
岗位:表示能做什么事情。 部门: 表示能做那里的事情 。 岗位+部门: 表示一个操
作员能做那里的那些事情.
按部门:
--------------
设置方法: 在当前节点上的节点属性里,设置节点岗位.
ccflow 会按照你指定的部门下面的人员,进行投递, 就是这个 n 个部门下面都可以接受
这个工作. 这个类于发送邮件的按照邮件组进行发送.
按 SQL:
--------------
设置方法: 在当前节点属性里 [接受人 SQL]设置一个 sql 语句. 这个 select 查询语句有
两个列. No,Name 分别表示,操作
编号, 操作员名称. 这个 sql 可以有参数.
比如:
1, SELECT No,Name FROM PORT_EMP WHERE FK_Dept=@_Dept
查询出来当前操作员中的部门下的所有人员.
2, SELECT No,Name FROM WHERE 字段名称=@表单字段名称.
从您的业务系统中,查找一组人员,变量可以是当前节点字段的编号,格式为 @+
字段英文名称.
按指定的人员:
设置方法: 在当前节点属性的相关功能里 [接受人员]功能, 设置一批操作人员,当前节点
向下一步发送时系统就会按照当前设置的范围投递。
这种场合应用于,特定的条件下, 一些特殊的临时的岗位不系统管理员不愿意去设置,
而是直接选择投递到具体的人员.
由发送人选择:
设置方式: 选择此项后系统就会自动在功能按钮栏显示一个选择接受人功能按钮.
类于发送邮件时的接受人员选择功能.
按表单人员:
设置方式: 在设置节点表单时, 增加一个外键字段 FK_Emp, 这个下拉框中是操作人员
列表.
运行方式: 当前操作员进入工作操作界面时,它就会看到一个下一步人员选择的下拉框,
选择期中的一个人员后,ccflow 就会按这个人员做下一步骤的工作投递.
完成通过率
对于分合流有效,分流点发送给 n 个人,当完成率为多少时才能够流转到下一步骤。更多的
计算方式,请搜索:”ccflow 流程完成率”。
运行模式
节点在流程中运行的模式:节点模式分为普通,分流,合流,分合流程。
分流点:它发送时 n 个操作人员都可以接受。
合流点:n 个操作人员把采集的数据发送到此节点上。
分合流:既是分流也是合流, 我们称为分合流。
如何设计分合流请参考录像与视频。
<<ccflow 视频教程 06-多线程模式的流程设计.ppt>>
表单类型
目前为止 ccflow 流程引擎设计器支持如下几种表单类型.
傻瓜表单 自由表单 自定义表单 SDK 表单 禁用(对多表单流程有效)
每种表单类型意义如下:
傻瓜表单:
-------------------
由 4 列与字段分组构成,它的格式固定一列说明,一列控件,一列说明一列控件。配以字段
分组可以解决字段排列的问题。
详细请参考:
傻瓜表单设计器相册
自由表单:
-------------------
可以自己按照自己的布局生成的表单,这种表单格式灵活,控件丰富.
详细请参考:
自由表单设计器相册
自定义表单:
-------------------
这种类型是解决我自己画一个表单,如何嵌入到 ccflow 里工作。
如果您的系统已经有了自己的表单可以把此表单的 url 输入到指定的文本框中.
比如:您输入的是 http://localhost/
系 统 在 调 用 时 就 会 是
http://localhost/
xxxx
ccflow 自动的加入相关的信息传递给您,你需要获取这些参数进行处理.
你的表单需要进行如下改造.
1,接受来 UserNo, 与 SID 参数用来校验访问的用户是否合法.
2,在表单的主表中增加一个字段 WorkID 表示这个流程的唯一主键标识,当然你也可以保
留已经有的主键。根据这个 WorkID 来判
断是否需要增加、更新主表的数据。
3,接受 FK_Node 参数它表示节点 ID,的示流程运行到什么位置了,从而进行相关的权限判断。
SDK 表单
-------------------
如果您采用应用 dll 的模式开发您的工作流程系统那就采用这种方式,这种方式的特点:
1,引用 dll,调用开发接口。
2,自己编写表单格式,处理表单业务逻辑,并且自己托放发送,保存,退回,转发,删除
按钮。
3,在每个流程功能按钮下填写业务逻辑外,还要编写调用流程接口方法。
比如:调用发送方法.
/*
string msg =
_SendWork(_Flow,,());
msg = ("@@", "@");
msg = ("@", "<BR>@");
("发送提示", msg);
*/
事例路径:
D:\ccflow\VisualFlow\SDKFlows\QingJia
禁用(对多表单流程有效)
-------------------
也叫禁用节点表单, 就是不使用节点表单仅使用流程表单。
成功发送后转向方式
在节点成功发送后有如下处理方式:
0 提示 ccflow 默认信息
系统提示详细的发送信息,包括下一步的接受人。。。
1 提示指定信息
按照您定义的信息提示给用户。此选项需要在[转向处理内容]文本框里输入提示内容。
2 转向指定的 URL
按照您定义的 url 转向,此选项需要在[转向处理内容]文本框里输入 url。
3 按照条件转向
在相关功能里定义转向条件。
其它:
利用此属性您可以个性化提示信息。可以在流程处理完成后转向指定的 url,也可以根据
表单的字段的值转向指定的 url。
比如:父子流程,当子流程启动起来之后,就可以利用此项功能转到父流程节点上去。
在子流程完成后,从子流程转向父流程配置案例:
1,打开子流程的最后一个节点属性界面,设置成功发送后转向方式,为 3,既:转向
指定的 url
2,在转向处理内容输入一个 url
, 当这个节点完成
后,它就会转向这个 url。
启动一个新流程的事例:
, 当前节点上所有的数据将会根据同
名字段,进行 copy 过去,包括明细表、附件信息。
经过如上的配置,子流程在完成后就转向父流程的节点了。
按钮标签
为什么要控制前台的标签按钮?
我们知道按钮的标签文字都是一个名字,但是这个名字不一定适合用户的要求。
比如在请假流程有三个点,发起流程,部门经理审批,人事备案。
1, 在开始节点的 [发送] 按钮名词就比较专业化,如果修改成[发起请假流程]就比较贴切。
2, 在第二个节点 [退回] 如果修改成[退回给发起人] 就比较让人容易看懂。
3, 在人事备案节点上,如果不需要[退回]按钮,可以禁用它。
特别说明:以上设置对于采用潜入方式开发有效,如果采用 sdk 模式开发,这些设置不起作
用。
有两个重要的权限控制,分配是退回规则与附件权限,请参考下章节。
mailto:
退回规则
退回规则在节点按钮标签栏目中的退回标签设置。
不能退回:
当前节点不能执行退回功能。
只能退回上一个节点:
只能退回上一个节点,从那里发送来的,就退回到那里去。
可以退回以前任意节点:
不限制退回的节点,但是退回的节点必须是当前节点以前的节点。
可退回指定的节点:
退回指定的节点,此功能需要在流程属性中的可退回的节点中设置它。
其它:
执行退回后,系统都会向执行人发送消息,发送对象仅限于上一节点的执行人员。
Ccflow 如何处理流程退回过程的数据的完整性。
流程在退回时,有一段流程数据就是从当前点到退回点的所做的工作,这部分节点的数
据如何处理成为了我们要探讨与取舍的难点。
以请假流程为例,申请人发起,部门经理审批,总经理审批,人力资源归档。如果总经
理退回到第一个点,可以解释为,部门经理做的无效的工作,此部分工作需要删除,在
以前的版本,ccflow 都是这样的处理的,这样的解释也是用户所接受的。
但是在其它的流程就不能这样解释了,因为他需要保留历史痕迹,并且在退回后有如下
可能要发生。
1,退回到指定的点后,发起人删除流程。
2,退回到退回节点后,发起人修改表单后发送,按原节点发回来。
3,退回到退回节点后,发起人修改表单后发送,经历与其它的路线步骤到当前点。
4,退回到退回节点后,发起人修改表单后发送,该走其它的路线不经当前点。
基于如上可能性的发生 ccflow,做了如下处理。
1,退回阶段流程数据写入 txt 文件里,放在 D:\ccflow\VisualFlow\DataUser\ReturnLog
2,增加了流程报告与节点的焦点字段功能,系统把每一步骤的操作都记到日志表里了,
通过焦点字段的配合,可以让操作员方便明晰的看到轨迹。
通过如上两个方法解决退回数据的完整性问题。
文件附件(对傻瓜表单有效)
考核属性
以上是对考核信息的设置,因为考核来说各个单位规则都不相同,模式也不想同。所以
ccflow 只记录此部分的设置。具体的时效考核与质量考核的开发由二次开发人员来决定。
相关功能
相关功能:请看左边的菜单栏目,以下是分别介绍与当前节点有关系的相关功能。
节点岗位
用来控制可以访问以节点的工作岗位,那些岗位可以访问此节点处理此节点的工作任务。
如果此节点是开始节点,那就是那些人员可以发起工作。
注意:当投递规则中,设置按岗位投递才有效。
节点部门
用来控制可以访问以节点的部门,那些部门可以访问此节点处理此节点的工作任务。
如果此节点是开始节点,那就是那些人员可以发起工作。
注意:当投递规则中,设置按部门投递才有效。
接受人员
用来控制可以访问以节点的人员,那些人员可以访问此节点处理此节点的工作任务。如
果此节点是开始节点,那就是那些人员可以发起工作。
注意:当投递规则中,设置按人员投递才有效。
可调用的子流程
处理父子流程时用到
现有一个主流程,一个或者多个小线程流程. 主流程在运行到指定节点时,它可以停留
在这里可以一次或者多次唤起其它的流
程。我们把这样的流程称呼为主副流程. 唤起流程的节点,我们称为唤起节点.
如何设置这样的流程,你可以在节点属性里, 选择要关联的子流程. 关联之后,需要诊
断一下.
这个调用链接就会显示在表单的下方.
如何进行二次开发对于这样的流程, 请等待一下二次开发问题. 要想进行二次开发你需
要很熟悉 ccflow 的运行表结构.
开发注意事项:
1, 唤起节点的表单数据可以 copy 到被唤起流程的第一个节点上.
2, 如果以前已经唤起过的流程没有运行下去,那么这个调用就会把上次没有发起的子流
程掉起来。
3, 如果没有的话就可以看到已经发起的流程列出来.
4, 被调用起来的流程不能是多线程流程,(其实这个是不合理的约定), 因为 FID 已经被
占用了.
可退回的节点
一个节点的退回,是具有一定的规则的。这个规则在节点属性里可以设置。当节点的退
回规则定义为可以退回指定的节点时才效。
关于节点的退回规则,请参考节点属性章节。
在这里是定义当前节点可以退回到的节点集合,在实际应用中,并不是所有的节点都可
以退回。
其他:如果指定的退回此节点以后的节点会无效,比如你指定了未到达的节点。
关于退回规则请参考: 本章节的节点属性-》按钮标签-》退回规则。
单据打印
什么是单据打印?
需要制作一个单据模板,通过上一个界面绑定在节点上才能实现单据打印。
1, 一个节点表单可以打印多个单据。
2, 单据必须是 rtf 格式的文件。
单据模板.
单据模板的制作方式,与单据规则我们先看一个描述就明白了。
此模板位于:D:\ccflow\VisualFlow\DataUser\CyclostyleFile\单据打印样本.rtf
单据模板事例
以下是基本的字段输出
-------------------------------------------------------------------------
普通类型字段输出:
文本输出 :<Title> 输出内容: 按文字输出.
文本输出 :<RDT> 输出内容: 2011-05-11
日期文本输出 :<> 输出内容: 2011年05月11日
金额文本输出 :<baoxiaojine> 输出内容:
金额人民币输出 : <> 输出内容:
金额人民币大写输出 :<> 输出内容: 壹百零壹元壹角贰分
布尔类型数据输出: <IsPass> 输出 0
布尔类型数据转意输出: <IsPassText> 输出 否
布尔类型数据转意输出: <> 输出 [X]
布尔类型数据转意输出: <> 输出 [V]
以性别为例
枚举类型输出: <XB> 直接输出 1
枚举类型输出标签: <XBText> 直接输出 男
以部门为例
外键类型输出: <FK_Dept> 直接输出 01
外键类型输出标签: <FK_DeptText> 直接输出 总经理室
签名:<>
以下是表格的明细输出:
报销内容 单价 数量 小计
<> <> <> <>
合计 <> <>
单据打印的调用方式
默认调用方式:
在节点发送成功后,ccflow 就会生成表单单据,发送提示界面就会提示单据打印连接。
外部接口调用方式:
对于傻瓜表单来说可以通过,写一个调用外部接口的方式调用表单。对于自由表单来说
可以增加一个 button 让这个 button 执行一段 js 脚本调用。
调用 URL : ./WorkOpt/
单据打印常见问题
1, 乱码. 输出的格式是乱码。
原因:是你的格式文件中有西文字符。
解决办法:全选模板数据,字体,选择宋代或者其它的中文字段。
2, 字段没有别替换掉。
原因:两个尖括号的标记中间有其它的字符,导致 ccflow 未识别你的标记。
解决办法:用写字本打开模板文件,搜索字段名,定位到节点标记位置。原来可能是<
MyField > 替换成 <MyField>。 就可以解决问题了。
3, 明细表未输出。
原因:
解决办法:
mailto:./WorkOpt/
调用外部接口(傻瓜表单有效)
特别说明:
对傻瓜表单有效:如果在当前的节点执行相关功能时,可以配置功能连接在这上面。
外部接口的定义是什么?
在自由表单设计器中,已经有了按钮元素,可以替代此部分的功能。
消息收听
什么是消息收听?
消息收听,在流程运行时,向指定的节点处理人发送消息。收听消息的点叫做侦听点.
被收听的点叫发送点。消息接受有三种方式:短信、邮件、邮件+短信.
比如:财务报销流程中, 发起流程人要在第一时间知道部门经理审批内容、总经理审批
内容. 如果财务审批通过了,我就可以第一时间到出纳那里领取报销款。
流程引擎中贯穿了这样的消息机制,就可以把每个岗位上的人员有机的连通起来,协调
起来,使整个单位的整体工作效率更高。
此消息收听机制就可以解决此问题。
如何设置消息收听?
1, 选择侦听节点,找节点属性 (在节点属性里,点消息收听按钮,系统弹出消息收听设置
的对话框。)
2,点设置消息收听。
3,设置收听内容格式.
4, 在当前节点设置收听的节点,意义是当前人员收听指定节点发送来的信息。
消息设置内部支持系统参数,类似于单据设置。
比如:
标题设置: 您的借款申请已经被总经理@Rec 审批通过,核准借款金额为@JieKuanJier。
@Rec, @JieKuanJier 就是变量。
发送成功转向条件
父子流程的设计
一个流程的一个节点,因工作的需要调起另外的 n 个子流程时。
现有一个主流程,一个或者多个小线程流程. 主流程在运行到指定节点时,它可以停留
在这里可以一次或者多次唤起其它的流程。我们把这样的流程称呼为主副流程,也叫父子流
程。唤起流程的节点,我们称为唤起节点。
调用子流程有两种方法:
1, 手工设置连接:
在表单中增加一个 Linke ,指向工作发起界面,事例:
以上事例说明了,启动流程 004,启动流程节点为 FK_Node_From =302 。 父亲流程
的 ID 用@OID 获取。
2, 关联流程:
如何设置这样的流程,你可以在节点属性里, 选择要关联的子流程。关联之后,需要诊
断一下。
这个调用链接就会显示在表单的下方。
如何进行二次开发对于这样的流程, 请等待一下二次开发问题. 要想进行二次开发你需
要很熟悉 ccflow 的运行表结构。
开发注意事项:
1, 唤起节点的表单数据可以 copy 到被唤起流程的第一个节点上.
2, 如果以前已经唤起过的流程没有运行下去,那么这个调用就会把上次没有发起的
子流程掉起来.
3, 如果没有的话就可以看到已经发起的流程列出来.
如果要实现自动转向,或者带有条件的转向,子流程你需要查看节点属性,如何配置它,
请参考节点属性。
同步分合流程的设计
mailto:
设置步骤:
在节点 1 设置节点类型为分流,节点 3 设置节点类型为合流。
异步分流程的设计
4.数据查询与报表
流程数据是流程运行的副产品,是在整个管理活动中最后的结果。我们知道所有的流程
数据在流程运行的过程中,都会把数据 copy 到流程数据表即:NDxxRpt , (xx 为转化成 int
类型的流程编号)。 关于运行的表机制结构请参考第 6 章。
报表的查询也是基于这个表的进行设计与查询的。
查询列表字段筛选
用来移除或者添加查询要显示的列。
选择要显示字段,然后点保存按钮。
列表字段显示顺序
在执行查询字段筛选后,系统就会让您开始执行列的显示顺序,如下图。
移动方向箭头,就可以改变顺序 ,本功能没有保存按钮。
查询条件设计
查询条件,就是在查询与分析时的条件,凡是外键、枚举、Boolen 类型的字段都可以
做为查询条件,如果不设置系统默认为部门与年月,为查询条件。
选中字段,点保存按钮。
重设默认值
清除以上设计,恢复默认值。
恢复默认值后,查询条件为:部门与年月,查询列为流程的基本属性列(流程状态 标题 操
作员部门 发起人 发起时间 参与人 跨度(天) 结束人 结束时间 年月 单据文号)。
查询预览
查询条件设计
数据展现的三大方式
Ccflow 对流程运行的数据处理分为流程查询,统计分析,对比分析 3 大固定的通用的
操作模式。
通用数据查询:
是对数据结果的查询,是通用的查询方式,有三大部分组成。查询条件,显示区域,翻
页区域。
数据分组分析:
有 5 大部分组成、查询条件、显示内容、分析内容、图形显示控制、数据区域。
对比分析:
略
5 系统维护
系统设置
全局设置
修改 D:\ccflow\VisualFlow\ 中的配置,现在把其界面化了。
系统枚举值
全局的枚举值维护.
编码表
系统中的编码表,也称为字典表,是用户在设计表单中维护的。
JS 校验库
《省略》
全局变量
用于表单中的全局变量。
功能执行
独立执行一个功能。
组织结构
主要是对部门、岗位、人员、人员与部门、人员与岗位之间的关系维护。
这些维护是在 ccflow 独立运行的模式下才可以使用的。在非独立模式下,这些用户、部门、
岗位都来自于 OA,ERP,GRP…. 系统,这些维护功能都在主系统中。
部门维护
岗位维护
人员维护
6 高级开发
类设计与数据库设计命名规则
总体规则
1, 以英文命名,每一个字母大写,提倡用简写。比如 Emp 人员 Dept 部门 Station 岗位。
2, 如果英文名称太长,或者不常用可考虑用中文命名,建议用中文的缩写。比如管理机
关 GLJG。
3, 对于类与表的命名必须有前缀,比如 类名, 表名为 Port_Dept.。
4, 前缀命名尽量简单。比如考核命名空间英文名称为 Check 空间可以命名为 CH。共用的
类英文名称为 Public 可简写为 Pub.
类库设计规则:
1, 格式为 BP+前缀+类名。比如: 人员类。
2, 属性命名与字段命名相同。特殊属性可以遵守总体命名规则。
3, 类库的倒数第一个命名空间要与要与物理表的前缀一致。比如:物理表考核项目。
。物理表为 CH_CheckItem。
4, 如果一个属性是外部实体或者枚举类型,以 His 开头。 比如在类人员中的部门类 HisDept.
5, 方法命名规则,遵守总体命名规则的 第 1,2 条。
6, 变量的命名规则,字母小写,以下划线开头。比如: age 年龄。addr 地址。要求每一
行都要有注释。
数据库设计命名规则:
1, 物 理 表 命 名 格 式 前 缀 + “ _ ” + 对 应 的 类 名 。 部 门 操 作 员 Port_Emp,
Port_Dept ,CH_CheckItem. WF_Flow,
2,视图命名格式。 “V_” + 前缀 + “_” +对应的类名。V_CH_CheckItemExt。
3, 存储过程命名规则“Pro_” + 前缀 + “_”+过程名称. 比如 Pro_Sys_Init.
4, 函数命名规则 “Fun” + + 前缀 + “_”+函数名. 比如:Fun_Sys_GenerOID.
5, 外键字段命名规则 “FK_” +对应的物理表类名.
比如:在人员表(Port_Emp)中表示部门的字段 FK_Dept. 同事一看就知道,这个字段是外键,
并且它的对应到 Dept 这个类的物理表上。
表结构与运行机制。
1, ccflow 有自动修复数据表功能, 所以表的字段的变化不需要用户干预由 ccflow 自动
完成. 所以如果你看到 sql 的错误,在执行一般就可以解决,如果解决不了,就执行一次数据
库修复工具。
2, ccflow 有自动增加字段备注功能,所以每个字段的中文名称都已经增加了数据表的
字段的备注属性上了,请注意对照,以方便您阅读 ccflow.
3, 了解 ccflow 的表结构是您二次开发的基础,所以 ccflow 的高级用户需要熟悉每个表,
掌握必要的表结构. 但是没有必要全部掌握。
4, ccflow 表命名规则是 前缀+"_"+表名. 大多以英文缩写或者,拼音大写组成. 比如:
Port_Emp 人员表. WF_Flow 流程表。
ccflow 表分为框架表、流程规则描述表、流程数据运行表、公共表 4 大类:
-------------------------------------------------------------------
, 框架表.
通常以 Sys_ 与 Port_ 开头. 也可以称为 ccflow 系统表. 它是存储系统运行的基础信息.
没有必要多了解它们.
列举如下:
Port_Emp: 操作员表.
Port_Station: 岗位表
Port_Dept: 部门表
Port_EmpStation: 人员岗位表.
Port_EmpDept: 人员部门对应表.
Port_Unit: 集团公司表,对于集团类的用户有效.
Sys_MapData: 映射主表
Sys_MapAttr: 字段表
Sys_MapDtl: 表单映射明细表.
Sys_MapExt : 表单映射扩展信息表
Sys_MapFrame :表单框架表
Sys_MapM2M: 多对多的关系表
Sys_FrmAttachment: 表单附件表
Sys_FrmImg: 表单图片表
Sys_FrmImgAth: 图片附件表.
Sys_FrmLab: 表单标签表
Sys_FrmLine: 表单线表.
Sys_FrmLink: 表单连接.
Sys_FrmRB: 表单单选按钮.
Sys_GloVer: 全局变量表.
Sys_GroupField: 表单字段分组表.
Sys_Log:日志表
Sys_Serial : 序列号生成记录表.
Sys_Enum: 枚举信息表. SELECT * FROM SYS_ENUM WHERE ENUMKEY='WFState'
Sys_EnumMain: 枚举信息主表.
Sys_SFTable :自定义表
Sys_UserRegedit : 用户注册信息表.
Sys_CField: 查询字段选择信息存储表.
Sys_Config: 系统配置表.
Sys_Contrast: 统计分析表:
Sys_DefVal: 默认值表,快速填写大块文本时临时信息存储.
, ccflow 流程规则描述表.
用来存储流程配置的基础信息。 以 WF_ 开头.
列举如下:
WF_FlowSort : 流程类别表.
WF_Flow : 流程表.
WF_FlowStation: 流程完成操送的岗位表.
WF_FlowEmp : 可控制流程的人员表.
WF_FlowNode : 流程的节点表.
WF_Node : 节点表
WF_NodeStation : 节点岗位(能够访问该节点的岗位.)
WF_NodeDept : 节点部门表(能够访问该节点的部门)
WF_NodeEmp : 节点人员表(能够访问该节点的人员)
WF_NodeFlow: 节点了流程表(在此节点上能够调起的子流程)
WF_NodeReturn : 可退回到的节点(一个节点能够退回的节点,多对多的关系.)
WF_BillTemplate 单据表
WF_BillType 单据类型表
WF_Cond :条件表 (方向条件,流程完成条件,节点完成条件)
WF_Direction :方向表
WF_Event : 事件表(节点事件,流程事件)
WF_FAppSet : 应用配置表(可以配置调用第三方的数据)
WF_Frm 流程表单.
WF_FrmNode : 流程表单与节点对应关系表.
WF_LabNote : 标签用在流程设计器的标签.
WF_Listen : 消息收听配置表. 详细请 baidu "ccflow 消息收听"
WF_Rpt : 流程报表设计
WF_RptAttr : 流程报表属性
WF_RptEmp : 报表可访问的人员
WF_RptStation : 报表可访问的人员
WF_RunRecord : 报表可访问的人员
WF_SelectAccper : 报表可访问的人员
, ccflow 流程运行数据表.
WF_GenerFH : 分合流信息注册表,对于是分合流的流程才有效,发起一条分合流,就
多一条数据在此。
WF_GenerWorkFlow : 流程注册表
WF_GenerWorkerlist : 节点工作人员表.(流程运行完成后此记录就被删除了)
WF_Bill : 单据信息存储表.
WF_CHOfFlow : 流程考核信息表.
WF_CHOfQL : 流程质量考核信息表.
WF_Emp : 流程人员配置信息表
WF_FileManager :流程附件信息存储表
WF_ForwardWork : 转发信息存储表.
WF_RememberMe : 投递路径记忆表, 请 baidu "ccflow 智能投递"
WF_ReturnWork : 退回信息存储表
WF_M2M : 一对多的关系存储表.
, 公共字典表.
大多以 Pub CN 开头。
比如: 城市,省份,片区,年月,工作日. 这里不介绍了.
如果您对以上的表结构在大概的认识,您可以阅读如下文件了.
了解 ccflow 数据表运行机制,为自己项目做高级的查询与二次开发(开发进阶篇).
流程生命周期(创建、运行、数据归档)
流程创建时
流程表 WF_Flow, 节点 WF_Node.
第 1 步:, 流程自动生成一个三数数的流程编号. 比如: 001.
第 2 步:, ccflow 自动生成开始与结束两个节点. 节点编号为 101 与 199. 如果在有创建
节点时,节点编号就为 102, 103 ....
第 3 步:, ccflow 会为每个节点生成一个物理表,这个节点的信息存储这个表里,格式为
“ND” + 节点编号,比如:ND101,ND199.
每个节点表都有相同的字段.
比如: OID 工作 ID, RDT 记录日期, Rec 记录人,CDT,完成时间. NodeState 节点状态.
开始节点比较特殊, 它多一个 WFState 字段. 就是流程状态,用来记录流程运行的状
态.
第 4 步:, 建立一个流程 WF_Flow,插入一条流程数据. WF_Node 插入 n 条节点数据.
第 5 步:, ccflow 会产生一个流程数据表,系统产生一个"ND" + 流程编号+"Rpt" 命名的
表, 比如:ND1Rpt 它是流程数据表。
它把所有节点字段的汇总集合形成的一个表.流程在启动后,运行中,完成后,这个表的
数据一直跟随流程运转而更新.所以你可以查询到该流程的任何数据在这个流程表中。
这个流程的扩展字段有。
字段英文名称 中文名 说明
OID 工作 ID
FID 流程 ID
Title 标题
BillNo 单据编号 一个流程的顺序号
WFState 流程状态 流程状态
CDT 当前日期
Emps 当前可操作人员
FK_Dept 发起人部门
FK_NY 年月
FlowDaySpan 流程时间跨度 从开始发起到流程结束
FlowEmps 参与的流程人员 参与整条流程上的人员,人员编号用逗
号分开。
FlowEnder 结束人 最后处理流程的人
FlowEnderRDT 结束日期 流程的结束日期
FlowStartRDT 发起流程日期 发起流程日期
MyNum 个数 恒等于 1,用于分析。
第 6 步:, ccflow 会产生一个节点视图,V+流程编号. 比如:V001. 这个视图就是把本流
程中的各个节点数据,相同的字段都汇总出来。
事例如下:
CREATE VIEW [dbo].[V001] /* WorkFlow:测试流程 Date:2011-07-30 */
AS
SELECT '101'+'_'+CAST(OID AS varchar(10)) +'_'+CAST(FID AS VARCHAR(10))
AS MyPK, '101' AS FK_Node,OID,FID,RDT,substring(RDT,1,7) AS
FK_NY,CDT,Rec,Emps,NodeState,FK_Dept, 1 AS MyNum FROM ND101
UNION
SELECT '199'+'_'+CAST(OID AS varchar(10)) +'_'+CAST(FID AS VARCHAR(10))
AS MyPK, '199' AS FK_Node,OID,FID,RDT,substring(RDT,1,7) AS
FK_NY,CDT,Rec,Emps,NodeState,FK_Dept, 1 AS MyNum FROM ND199
GO
对于开发时效考核的朋友大用用处,可以统计每个节点用的天数,规定完成的天数,
完成的工作量。
第 7 步:, ccflow 会修复流程数据视图。V_FlowData 。 这个视图就是 union 所有的流
程数据表,形成的视图,如果要对全体流程执行查询,统计与分析用这个视图非常方便。
流程运行时.
分合流流程注册表: WF_GenerFH
流程注册表: WF_GenerWorkFlow
工作人员表: WF_GenerWorkerlist
1. 启动一个流程后,ccflow 自动产生一个 WorkID, 一个流程一个 WorkID, 并且处开始
节点表(ND101)中插入一条数据, WFState=0 流程状态=0 表示运行中.
2. 启动一个流程后,就产生一条数据,放在 WF_GenerWorkFlow ,
3. 发送一个步骤后,就把接受的工作人员放入 WF_GenerWorkerlist .
4. 流程运行完成后,就把两个表中的这个 WorkID 的数据清除.
5, 在流程数据表里(ND1Rpt)中, 每个节点有新采集的数据就会 copy 到此表中.
所以结合流程数据表,与当前的这两个表,你可以查询出来想要的数据满足二次开发.
流程完成后(数据归档).
流程完成后,就与 WF_GenerWorkFlow ,WF_GenerWorkerlist 没有关系了。
所以查询流程数据从,流程数据表里,或者从节点数据表里查询 . 比如 : ND101,
ND102, ND199, NDRpt. V001 。
开始节点的流程状态=1 , 表示此流程已经完成。
数据查询
我们知道了 ccflow 的数据产生规则,以下是经常用到的 ccflow 数据查询方法
要想二次开发你需要熟悉如下查询方法。
查询待办一个人的待办工作:
SELECT * FROM WF_GenerWorkerList WHERE FK_Emp='zhoupeng' and IsPass=0 AND
IsEnable=1
查询在途工作:
SELECT * FROM WF_GenerWorkerList WHERE FK_Emp='zhoupeng' and IsPass=1 AND
IsEnable=1
查询一个人的一个流程的历史处理工作。
SELECT * FROM V_FlowData WHERE FlowEmps LIKE ',zhoupeng,' and WFState=1
如果对于整个流程的查询那就查询视图。
SELECT * FROM V_FlowData
利用 ccflow 流程数据,为客户开发一个高级流程查询
页面。
如果通用查询界面满足不了你的要求,你需要自己开发一个查询界面来完成用户的查询
需要,下面讲解如何开发一个高级个性化的查询界面。阅读如下内容,需要您了解了 ccflow
的数据表结构,流程数据存储结构基础之上。
如果你是独立运行模式,使用的 ccflow 的整体界面,那就修改 ccflow 主菜单文件。
D:\ccflow\VisualFlow\DataUser\XML\
1, 设置 Url=””,
2, 在 OnClick=”” 增加一段 js 代码让其转入你的查询界面中去。
在做您个性化的查询时,你可能需要调用如下接口:
流程轨迹图:
流程工作报告:
表单附件
如何打开表单附件需要你查询了解表单设计器,多个附件的存储。在这里简述如下:
1, 首先要明确要查询那个节点上的附件,你能明确节点 ID。
2, 查询物理表 SELECT * FROM Sys_FrmAttachmentDB WHERE RefPKVal=工作 ID
AND FK_MapData='ND'+节点编号
流程发起参数传递。
流程发起节界面(,, )会经常被
如下功能调用。
1,一个流程被集成的系统调用。
2,一个流程结束后,唤起另外一个流程。
调用方式传递:
发起一个流程
如果向这个流程的节点表单的文本框内,传递一些预订的数据就按如下格式。
比如:从项目列表中增加一个连接发起项目施工流程就按如下约定。
这样用户在发起这个流程时就会把项目编号,项目名称传递到用户的表单上去,你可以
解决主表的参数传递问题,但是 ccflow 没有解决如何把数据传递到明细表,如果需要明细
表的数据预制就需要根据表单事件来完成。
其它:
用户在第一个节点保存后,ccflow 把记录表单采集的数据到草稿里,每个人,每条流程
只有一个草稿,如果你要想删除这个草稿,就如下规则。
如果你想删除草稿还想传递参数,按照如下格式。
我的项目。
Ccflow 节点完成后转向:
功能调用(二次开发 SDK)
说明:
1, 您的系统与 ccflow 交互是通过 Url 与参数约定的,比如:要在你的系统里登陆 ccflow
里面的某些功能。就需要按照一定的约定规则执行。
2, 参数分为基本参数、必用参数与可用参数,基本参数有三个 UserNo,(用户编号)
SID(登陆 ID 号). DoWhat(执行标记). 比用参数是根据 DoWhat 来确定的,比如您要启动一
个流程就需要 FK_Flow 这个参数。可用参数是根据。
3,根据您需要的功能,查询参数列表。
访问位置: http://yourServerIP/Flow/ .
功能列表
编号 名称 可选参数 说明 内容说明
Login 登陆 无
&SID=123323
&DoWhat=Login
系统登陆
Start 发起 无
&SID=123
&DoWhat=Start
调用发起工作界面,显示当前
用户能够发起的工作列表。
StartSmall 发起指定
的流程
FK_Flow
&SID=123
&DoWhat= StartSmall
&FK_Flow=001
调用简洁的流程发起界面,没
有头部与尾部。
Emps 通讯录 无
&SID=123323
&DoWhat=Emp
调用通讯录
EmpWorks 待办工作 FK_Flow
(可选)
&SID=123
&DoWhat=EmpWoks
打开我的工作列表。
没有 FK_Flow 列出全部,有
就列出指定的流程。
FlowSearch 流程查询 FK_Flow
(可选)
Key 查 询 关
键字(可选).
流 程 表 里 外
键、枚举字段
(可选)。
&SID=123
&DoWhat= FlowSearch
&FK_Flow=006 (可选)
&Key=文本框中的关键字 (可选)
&枚举字段 n=值 n (可选)
&外键字段 n=值 n (可选)
调用流程数据查询功能。
如果 FK_Flow 为空就调用流
程查询主界面。否则调用指定
流程编号的流程。
在调用指定流程查询功能时,
可以传入按照关键字查的参
数 Key, 与外键,枚举值指定
的参数,作为查询条件。
FlowFX 流程分析 同上 同上 同上
http://yourServerIP/Flow/
DealWork 处理
指定
的工作
FK_Flow
WorkID
字段值(可选)
&SID=123
&DoWhat=DealWork
&FK_Flow=001
&WorkID=10001
&字段名称=字段值
处理工作 ID 为 10001 的工作。
字段值参数是可选的。
DealWorkI
nSmall
处理
指定
的工作
(简洁窗口)
同上 同上 同上只是调用简洁窗口。
常用的测试案例
--调用待办工作.
6
--调用发起工作主要界面.
--发起指定的流程. 没有参数.
--发起指定的流程. 并且传入参数,比如目的地字段. 也可以是合同编号......
dedi=shandongjinan
--发起指定的流程(简洁页面).
--发起指定的流程(简洁页面). 并且传入参数,比如目的地字段. 也可以是合同编号。
&mudedi=shandongjinan
--调用流程查询 无参数。
h
--调用流程查询 带有关键字的。
h&Key=11233
--调用流程分析.
--处理指定的工作,
&WorkID=48
--处理指定的工作,带有参数
&WorkID=48&mudedi=jinan
--处理指定的工作(利用简洁界面),
ow=006&WorkID=48
--处理指定的工作(利用简洁界面),带有参数
ow=006&WorkID=48&mudedi=jinan
获取 ccflow 数据(SDK)
获取数据是如何根据您自己的需要,通过 ccflow 的接口获取想要的数据。
比如:发起流程,待办工作,在途工作。
类名:. Dev2Interface
名称 静态方法 参数 返回值
获取当前操作
员可以发起的
流程集合
DB_GenerCanStartFlowsOfEntitie
s
无
同上 DB_GenerCanStartFlowsOfDataTable 无 DataTable
获取当前操作
员的待办工作
DB_GenerEmpWorksOfDataTabl
e
Fk_flow 流程编
号
DataTable
获取当前操作 DB_GenerRuningOfEntities 无 GenerWorkFlowExts
员的在途工作
同上 DB_GenerRuningOfDataTable 无 DataTable
7 Ccflow 技术文摘
ccflow 如何提高工作流程管理系统运行效率?
关键字:工作流程管理系统,workflow,bpm,执行效率,缓存.
Ccflow 通过如下方提高业务流程系统执行效率。
缓存机制
1, 什么情况下用到缓存?
有以下几条缓存数据的规则。
1, 数据被频繁利用,但是不经常更新,数据量不太大.
比如人员、岗位、部门。
2, 数据在同一个过程中经常利用,比如:流程对一个实体进行运算. 它经常被各个方法所使
用.
比如纳税人流程中: 纳税人的信息 \ 土地流程中的土地信息.
3, 用户的个人信息,比如他的岗位集合,部门集合.....
2 , 缓存分类.
全局级的: 在 application 中应用. 比如:部门、岗位、人员、持久化存储的映射.
用户级的. 在 session 中应用. 一个操作员的个人信息.
临时级的. 临时应用,在各个过程中应用,一个操作中消亡。
3, 缓存怎么在 ccflow 工作流引擎中表现?
1, 系统启动时,自动的把一个常用的数据调入到 全局级的缓存区。
2, 用户登陆后,把该用户的岗位、部门集合放入到 用户级的缓存区.
3, 系统在运算时,大部分数据已经被加工处理好, 大大减轻了服务器的负担.
事先计算:
事先计算就是把能够计算得到的属性在流程设计时提前计算出来,比如:节点的位置,
它是一个枚举类型,开始节点、中间节点、结束节点。如果在运行中计算会消耗服务器的资
源,如果在设计阶段计算好,就会节省这笔开销。
这些事先计算包含多个方面,比如:表单是否有明细、是否有框架、是否有扩展应
用。。。。。
XML 数据的缓存
系统启动起来后就会把 xml 数据调入到缓存处理,节省了大量的 IO 操作。
参数执行:
多达 95%以上的 sql 都是用参数执行的,您可以通过监控工具捕获到它们。Ccflow 是
运 行 在 bp 框 架 上 的 , 所 有 的 实 体 类 , 都 是 放 在 SQLCash 这 个 类 中 , 所 有 的
update,delete,insert,select 操作都是采用的参数执行,生成的 sql 放入缓存里。
ccflow 向流程开始节点表单传输数据方法大全
在启动开始节点时,通常会向其发起点(流程的第一个点)传输一序列值,来减少用户的
输入或者处理特定业务。下面把这些特定的方法总结汇总如下。
利用 url 传输数据给表单:
事例:
解释:利用 Url 的方式传递值,Key 就是表单的字段名,如果一致 ccform 就是自动获
取它们把值放入表单控件里。
这种方式适用于数据量比较少,没有明细表的值。
把指定物理表的一列值传递给表单:
事例:
=No&FromTablePKVal=GB1001
解释:利用特定的标记传递 table 名称,这个 table 的主键列名称,指定的行数据。 系
统就会自动的生成一个 sql 查询到这个行数据。
Select * from FromTableName where FromTablePK =’ FromTablePKVal’.
如果查询不到数据,就会抛异常。
查询到数据就会把这一行的数据根据列名与表单属性名称相对应的 copy 上去。
这种方式适用于数据量比较大数据传递。
其它流程节点通过 url 转向,转向到开始节点:
应用背景:一个流程 A 结束后,根据条件它要启动另外一个流程 B,对于 A 流程结束
点的数据(主表数据,明细表数据,附件数据)都要传递到 B 流程的第一个节点上去,
类于 ccflow 节点之间数据传递。
事例:
在 A 流程节点属性中->配置 ->成功发送后转向方式 :转向指定的 url 转向处理内
容: 这种方式系统就会直接把 A 流程结束节
点的数据复制到 B 流程的开始节点上去。这些数据包括: 主表、多个从表、附件数据。
Ccflow 采用静默的默认的传递。实现这些方法请参考 中的 类中的
NewWork() 方法。
删除草稿:
ccflow 草稿的概念: 当启动一个流程时,ccflow 就会为当前操作人员第一个节点表单插
入一条数据,用户点保存时,就会更新这条数据,这个 NodeState=0,做为草稿,如果
发送出去了,NodeState=1,就变成了节点表单的历史数据了。
如果有了草稿 ccflow 就会把这个草稿调出来显示给用户。也就是说当前打开当前点时
草稿就产生了。
草稿的产生是因为用户在开始节点时,数据了数据,保存了但是没有发送。
如何删除草稿:
事例: IsDeleteDraft=1
说明:删除主表草稿数据,从表草稿数据,附件数据。
=============OVER=============