aiM18开发者中心 aiM18开发者中心
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
文档主页
  • 平台

    • 平台总体概述
    • 前端开发须知
    • 后台开发须知
    • EBI开发须知
    • JSF组件属性表
    • BPM扩展接口
    • 一查到底扩展接口
    • 手机App设置
  • ERP

    • ERP 后端扩展
    • ERP 应用配置
    • ERP 前端扩展
  • 教程

    • 设置Eclipse开发环境
    • 创建App教程
  • 平台相关

    • API授权
    • 通用的数据对象
    • 核心的API
    • EBI相关接口
  • 企业资源规划
  • 人力资本管理
  • 业务流程处理
  • 日程管理
  • 文档管理
  • 教程

    • 通过API与aiM18进行交互
教程
GitHub (opens new window)
  • 通用

    • 访问授权
    • 通用JSON对象
    • 核心服务
    • 商业智能
    • 错误码说明
  • 业务流程管理

    • 业务流程管理
      • 参与的流程
        • HTTP 请求
        • 参数
        • 在 中可用的过滤
        • 结果
      • 创建流程
        • HTTP 请求
        • 参数
        • 结果
      • 我的任务
        • HTTP 请求
        • 参数
        • 在中的可用过滤
        • 结果
      • 流程图
        • HTTP 请求
        • 参数
        • 结果
      • 选择下一个节点
        • HTTP 请求
        • 参数
        • 结果
      • 中止流程
        • HTTP 请求
        • 参数
        • 结果
      • 修复流程
        • HTTP 请求
        • 参数
        • 结果
      • 重新计算流程
        • HTTP 请求
        • 参数
        • 结果
      • 通过操作
        • HTTP 请求
        • 参数
        • 结果
      • 通过操作(选择下一步)
        • HTTP 请求
        • 参数
        • 结果
      • 拒绝操作
        • HTTP 请求
        • 参数
        • 结果
      • 流程时间线
        • HTTP 请求
        • 参数
        • 结果
      • 流程快照
        • HTTP 请求
        • 参数
        • 结果
      • 流程参与者
        • HTTP 请求
        • 参数
        • 结果
      • 添加评论
        • HTTP 请求
        • 参数
        • 结果
      • 反向到创建者操作
        • HTTP 请求
        • 参数
        • 结果
      • 反向操作
        • HTTP 请求
        • 参数
        • 结果
      • 重做操作
        • HTTP 请求
        • 参数
        • 结果
      • 添加批核操作
        • HTTP 请求
        • 参数
        • 结果
      • 更改批核操作
        • HTTP 请求
        • 参数
        • 结果
  • 日程管理

    • 日程管理
  • 文档管理

    • 文档管理系统
  • 企业资源规划

    • API授权流程
    • 基础资料
    • 财务
    • 财务EBI
    • 委外代销
    • EBI
    • 仓库管理方案
    • 零售
    • 零售储值
    • 零售和第三方物流
    • 生产
    • 贸易和财务
    • 采购
    • 销售
    • 库存
    • 委外
  • 人力资本管理

    • API授权流程
    • 绩效管理
    • 考勤管理
    • 临时工
    • 人事管理
    • 请假管理
    • 医疗索偿
    • 薪资管理
    • 招聘管理
    • 培训&资助
  • Web Services中文
  • 业务流程管理
Multiable
2024-02-23
目录

业务流程管理

版本: 1.2 | 发布日期: 30/6/2023

# 参与的流程

根据输入的过滤选项查询用户参与的流程。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/tracking?sortBy=id%20DESC&startRow=5&fetchSize=5")
  .get()
  .addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("options", "{\"module\":\"employee\",\"keyWord\":\"ha\"}")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

{
    "totalSize": 442,
    "size": 2,
    "values": [
        {
            "apvModule": "employee", //Workflow associated Module
            "code": "I-143543699", //Workflow Instance Code
            "wfTpltId": 161,      //Workflow Template Id
            "apvRecordCode": "HavidAA", //Workflow associated Document Code
            "apvRecordId": 1130, //Workflow associated Document Id
            "startTime": "1900-01-01 00:00:00", //Workflow start time
            "endTime": "1900-01-01 00:00:00", //Workflow end time
            "wfId": 997   //Workflow instance id
        },
        {
            "summary": "Created by :B Code: JA39 Description:Havid",
            "apvModule": "employee",
            "code": "I-153113818",
            "wfTpltId": 162,
            "apvRecordCode": "JA39",
            "apvRecordId": 1129,
            "startTime": "1900-01-01 00:00:00",
            "endTime": "1900-01-01 00:00:00",
            "wfId": 996
        }
    ]
}

# HTTP 请求

GET http://[server]/jsf/rfws/bpm/wfs/tracking?sortBy=[sortBy]&startRow=[startRow]&fetchSize=[fetchSize]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
options string(Header) JSON String. 包含所有可能的过滤参数
sortBy string(Query) 按字段排序。可以是 wfinstance(表)列之一
startRow int(Query) 本次读取的起始索引
fetchSize int(Query) 读取大小

# 在 options 中可用的过滤

名字 类型 说明
module string 单据模块
keyWord string 关键词搜索范围:
  • 流程说明
  • 流程摘要
insState string 可用流程状态:
  • 开始
  • 结束
  • 中止
  • 拒绝
wfType int 流程类型 Id
wfTpltId int 流程模板 Id
recodeCode string 单据编号
startFrom string 流程开始日期范围从
startTo string 流程开始日期范围到
endFrom string 流程结束日期范围从
endTo string 流程结束日期范围到

# 结果

类型 位置(error_id) 说明
success Body JSON 格式的流程列表

# 创建流程

提交单据后,系统将为该单据创建一个新的流程。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/submit/employee?id=1124")
  .post()
  .addHeader("authorization", "Bearer MjZhZGNjMDctODVhZS00MmE0LWI3ZmEtNzRhMTQwZGZiNTY0")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

POST http://[server]/jsf/rfws/bpm/submit/[module]?id=[id]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
module string(Path) 单据模块, 比如‘员工’
id int(Query) 单据id, 比如1124

# 结果

类型 位置(error_id) 说明
success Body 新创建的流程id
fail Header(304) 存在其他打开的流程
fail Header(303) [批核设定]中名为 “needapv ”的标志已禁用
fail Header(313) 无法在[批核设定]中找到可用的流程模板
fail Header(314) 现在无法使用 [批核设定]中已创建的流程模板(已失效或更改了模块)

# 我的任务

查询用户的待办事项。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/task/filter?sortBy=id%20DESC&startRow=5&fetchSize=5")
  .get()
  .addHeader("authorization", "Bearer OTUwODcyNWYtNWJkMy00NGIwLWI4ZTUtZjRhYTkzNjg2NTM3")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("options", "{\"module\":\"employee\"}")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

{
    "totalSize": 283,
    "size": 2,
    "values": [
        {
	    "atvtyId": "2", //Workflow node Id
            "apvModule": "employee", //Workflow associated Module
            "wfTpltId": 161, //Workflow Template Id
            "apvRecordCode": "HavidCC", //Workflow associated Document Code
            "atvtyName": "User Task", //Workflow node name
            "wfInstanceId": 999, //Workflow instance id
            "apvViewCode": "employee", //Restricted View
            "apvRecordId": 1132, //Workflow associated Document Id
            "isAfterDue": true, //time out or not
            "atvtyKey": "UserTask_1q2ixpn", //Workflow node key
            "insState": "starting", //Workflow status
            "createDate": "2017-06-14 14:47:09" //Workflow create time,
	    "createUid": "11", //Workflow Creator Id
	    "createUdesc": "Jacky", //Workflow Creator Description
	    "beId": "1122", //Workflow associated Business Entity
	    "recordLink": "http://[serverip]/jsf/app.faces#employee/view/module/employee/c2bc204b?id=1" //Workflow associated Document URL,
	    "apvViewCodeLimited": "" // Restricted View Code,
	    "moduleName": "Employee" // Workflow associated Module Description
        },
        {
	    "atvtyId": "3", //Workflow node Id
            "apvModule": "employee",
            "wfTpltId": 161,
            "apvRecordCode": "HavidCC",
            "atvtyName": "User Task",
            "wfInstanceId": 999,
            "apvViewCode": "employee",
            "apvRecordId": 1132,
            "atvtyKey": "UserTask_0p9w708",
            "insState": "starting",
            "createDate": "2017-06-14 14:47:09",
	    "createUid": "11", 
	    "createUdesc": "Jacky", 
	    "beId": "1122",
	    "recordLink": "http://[serverip]/jsf/app.faces#employee/view/module/employee/c2bc204b?id=1"
	    "apvViewCodeLimited": "",
	    "moduleName": "Employee"
        }
    ]
}

# HTTP 请求

GET http://[server]/jsf/rfws/bpm/task/filter??sortBy=[sortBy]&startRow=[startRow]&fetchSize=[fetchSize]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
options string(Header) JSON String. 包含所有可能的过滤参数
sortBy string(Query) 按字段排序。可以是 wfinstance(表)列之一
startRow int(Query) 本次读取的起始索引
fetchSize int(Query) 读取大小

# 在options中的可用过滤

名字 类型 说明
module string 单据模块
wfType int 流程类型 Id
wfTpltId int 流程模板 Id
wfInstanceId int 流程 Id
recodeCode string 单据编号
keyWord string 关键词搜索范围:
  • 流程说明
  • 流程摘要
days int 任务创建后的天数
dueType string 任务是否超时。“afterDue“ 和 ”beforeDue "之一。空表示 “all”。

# 结果

类型 位置(error_id) 说明
success Body JSON 格式的任务列表

# 流程图

获取流程图链接

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/graph/999")
  .get()
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

GET http://[server]/jsf/rfws/bpm/wfs/graph/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例 Id

# 结果

类型 位置(error_id) 说明
success Body 重定向到图链接

# 选择下一个节点

查询支持直接选择下一个节点的流程模板节点。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/tplt/userEoxGateway/162")
  .get()
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

{
    "UserTask_1txbhvu": "{\"UserTask_1igpmls\":\"To Node A\",\"EndEvent_0w1fhfw\":\"to End\",\"UserTask_17a00dk\":\"To Node B\"}"
}

# HTTP 请求

GET http://[server]/jsf/rfws/bpm/tplt/userEoxGateway/[wfTpltId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfTpltId int(Path) 流程模板 Id

# 结果

类型 位置(error_id) 说明
success Body 所有支持直接转到下一节点的节点键

# 中止流程

中止一个特定的流程。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/terminate/999")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://[server]/jsf/rfws/bpm/wfs/terminate/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例 Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 修复流程

重新同步流程状态到异常记录。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/repair/999")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://[server]/jsf/rfws/bpm/wfs/repair/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例 Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 重新计算流程

根据全局设置重新计算所有未完成流程的参与者

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/recalcpator")
  .put(null)
  .addHeader("authorization", "Bearer NjQ3ZjMyNjYtYWYwYy00ZmE0LWI1ZDAtNGU1MDg3YTAxMzYz")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://[server]/jsf/rfws/bpm/wfs/recalcpator

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 通过操作

用户对一个节点执行 “通过 ”操作。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/passAtvty/1009")
  .put(null)
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/passAtvty/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例 Id
atvtyId string(Header) 流程节点 Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 通过操作(选择下一步)

用户执行 “通过 ”操作并选择下一步。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/passAtvtyWithTarget/1010")
  .put(null)
  .addHeader("authorization", "Bearer NDgwYWMxZGItYjBjYS00ZmQwLTk3NzQtODY4MjMzNDFmNGI4")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "4")
  .addHeader("targetatvtykey", "UserTask_17a00dk")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/passAtvtyWithTarget/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Header) 流程节点Id
targetatvtykey string(Header) 下一个要去的节点

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 拒绝操作

用户对一个节点执行 “拒绝 ”操作。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/rejectAtvty/1009")
  .put(null)
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/rejectAtvty/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Header) 流程节点Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 流程时间线

查询流程时间线。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/loadWfLog/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

[
    {
        "atvtyKey": "UserTask_1txbhvu",
        "atvtyName": "Node A",
        "caseCode": "I-121142627",
        "caseDesc": "",
        "info": "wf.Starting",
        "infoType": "event",
        "link": "",
        "time": 1498104928000,
        "user": {
            "id": 2,
            "code": "B",
            "desc": "Englishtest3"
        }
    },
    {
        "atvtyKey": "UserTask_016hspg",
        "atvtyName": "Node B",
        "caseCode": "I-121142627",
        "caseDesc": "",
        "info": "wf.pass",
        "infoType": "action",
        "link": "",
        "time": 1498104928000,
        "user": {
            "id": 2,
            "code": "B",
            "desc": "Englishtest3"
        }
    }
]

# HTTP 请求

GET http://127.0.0.1:8080/jsf/rfws/bpm/loadWfLog/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 流程快照

查询流程节点状态。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/snapshot/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

{
    "size": 3,
    "values": [
        {
            "atvtyId": "1",
            "atvtyName": "Node A",
            "atvtyKey": "StartEvent_1cf0uyy",
            "isEnd": true
        },
        {
            "atvtyId": "2",
            "atvtyName": "Node B",
            "atvtyKey": "UserTask_016hspg",
            "isEnd": true
        }
    ]
}

# HTTP 请求

GET http://127.0.0.1:8080/jsf/rfws/bpm/wfs/snapshot/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id

# 结果

类型 位置(error_id) 说明
success Body 以 JSON 数组形式显示的流程节点状态信息

# 流程参与者

查询流程节点参与者(包括已参与的和待办)。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/wfs/handlerInfo/1009")
  .get()
  .addHeader("authorization", "Bearer MGRhY2NhMzItNDkxOC00NmU0LTkyZGItMWNjOWRjZmM2ZTQ1")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

API 返回的 JSON 结构如下:

{
    "size": 2,
    "values": [
        {
            "code": "B",  //user code 
            "atvtyKey": "UserTask_15hry6g",
            "type": "done", //'done' means the user have perform some action the node(reference to info)
            "userId": 2,
            "desc": "Englishtest3",
            "info": "wf.pass",
            "logTime": "2017-06-22 14:41:16"
        },
        {
            "code": "B",
            "atvtyKey": "UserTask_1txbhvu",
            "type": "todo",//'todo' means the user is the next participant
            "userId": 2,
            "desc": "Englishtest3",
            "logTime": "2017-06-22 14:41:29"
        }
    ]
}

# HTTP 请求

GET http://127.0.0.1:8080/jsf/rfws/bpm/wfs/handlerInfo/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id

# 结果

类型 位置(error_id) 说明
success Body 以JSON数组形式显示的流程节点参与者信息

# 添加评论

为整个流程或特定节点添加评论。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/addWfComment/1011")
  .post(null)
  .addHeader("authorization", "Bearer ODQxYzRiZjMtOGE5YS00OGJhLWEzM2ItZTYxNGRlZTA5ZGIw")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("comment", "this is a comment")
  .addHeader("inviteusers", "40,50,51,")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

POST http://127.0.0.1:8080/jsf/rfws/bpm/addWfComment/[wfInstanceId]?atvtyKey=[atvtyKey]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyKey string(Query) 流程节点键
comment string(Header) 评论内容
inviteusers string(Header) 参与此评论的用户 ID 列表

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 反向到创建者操作

用户执行 reverseToStart 操作。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/1011")
  .put(null)
  .addHeader("authorization", "Bearer NTE4NTIwMDItZGJlZC00MzE5LTgwMjEtOGYxMGEzYTc1ODBi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "2")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Header) 流程节点Id

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 反向操作

用户执行reverseTo 操作

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/reverseAtvty/1012")
  .put(null)
  .addHeader("authorization", "Bearer NzMyYjUxZTMtOTRiYi00ODk2LThkYjMtYzM2N2EwNjRjZWMx")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("atvtyid", "4")
  .addHeader("targetatvtykey", "UserTask_016hspg")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/reverseToStart/[wfInstanceId]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Header) 流程节点Id
targetatvtykey string(Header) 反向到的流程节点

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 重做操作

用户执行redo操作.

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/redoAtvty/1012/UserTask_016hspg")
  .put(null)
  .addHeader("authorization", "Bearer NzMyYjUxZTMtOTRiYi00ODk2LThkYjMtYzM2N2EwNjRjZWMx")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .addHeader("postman-token", "7b6603bd-d6a0-9970-e273-3ec38c1ac374")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/redoAtvty/[wfInstanceId]/[atvtyKey]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyKey string(Path) 想要重新操作的流程节点

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 添加批核操作

用户执行 addapprover 操作

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/addApprover/1013/4?user=50&user=51")
  .put(null)
  .addHeader("authorization", "Bearer OGFiZmU2ZTktMzYzMS00NjIwLWJhNGYtYWU2OGQyNTZhMmNi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/addApprover/[wfInstanceId]/[atvtyId]?user=[target]&user=[target]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Path) 流程节点Id
user string(Query) 目标用户

# 结果

类型 位置(error_id) 说明
success Body HTTP 200

# 更改批核操作

用户执行 assignapprover 操作。

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("http://127.0.0.1:8080/jsf/rfws/bpm/assignApprover/1013/4?user=77")
  .put(null)
  .addHeader("authorization", "Bearer OGFiZmU2ZTktMzYzMS00NjIwLWJhNGYtYWU2OGQyNTZhMmNi")
  .addHeader("client_id", "C-SGF2aWQncyBhcHBsaWNhdGlvbjIwMTctMDItMTAxNjc=")
  .addHeader("cache-control", "no-cache")
  .build();

Response response = client.newCall(request).execute();

# HTTP 请求

PUT http://127.0.0.1:8080/jsf/rfws/bpm/assignApprover/[wfInstanceId]/[atvtyId]?user=[target]

# 参数

名字 类型 说明
authorization string(Header) 必填. 通过 OAuth2 获取的访问令牌
client_id string(Header) 必填. 在[授权应用列表]中注册时,由 aiM18 生成
wfInstanceId int(Path) 流程实例Id
atvtyId string(Path) 流程节点Id
user string(Query) 目标用户

# 结果

类型 位置(error_id) 说明
success Body HTTP 200
Last Updated: 2025/04/09, 02:58:38
错误码说明
日程管理

← 错误码说明 日程管理→

Theme by Vdoing | Copyright © 1990-2025 Multiable | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式