文档章节

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计

ccflow周朋
 ccflow周朋
发布于 01/11 12:19
字数 1620
阅读 0
收藏 0

第1节. 关键字

驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow

第1节. 线性流程节点运动(发送)设计

发送就是从一个节点发送到另外一个节点,也可以说从一个节点运动到另外的节点上去。

1.1.1: 执行序列图(线性流程运动)

 

在计算发送到下一个节点动作里,请参考方向条件设计规则

在计算到达节点的接受人范围动作里,请参考接收人规则设计

在最后一个动作里“执行当前节点完成过程”,会对一些表产生影响,请参考下一章节。

1.1.2: 对相关的表影响

流程从一个节点运动到另外一个节点上,就需要影响流程状态,流程节点所在的位置变化,影响到流程引擎表,与流程业务表,轨迹表,本章节分别介绍了相关表的变化内容。

1.1.2.1: 对WF_GenerWorkflow 表的影响

WF_GenerWokFlow 流程引擎注册表。

字段名

中文名

解释

WorkID

工作ID

WFState

状态

设置为:运行中的状态

Title

标题

FK_Flow

流程模版编号

FK_Node

停留节点

设置为:当前停留的节点。

Starter

发起人

 

RDT

发起日期

 

TodoEmps

当前处理人

设置为:当前节点的工作接收人。

1.1.2.2: 对WF_GenerWorkerlist表的影响

工作人员列表: WF_GenerWokerList 用于记录运行中的业务流程工作人员的信息的表。对于一个流程模版,每个节点,每个流程实例,每个工作人员,仅仅并且只有一条数据,在该表里,在流程运行到结束后,该流程实例下的所有的人员数据,就会被清除掉。

一个流程实例从一个节点运动到另外一个节点需要变化到,当前节点工作人员的状态变化。到达的工作人员新增接受人数据,让该节点上的接受人产生待办工作。

对于当前节点该表的数据变化:

字段名

中文名

解释

WorkID

工作ID

主键

FK_Emp

状态

主键

FK_Node

标题

主键

IsPass

是否通过?

设置为:1标识已经通过。

IsRead

是否读取?

0=未读,1=已读

SDT

应完成日期

RDT

到达日期

CDT

实际完成日期

设置为:当前完成日期.

对与到达节点该表的数据变化:

对于产生的新的工作人员,每个人员都要新建一条记录

字段名

中文名

解释

WorkID

工作ID

主键

FK_Emp

状态

主键

FK_Node

标题

主键

IsPass

是否通过?

设置为:0=未通过

IsRead

是否读取?

设置为:0=未读

SDT

应完成日期

根据时效考核规则计算当前应该完成的时间

RDT

到达日期

设置为:当前日期

CDT

实际完成日期

设置为:null

1.1.2.3: 对NDxxxRpt业务表的影响

业务表包含10多个系统字段:

字段名称

类型

说明

OID

int

OID主键-与流程的workid一致

RDT

nvarchar

记录日期

Title

nvarchar

流程标题

FID

int

FID分合流用到

CDT

nvarchar

完成日期

Rec

nvarchar

记录人

Emps

nvarchar

操作员,多个用逗号分开。

FK_Dept

nvarchar

所在部门

FK_NY

nvarchar

年月,比如:2018-01,统计分析用.

MyNum

int

个数,统计分析用

PNodeID

int

父子流程所用

PrjName

nvarchar

工程名称

PrjNo

nvarchar

工程编号,工程流程所用

PEmp

nvarchar

父子流程所用

AtPara

nvarchar

参数属性

BillNo

nvarchar

单据编号

FlowNote

nvarchar

流程备注

GUID

nvarchar

唯一标识符

WFSta

int

简易状态

FlowStartRDT

nvarchar

发起日期

FlowEnderRDT

nvarchar

最后节点处理日期

FlowEndNode

int

设置为发送到最后节点.

FlowDaySpan

float

流程跨度天数,重新计算

PWorkID

int

父子流程所用

PFlowNo

nvarchar

父子流程所用

FlowEmps

nvarchar

设置为:流程参与人,增加当前人员

FlowEnder

nvarchar

设置为:最后处理人

FlowStarter

nvarchar

流程发起人

WFState

int

流程状态

1.1.2.4: 对NDxxTrack表的影响

增加一笔从节点,从人员,到节点,到人员的发送动作日志数据。

1.1.3: 发送的接口定义Node_SendWork

发送接口,就是发送调用的方法如下图所示:

简洁的发送方法:参数:flowNo, worked.

具有主表参数的发送方法:Node_SendWork(String flowNo, Int64 workid,Hashtable ht)

 

说明:如果发送的时候需要把业务主表的数据传入到系统中,就需要使用hashtable 这个参数,key value 的方式。

1.1.4: 万能发送的API

有一个重写的API,是愿意发送到本流程那个节点,就发送到那个节点,愿意发送到那个接受人,就发送到那个接受人,我们把这个API称为万能的API。

比如:当前节点,发送到下一个节点有分支。

代码: BP. Dev2Interface.Node_SendWork(‘001’,2232,0,null);

发送该流程让节点配置的方向条件与到达节点的接受人规则自动计算,自动计算到达的节点,自动计算到达节点的接收人。

代码: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,null);

标识,发送到指定的节点105上去,并且105节点的接收人自动计算,就是按照节点配置的规则计算。

代码: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan’);

标识,发送到指定的节点105上去,并且105节点的接收人设置为张三。

代码: BP. Dev2Interface.Node_SendWork(‘001’,2232,105,’zhangsan,lisi’);

标识,发送到指定的节点105上去,并且105节点的接收人设置为zhangsan与lisi两个人。

1.1.5: 发送返回的结果对象设计

概要说明:

执行发送结果发送成功后,需要把发送结果的变量返回过来,比如,发送到那里了?发送给那些人了?当前节点信息等等。这个对象就叫发送后返回对象。

发送后返回对象就是一系列变量。

请参考如下代码:

输出信息:

未完 待续~

更多内容请查看ccflow官网  www.ccflow.org

© 著作权归作者所有

共有 人打赏支持
ccflow周朋

ccflow周朋

粉丝 185
博文 253
码字总数 179025
作品 2
济南
后端工程师
私信 提问
开源驰骋工作流引擎设计ccflow已读回执设计

驰骋工作流引擎设计ccflow已读回执 关键字:工作流引擎 已读回执 CCFlow 工作流程引擎已读回执 开源工作流引擎 工作流引擎已读回执定义: 在工作流程引擎中:节点A 向节点B运动后,A的处理人...

ccflow
2013/04/16
0
0
设计工作流就象设计一部汽车

关键字: 工作流设计 工作流开发 设计一个好的工作流引擎,就象设计一部汽车,它必须有发动机,提供动力,轮子提供行走,灯提供照明,喇叭提供提示。刹车提供停止,倒挡提供后退出。车门提供...

ccflow周朋
2009/06/05
210
0
开源驰骋/JFlow

#JFlow开源工作流 目前支持以下数据库(都能正确获取注释信息): 流程引擎设计支持所见即所得的设计:节点设计、表单设计、单据设计、报表定义设计、以及用户菜单设计。 流程模式简洁,只有4种...

开源驰骋
2015/04/10
0
0
驰骋工作流引擎设计系列04 流程引擎表结构的设计

第1节. 关键字 驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow 第1节. 流程引擎表结构的设计 流程引擎表是流程引擎控制流程运转的数据存储表,是整个流程引擎的核心表。理解表结构,...

三九二七
01/04
0
0
开源驰骋/CCFlow

CCFlow基本信息.### 产品名称:驰骋.net工作流引擎. 简称 CCFlow 版本: ccflow6 英文名称: ChiCheng Workflow Engine 官方网站: http://ccflow.org 开发历史: 2003-2016年. 性质: 100%开源,无...

开源驰骋
2016/05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-13(Mybatis基本概念和简单的例子)

在mybatis初次学习Mybatis的时候,遇到了很多问题,虽然阿里云的视频有教学,但是视频教学所使用的软件和我自己使用的软件不用,我自己用的数据库是oracle数据库,开发环境是idea。而且视频中...

白话
今天
3
0
Java基础:String、StringBuffer和StringBuilder的区别

1 String String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: /** The value is used for character storage. */private final cha...

watermelon11
今天
2
0
mogodb服务

部署MongoDB 官网: https://www.mongodb.com/download-center/community 创建mongo数据目录 mkdir /data/mongodb 二进制部署 wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x8......

以谁为师
昨天
5
0
大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
昨天
4
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部