第1节. 关键字

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

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

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

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

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第1张图片

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第2张图片

 

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

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

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

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表的影响

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

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第3张图片

1.1.3: 发送的接口定义Node_SendWork

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

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第4张图片

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

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第5张图片

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

image

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

1.1.4: 万能发送的API

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

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第6张图片

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

代码: 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: 发送返回的结果对象设计

概要说明:

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

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

请参考如下代码:

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第7张图片

输出信息:

驰骋工作流引擎设计系列07 线性流程节点运动(发送)设计_第8张图片