Interface IFlowNode

All Superinterfaces:
IMapConvertor
All Known Implementing Classes:
ApprovalNode, BaseAuditNode, BaseFlowNode, ConditionBranchNode, DelayNode, EndNode, HandleNode, InclusiveBranchNode, NotifyNode, ParallelBranchNode, RouterNode, StartNode, SubProcessNode, TriggerNode

public interface IFlowNode extends IMapConvertor
流程节点
流程执行的生命周期,流程在运行之前将会先构建 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 Details

    • getId

      String getId()
      节点id
    • getName

      String getName()
      节点名称
    • getType

      String getType()
      流程类型
    • getOrder

      int getOrder()
      节点顺序,同一层级下的节点顺序,越小则优先级越高
      Returns:
      节点顺序
    • verifyNode

      void verifyNode(FormMeta form)
      节点验证 用于流程配置完成以后的验证时触发
    • handle

      boolean handle(FlowSession session)
      是否执行节点 当前流程节点执行完成以后,触发下一环节时执行的函数,当返回true时则将继续执行后续节点的handle流程,当返回false时则不继续执行后续流程,将执行当前节点的创建流程记录函数 generateCurrentRecords(FlowSession)
      Parameters:
      session - 会话
      Returns:
      true: 继续执行下一个节点
    • verifySession

      void verifySession(FlowSession session)
      节点验证会话 流程执行continueTrigger之前需要先对判断请求会话的参数是否满足节点参数要求
    • generateCurrentRecords

      List<FlowRecord> generateCurrentRecords(FlowSession session)
      构建当前节点下的流程记录,不需要创建记录的返回 空集合
      Parameters:
      session - 会话
      Returns:
      流程记录
    • actionManager

      ActionManager actionManager()
      获取节点操作对象管理器
      Returns:
      节点操作对象管理器
    • strategyManager

      NodeStrategyManager strategyManager()
      获取节点策略管理器
      Returns:
      节点策略管理器
    • isDone

      boolean isDone(FlowSession session)
      节点是否完成
      Parameters:
      session - 会话
      Returns:
      true: 节点完成
    • fillNewRecord

      void fillNewRecord(FlowSession session, FlowRecord flowRecord)
      填充流程记录,在保存流程记录时将会触发当前节点的填充流程记录函数。由于不同节点存储的流程数据会存在差异。
      Parameters:
      session - 会话
      flowRecord - 流程记录
    • filterBranches

      List<IFlowNode> filterBranches(List<IFlowNode> nodeList, FlowSession flowSession)
      过滤条件分支
      Parameters:
      nodeList - 当前节点下的所有条件
      flowSession - 当前会话
      Returns:
      匹配的节点