Skip to content

获取提交节点 ​

提交流程之前,应先获取能提交的节点。

获取提交节点-返回单节点时 ​

接口请求调用说明

  • HTTP 请求方式:POST
  • 请求地址:http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf

请求参数:

json
{
  "accessToken": "",
  "workId": "HZ28858f8137db82018137ebd76b0032",
  "trackId": "HZ28858f8137db82018137ebd76b0033",
  "subjection": "",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit"
  }
}
参数是否必须描述
accessToken是调用接口凭证,唯一用户标识
workId是流程实例id
trackId是流程路径 id,open接口返回flowNode.trackId什么传递什么
subjection否提交人所属的组织机构id(如部门id、群组id、岗位id等),格式为D_xxxid、G_xxxxid、P_xxxxid,open接口subjectionId返回什么传递什么

actionData 数据参数:

参数是否必须描述
operate是提交操作标识,固定值submit
operateClazz是提交操作类路径

返回结果示例:

json
{
  "nextNodeId": "Line2~Node2",
  "nextNodes": [
    {
      "authors": {
        "SecondAuthor": {
          "authorFlowVar": "",
          "authorId": "SecondAuthor",
          "authorName": "协办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Reader": {
          "authorFlowVar": "",
          "authorId": "Reader",
          "authorName": "读者",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Author": {
          "authorFlowVar": "",
          "authorId": "Author",
          "authorName": "主办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "radio"
        }
      },
      "isDone": "false",
      "isSelect": "true",
      "memo": "",
      "nodeGroup": "",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "任务2",
      "nodeStatus": "4",
      "selectId": "Line2~Node2",
      "selectName": "路由2(任务2)",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "0",
  "operateMsg": "请选择办理人",
  "status": 4,
  "workId": "HZ28858f8137db82018137ebd76b0032"
}

结果参数说明:

参数类型描述
nextNodeIdString下一节点id
nextNodesList需要选择的节点列表
operateString提交操作标识
operateTextString操作显示名称
operateFlagString操作标记 -1:显示关闭,0、1:正常提交
operateMsgString返回操作信息
statusint流程操作状态码(0:成功、1:无法获取下一节点、2:提示选择节点、3:办理人为空、4:需要选择人员、5:流程结束、6:子流程未结束、7:流程暂停、8:流程异常终止、9:其他错误提示、16:协办人提交、17:不满足合并节点的离开规则、22:进入规则调用错误、23:离开规则调用错误、24:该节点类型不支持相应的操作、25:启用规则调用错误、26:节点激活失败)
workIdString流程实例id

nextNodes 参数说明:

参数类型描述
authorsMap下节点办理人map中key为SecondAuthor、Reader和Author,value为Author/SecondAuthor/Reader对象参数
isDoneString是否已经走过
isSelectString是否已选择
memoString备注信息
nodeGroupString节点分组,单节点时无值,当前节点有分支节点时,值为上一节点id
nodeIdString节点id
nodeKeyString节点主键
nodeNameString节点名称
nodeStatusString节点状态,限定值:0(成功)、1(选择办理人)、2(选择节点)、3(未找到办理人)、4(未找到下一节点)
selectIdString需要选择的节点id
selectNameString需要选择的节点名称
timeLimitString节点办理时限
timeLimitTypeString办理时限类型,限定值:0(自然日)、1(工作日)

authors 中 Author/SecondAuthor/Reader 参数说明:

参数类型描述
authorFlowVarString流程变量
authorIdString办理人id固定值Author/SecondAuthor/Reader
authorNameString办理人名称:主办,协办,读者
freeAreaString自由选择时的范围
isDefUserString流程定义列表中选择
isFreeString是否自由选择
isSelectString是否允许选择办理人
isUserString是否只允许选择人员
selectAuthorString节点已选择办理人id
selectAuthorNameString节点已选择办理人名称
selectTypeString人员选择类型,限定值:radio(单选)、checkbox(多选)

获取提交节点-返回多节点 ​

接口请求调用说明

  • HTTP 请求方式:POST
  • 请求地址:http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf

请求参数:

json
{
  "accessToken": "",
  "workId": "HZ28858f8137db82018137ebd76b0032",
  "trackId": "HZ28858f8137db82018137ebd76b0033",,
  "subjection": "",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit"
  }
}

actionData 数据参数:

参数是否必须描述
operate是提交操作标识,固定值submit
operateClazz是提交操作类路径com.horizon.wf.action.ActionSubmit

返回结果示例:

json
{
  "nextNodeId": "",
  "nextNodes": [
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "nodeGroup": "Node1",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "任务2",
      "nodeStatus": "2",
      "selectId": "Line2~Node2",
      "selectName": "路由2(任务2)"
    },
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "nodeGroup": "Node1",
      "nodeId": "Subflow8",
      "nodeKey": "Line11",
      "nodeName": "子流程8",
      "nodeStatus": "2",
      "selectId": "Line11~Subflow8",
      "selectName": "路由11(子流程8)"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "1",
  "operateMsg": "请从列表中选择节点",
  "status": 2,
  "workId": "HZ28858f8137db820181383ef2a300a1"
}

获取提交节点-选取指定节点时 ​

接口请求调用说明

  • HTTP 请求方式:POST
  • 请求地址:http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf

请求参数:

json
{
  "accessToken": "",
  "workId": "HZ28858f8137db820181383ef2a300a1",
  "trackId": "HZ28858f8137db820181383ef2a300a2",,
  "subjection": "",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "nextNodes": [
      {
        "isSelect": "true",
        "nodeId": "Node2",
        "nodeKey": "Line2",
        "selectId": "Line2~Node2"
      }
    ]
  }
}

actionData 数据参数:

参数是否必须描述
operate是提交操作标识,固定值submit
operateClazz是提交操作类路径
nextNodes是需要选择的节点列表

nextNodes 参数说明:

参数是否必须描述
isSelect是是否已经选择过
nodeId是节点id
nodeKey是节点路由
selectId是需要选择的节点id和路由

返回多节点-怎么判断节点默认选中/单选/多选
nextNodes参数说明:当返回多节点时,多个节点可能存在默认选中的/单选的/多选的,如何判断每个节点展示时,是默认选中/多选/单选
1)前端通过列表方式展示所有返回节点
2)通过每个节点信息中的 isSelect 的值,判断是否默认选中
  2.1)当 isSelect=true 时,表示默认已选中,且不能取消
  2.1)当 isSelect=false 时,表示可以自由选择
3)当 isSelect=false 时(自由选择),根据 nodeGroup 的值确认节点是单选/多选
  3.1)当 nodeGroup 有值,表示单选节点;nodeGroup相同的为同一个组,可以根据业务判断同一个组下是不是必须选择一个节点;
  3.2)当 nodeGroup 无值,表示多选节点

返回选择办理人时,如何判断各个节点是否需要选择办理人,以及选择办理人的方式
1)判断节点是否包含主办,authors.Author 是否存在
  1.1)当按钮是发送阅知,或者提交到结束时,authors 只包含 Reader
  1.2)当按钮是增加协办,authors 只包含 SecondAuthor
2)当 authors.Author.isSelect=false 时,前端显示 authors.Author.selectAuthorName 值
3)当 authors.Author.isSelect=true 时,标识需要选择办理人,办理人的设置方式见下
  3.1)从设置列表中选择,当 authors.Author.initAuthor 有值,且 authors.Author.isDefUser=true 时,标识需要从 initAuthor 中选择
    3.1.1)authors.Author.selectAuthor有值,标识可以默认选中,但是也允许从 initAuthor 里选择
  3.2)自由选择,当 authors.Author.isFree=true 时,标识,可以自由选择办理人,可以打开业务系统的组织机构选择框,选择办理人
  3.3)从设置列表中选择和自由选择可以同时存在,业务系统可根据业务需求判断是否同时支持