Skip to content

流程操作说明

流程操作服务主要包括创建、打开、提交、退回等一系列流程流转操作

接口交互说明

流程执行过程中可能存在前端交互场景,需用户选择流程节点或办理人;
后端依据执行返回结果封装信息推送至前端,由前端展示交互操作页面;
用户完成操作后重新提交流程,循环执行该逻辑,直至流程处理成功。

说明

1、除流程的创建和打开操作之外,其他流程操作主要通过json数据对象actionData进行交互

2、使用者可在js中做全局变量json对象进行控制,在调用提交等操作后,返回json可赋值给actionData,进行选择路由或选择办理人后,给actionData对象进行赋值,然后再调用流程操作接口


第一次提交

接口调用说明

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

请求参数

json
{
  "accessToken": "",
  "workId": "HZ28858f8137db82018137ebd76b0032",
  "trackId": "HZ28858f8137db82018137ebd76b0033",
  "title": "项目合同申请",
  "comment": "同意",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "operateFlag": 0
  }
}
参数是否必须描述
accessToken调用接口凭证,唯一用户标识
workId流程实例 id
trackId流程路径 id
title实例标题,待办标题,为空时默认为流程名称
comment审批意见

actionData 数据参数:

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

返回状态说明

返回 0:提交成功

返回结果示例:

json
{
  "nextNodeId": "Line2~Node2",
  "nextNodes": [
    {
      "authors": {
        "SecondAuthor": {
          "authorFlowVar": "",
          "authorId": "SecondAuthor",
          "authorName": "协办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Author": {
          "authorFlowVar": "",
          "authorId": "Author",
          "authorName": "主办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "false",
          "isUser": "false",
          "selectAuthor": "U_HZ28821856ef63420156ef6342a20002/D_HZ28821856ef63420156ef6342a20001",
          "selectAuthorName": "用户01(测试部门0)",
          "selectType": "radio"
        },
        "Reader": {
          "authorFlowVar": "",
          "authorId": "Reader",
          "authorName": "读者",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        }
      },
      "isDone": "false",
      "isSelect": "true",
      "memo": "",
      "nodeGroup": "",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "合同管理员审批",
      "nodeStatus": "0",
      "selectId": "Line2~Node2",
      "selectName": "提交(合同管理员审批)",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "0",
  "operateMsg": "提交成功",
  "operateStatus": "success",
  "reOpen": "false",
  "status": 0,
  "trackId": "HZ28811c9e6811be019ecf98b0f70cc0",
  "workId": "HZ28811c9e6811be019ecf98b0f70cbf"
}

结果参数说明:

参数类型描述
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自由选择时的范围,对应办理人右侧:办理人为空时,允许选择的范围,格式D;G
isDefUserString流程定义列表中选择
isFreeString是否自由选择,对应办理人右侧:办理人为空时,允许选择
isSelectString是否允许选择办理人
isUserString是否只允许选择人员
selectAuthorString节点已选择办理人 id
selectAuthorNameString节点已选择办理人名称
selectTypeString人员选择类型,限定值:radio(单选)、checkbox(多选)
initAuthorMap节点初始化办理人,可选择的办理人;key:othersgroupsdepts,value:List

initAuthor value 说明:

json
[
  {
    "userFromIconSkin": "D",
    "iconSkin": "U",
    "userFromName": "测试部门0",
    "name": "用户02",
    "userFromId": "HZ28821856ef63420156ef6342a20001",
    "id": "HZ28821856ef63420156ef6342a20003",
    "title": "用户02"
  }
]

返回 2:请从列表中选择节点

返回结果示例:

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"
}

返回 4:请选择办理人

返回结果示例:

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"
}

再次提交

返回 2:设置节点提交

当上一次操作返回状态码为 2 时,需要设置节点。

将返回的 nextNodes 中需要选择的节点 isSelect 修改为 true,其他参数不动,放入到actionData中重新调用接口即可。

接口调用说明:

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

请求参数:

下面示例为“返回 2:请从列表中选择节点”中返回值修改后再次提交的参数:(仅加注释的部分修改了)

json
{
  "accessToken": "",
  "workId": "HZ28858f8137db820181383ef2a300a1",
  "trackId": "HZ28858f8137db820181383ef2a300a2",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "nextNodes": [
      {
        "authors": {},
        "isDone": "false",
        "isSelect": "true",
        //仅修改选中的节点为true,nextNodes里的其他参数均为原返回值
        "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)"
      }
    ]
  }
}

actionData 数据参数:

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

nextNodes 参数说明:

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

返回 4:设置办理人提交

当上个操作返回状态码为 4 时,需要设置办理人。

在返回的 nextNodes 中,针对需要设置办理人的节点设置selectAuthor和selectAuthorName,其他参数不动,放入到actionData中重新调用接口即可。

下面示例为“返回 4:请选择办理人”中返回值修改后再次提交的参数:(仅加注释的部分修改了)

json
{
  "accessToken": "{{accessToken}}",
  "workId": "HZ2881ee90edc96d0190ee3632d6034b",
  "trackId": "HZ2881ee90edc96d0190ee3632d6034c",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "operateFlag": "0",
    "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",
            "selectAuthor": "U_HZ28821856ef63420156ef6342a20002",
            // 设置主办人ID
            "selectAuthorName": "用户01"
            //设置主办人名称
          }
        },
        "isDone": "false",
        "isSelect": "true",
        "memo": "",
        "nodeGroup": "",
        "nodeId": "Node2",
        "nodeKey": "Line2",
        "nodeName": "任务2",
        "nodeStatus": "4",
        "selectId": "Line2~Node2",
        "selectName": "路由2(任务2)",
        "timeLimit": "0",
        "timeLimitType": "1"
      }
    ]
  }
}

全部请求参数说明

请求参数:

json
{
  "accessToken": "",
  "flowId": "flowsupport",
  "workId": "HZ2886865bf17466015bf1871de1004b",
  "trackId": "HZ2886865bf17466015bf1872089004c",
  "subjection": "D_HZ28821856ef63420156ef63429c0000",
  "authorKey": "Author",
  "comment": "",
  "nodeId": "Node1",
  "title": "",
  "actionData": {
    "operate": "submit",
    "operateFlag": 0,
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "flowVars": {
      "field1": "123"
    },
    "nextNodes": [
      {
        "nodeKey": "Line2",
        "selectId": "Line2~Node2",
        "selectName": "新路由2(任务2)",
        "isSelect": "true",
        "isDone": "false",
        "nodeGroup": "",
        "isShowTabs": null,
        "timeLimit": "0",
        "timeLimitType": "0",
        "nodeStatus": "4",
        "authors": {
          "SecondAuthor": {
            "authorId": "SecondAuthor",
            "authorName": "协办",
            "selectType": "checkbox",
            "isFree": "true",
            "isUser": "false",
            "isDefUser": "false",
            "isSelect": "true",
            "selectAuthor": null,
            "selectAuthorName": null,
            "required": null,
            "initAuthor": null
          },
          "Reader": {
            "authorId": "Reader",
            "authorName": "读者",
            "selectType": "checkbox",
            "isFree": "true",
            "isUser": "false",
            "isDefUser": "false",
            "isSelect": "true",
            "selectAuthor": null,
            "selectAuthorName": null,
            "required": null,
            "initAuthor": null
          },
          "Author": {
            "authorId": "Author",
            "authorName": "主办",
            "selectType": "radio",
            "isFree": "true",
            "isUser": "false",
            "isDefUser": "false",
            "isSelect": "false",
            "selectAuthor": "U_admin/D_HZ28821856ef63420156ef63429c0000",
            "selectAuthorName": "管理员(慧正通软)",
            "required": null,
            "initAuthor": null
          }
        },
        "nodeId": "Node2",
        "nodeName": "任务2",
        "trackId": null
      }
    ]
  }
}
参数是否必须描述
accessToken调用接口凭证,唯一用户标识
flowId流程id
workId流程实例id
trackId流程路径id
subjection提交人所属的组织机构id(如部门id、群组id、岗位id等),格式为D_xxxid、G_xxxxid、P_xxxxid
authorKey提交人身份标识
comment意见
nodeId节点id
title标题
actionData流程操作json数据对象

actionData 数据参数:

参数是否必须描述
operate操作提交标识,固定值submit
operateFlag操作标记 -1:显示关闭,0、1正常提交
operateClazz操作提交操作类路径,固定值com.horizon.wf.action.ActionSubmit
flowVars流程变量赋值使用,flowVars为map,支持传多个,key变量名,value为变量值
nextNodes需要选择的节点列表(如果已经设置好路由及办理人信息,可以不填)

nextNodes 参数说明:

参数是否必须描述
nodeKey节点主键
selectId需要选择的节点id
selectName需要选择的节点名称
isSelect是否已选择
isDone是否已经走过
nodeGroup节点分组,单节点时无值
isShowTabs是否显示办理人页签
timeLimit节点办理时限
timeLimitType办理时限类型:0(自然日)、1(工作日)
nodeStatus节点状态
authors下一节点办理人对象
nodeId节点id
nodeName节点名称

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

参数是否必须描述
authorId办理人类型id:Author(主办)、SecondAuthor(协办)、Reader(读者)
authorName办理人名称
selectType人员选择类型:radio(单选)、checkbox(多选)
isFree是否自由选择
isUser是否只允许选择人员
isDefUser流程定义列表中选择
isSelect是否允许选择办理人
selectAuthor节点已选择办理人
selectAuthorName节点已选择办理人名称
required办理人必填标识
initAuthor节点初始化办理人id