第1节.关键字
驰骋工作流引擎 流程快速开发平台 workflow ccflow jflow
第1节.线性流程节点运动(发送)设计
发送就是从一个节点发送到另外一个节点,也可以说从一个节点运动到另外的节点上去。
1.1.1:执行序列图(线性流程运动)
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210417230611981.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTQyMTE5Nw==,size_16,color_FFFFFF,t_70
在计算发送到下一个节点动作里,请参考方向条件设计规则。
在计算到达节点的接受人范围动作里,请参考接收人规则设计。
在最后一个动作里“执行当前节点完成过程”,会对一些表产生影响,请参考下一章节。
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:发送返回的结果对象设计
概要说明:
执行发送结果发送成功后,需要把发送结果的变量返回过来,比如,发送到那里了?发送给那些人了?当前节点信息等等。这个对象就叫发送后返回对象。
发送后返回对象就是一系列变量。
请参考如下代码:
输出信息: