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

第1节. 关键字

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

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

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

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




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

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

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

1.1.1: 对相关的表影响

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

1.1.1.1:对WF_GenerWorkflow表的影响

WF_GenerWokFlow流程引擎注册表。

字段名中文名解释

WorkID工作ID无

WFState状态设置为:运行中的状态 

Title标题无

FK_Flow流程模版编号无

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

Starter发起人 

RDT发起日期 

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


1.1.1.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


[if !supportLists]1.1.1.3: [endif]对NDxxxRpt业务表的影响

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

字段名称类型说明

OIDintOID主键-与流程的workid一致

RDTnvarchar记录日期

Titlenvarchar流程标题

FIDintFID分合流用到

CDTnvarchar完成日期

Recnvarchar记录人

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

FK_Deptnvarchar所在部门

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

MyNumint个数,统计分析用

PNodeIDint父子流程所用

PrjNamenvarchar工程名称

PrjNonvarchar工程编号,工程流程所用

PEmpnvarchar父子流程所用

AtParanvarchar参数属性

BillNonvarchar单据编号

FlowNotenvarchar流程备注

GUIDnvarchar唯一标识符

WFStaint简易状态

FlowStartRDTnvarchar发起日期

FlowEnderRDTnvarchar最后节点处理日期

FlowEndNodeint设置为发送到最后节点.

FlowDaySpanfloat流程跨度天数,重新计算

PWorkIDint父子流程所用

PFlowNonvarchar父子流程所用

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

FlowEndernvarchar设置为:最后处理人

FlowStarternvarchar流程发起人

WFStateint流程状态





1.1.1.4:NDxxTrack表的影响

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



1.1.2:发送的接口定义Node_SendWork

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


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




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

 

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

1.1.3: 万能发送的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.4: 发送返回的结果对象设计

概要说明:

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

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


请参考如下代码:



输出信息:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容