Package com.codingapi.flow.node
Interface IFlowNode
- All Superinterfaces:
IMapConvertor
- All Known Implementing Classes:
ApprovalNode,BaseAuditNode,BaseFlowNode,ConditionBranchNode,DelayNode,EndNode,HandleNode,InclusiveBranchNode,NotifyNode,ParallelBranchNode,RouterNode,StartNode,SubProcessNode,TriggerNode
流程节点
流程执行的生命周期,流程在运行之前将会先构建
1. 流程的调用第一步将会执行
2. 在
3. 流程办理完成后将会分析流程对的下一节点对象
4. 在获取下一节点对象时,将会访问当节点的拦截策略
5. 获取到下一节点对象后,则会访问流程节点的
6. 当
7. 在构建出先的流程记录数据以后,在数据保存时还将会触发节点对流程记录对象的填充函数
流程执行的生命周期,流程在运行之前将会先构建
IFlowAction IFlowNode FlowSession 等对象 1. 流程的调用第一步将会执行
IFlowAction.run(FlowSession) 函数。2. 在
IFlowAction.run(FlowSession) 中流程将需要判断当前流程isDone(FlowSession) 是否已经办理完成。 3. 流程办理完成后将会分析流程对的下一节点对象
BaseAction.triggerNode(FlowSession, Consumer) ()},将递归掉分析执行下一节点 4. 在获取下一节点对象时,将会访问当节点的拦截策略
filterBranches(List, FlowSession),该函数将根据节点的配置进行匹配下一节点。 5. 获取到下一节点对象后,则会访问流程节点的
handle(FlowSession) 函数分析流程是否继续执行。当函数返回true时则会继续循环调用匹配下一节点的逻辑,即triggerNode的递归逻辑。 6. 当
handle(FlowSession) 返回的是false时,则停止继续下一节点流程,开始执行当前节点的生成流程记录函数 generateCurrentRecords(FlowSession) 7. 在构建出先的流程记录数据以后,在数据保存时还将会触发节点对流程记录对象的填充函数
fillNewRecord(FlowSession, FlowRecord) -
Method Summary
Modifier and TypeMethodDescription获取节点操作对象管理器voidfillNewRecord(FlowSession session, FlowRecord flowRecord) 填充流程记录,在保存流程记录时将会触发当前节点的填充流程记录函数。filterBranches(List<IFlowNode> nodeList, FlowSession flowSession) 过滤条件分支generateCurrentRecords(FlowSession session) 构建当前节点下的流程记录,不需要创建记录的返回 空集合getId()节点idgetName()节点名称intgetOrder()节点顺序,同一层级下的节点顺序,越小则优先级越高getType()流程类型booleanhandle(FlowSession session) 是否执行节点 当前流程节点执行完成以后,触发下一环节时执行的函数,当返回true时则将继续执行后续节点的handle流程,当返回false时则不继续执行后续流程,将执行当前节点的创建流程记录函数generateCurrentRecords(FlowSession)booleanisDone(FlowSession session) 节点是否完成获取节点策略管理器voidverifyNode(FormMeta form) 节点验证 用于流程配置完成以后的验证时触发voidverifySession(FlowSession session) 节点验证会话 流程执行continueTrigger之前需要先对判断请求会话的参数是否满足节点参数要求Methods inherited from interface com.codingapi.flow.common.IMapConvertor
toMap
-
Method Details
-
getId
String getId()节点id -
getName
String getName()节点名称 -
getType
String getType()流程类型 -
getOrder
int getOrder()节点顺序,同一层级下的节点顺序,越小则优先级越高- Returns:
- 节点顺序
-
verifyNode
节点验证 用于流程配置完成以后的验证时触发 -
handle
是否执行节点 当前流程节点执行完成以后,触发下一环节时执行的函数,当返回true时则将继续执行后续节点的handle流程,当返回false时则不继续执行后续流程,将执行当前节点的创建流程记录函数generateCurrentRecords(FlowSession)- Parameters:
session- 会话- Returns:
- true: 继续执行下一个节点
-
verifySession
节点验证会话 流程执行continueTrigger之前需要先对判断请求会话的参数是否满足节点参数要求 -
generateCurrentRecords
构建当前节点下的流程记录,不需要创建记录的返回 空集合- Parameters:
session- 会话- Returns:
- 流程记录
-
actionManager
ActionManager actionManager()获取节点操作对象管理器- Returns:
- 节点操作对象管理器
-
strategyManager
NodeStrategyManager strategyManager()获取节点策略管理器- Returns:
- 节点策略管理器
-
isDone
节点是否完成- Parameters:
session- 会话- Returns:
- true: 节点完成
-
fillNewRecord
填充流程记录,在保存流程记录时将会触发当前节点的填充流程记录函数。由于不同节点存储的流程数据会存在差异。- Parameters:
session- 会话flowRecord- 流程记录
-
filterBranches
过滤条件分支- Parameters:
nodeList- 当前节点下的所有条件flowSession- 当前会话- Returns:
- 匹配的节点
-