接口设计
概述
以下类需要传的值,除特别说明外,都是set到BpmInfoDto后再传给以下需调用的接口中,而不是直接传给接口;接口的命名是延续BPM开发文档的标准命名,和我们直接口语化的接口名称会存在较大差异,请理解清楚接口作用后,再决定需要调用哪个接口,以下罗列几个常用的口语化对比:
口语化接口名 | 地址 |
---|---|
发起流程 | 创建流程并设置相关数据 |
同意 | 提交任务 |
驳回 | 根据策略信息回退到指定活动 |
沟通/转办 | 代办管理 |
1 流程实例管理
1.1 终止流程实例
方法名:terminateProcessInstance
终止一个流程实例,该操作可以终止一个未启动、运行、挂起状态的流程实例,执行后无返回值。
使用场景:终止一个未启动、运行、挂起状态的流程实例。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | String | 112233 |
3 | personID | 中文名 | String | 张三(1.2.0以上不需要) |
4. | msg | 处理信息 | String | “终止流程” |
输出数据
字符串:success/failed
1.2 查询流程实例详细属性
方法名:queryProcessInstDetail
根据流程实例ID获取业务流程实例的详细信息。返回流程实例的信息信息。
使用场景:查询流程实例详细信息。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
输出数据
类:ProcessInstInfo
1.3 创建流程并设置相关数据
方法名:createProcessInstanceAndSetRelativeData
创建流程并设置相关数据。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | personID | 中文名 | String | 张三(1.2.0以上不需要) |
3 | processDefName | 流程定义名称 | String | com.hisense.xx.xxxx |
4 | processInstName | 流程实例名称 | String | “测试流程” |
5 | relaDatas | 相关数据 | Map<String,String> | 如需要再传 |
6 | msg | 处理信息 | String | “发起流程” |
7 | theme | 主题 | String | “流程主题”,需直接传给接口 |
8 | orgCode | 扩展字段 | String | 历史原因,忽略字段意义,作为扩展字段使用即可,会在待办返回 |
9 | matkls | 扩展字段 | String |
输出数据
Long:流程id
2 活动实例管理
2.1 根据活动定义完成活动实例
方法名:finishActivityInstByActivityID
根据流程实例ID和活动定义ID完成某流程的活动实例的功能。 指明一个流程实例ID和该流程实例下的活动的活动定义ID,随后调用本构件就可将指定的流程实例的活动实例完成。如果该活动已有多个实例,将只完成最新的活动实例。
注意:多个活动实例的情况只完成最新的活动实例。
使用场景:完成流程的活动实例。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
3 | activityDefID | 活动定义ID | String | applyActivity |
输出数据
字符串:success/failed
2.2 完成活动实例
方法名:finishActivityInstance
需要使用流程服务的各个业务系统
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | activityInstID | 活动实例ID | String | 445566 |
输出数据
字符串:success/failed
2.3 查询流程活动实例
方法名:finishActivityInstance
根据流程实例ID和分页查询条件查询流程下的所有的活动实例。(如果分页信息为null将查询所有活动实例。使用场景:查询流程活动实例。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | String | 112233 |
3 | pageCond | 分页属性 | PageCond | begin,length,isCount |
输出数据
类:BPSActivityInsts
3 流程定义查询
3.1 获取业务流程或者活动定义的扩展属性
方法名:getExtendAttribute
主要提供业务流程管理中需要使用的查询接口, 可以查询业务流程实体、活动定义实体、连线实体、流程包列表、流程目录、活动已经定义的参与者等信息。
执行成功返回空的报文体;执行失败返回错误码和对应错误信息。
使用场景:获取业务流程或者活动定义的扩展属性XML字符串。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processDefID | 流程定义ID | long | com.hisense.xx.xxx |
3 | activityDefID | 活动定义ID | String | applyActivity |
输出数据
字符串:JSON串
3.2 根据流程定义名称查询所有活动定义
方法名:queryActivitiesOfProcessDefName
查询流程定义中的活动列表 根据流程定义名称,查询流程定义中的活动列表.返回流程的活动列表报文。执行成功返回空的报文体;执行失败返回错误码和对应错误信息。
使用场景:查询流程中的所有环节。
输入数据
序号 | 字段名 | 名称 | 类型 | 长度 | 是否必输Y/N | 样例 |
---|---|---|---|---|---|---|
1 | userID | 用户ID | String | 18 | Y | zhangsan |
2 | processDefName | 流程定义名称 | String | 19 | Y | com.hisense.xx.xxx |
3 | type | 活动定义类型 | Sting | 18 | N | ALL:所有 manual:仅查人工活动 |
输出数据
类:BPSActivityDefines
4 流程相关数据管理
4.1 批量获得相关数据
方法名:getRelativeDataBatch
批量获得相关数据中指定路径下的值。根据流程实例ID和相关数据Xpath,批量获得相关数据中指定路径下的值。
注意:相关数据路径支持标准的Jxpath语法,如果流程实例ID对应的流程实例不存在或者path不合法,则会抛出WFServiceException。
使用场景:查询流程实例的指定上下文信息。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
3 | path | 要获取的相关数据xpath路径 | String[] | relaDatas里的key |
输出数据
字符串:JSON串
4.2 批量设置相关数据
方法名:setRelativeDataBatch
根据流程实例ID,批量设置相关数据中指定路径下的值。
注意:relaDatas参数作为Map类型,其Key为相关数据的xpath,value为其值,如果流程实例ID对应的流程实例不存在或者xpath不合法,则会抛出WFServiceException。
使用场景:设置流程实例指定的上下文参数。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程定义ID | Long | 112233 |
3 | relaDatas | 设置相关路径和值 | Map<String,String> | <”key”,“value”> |
输出数据
字符串:success/failed
4.3 批量获得相关数据
方法名:setRelativeData
根据流程实例ID,将对象值放到相关数据区中指定的xpath下。
使用场景:设置相关数据
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | String | 112233 |
3 | xpath | 数据路径 | String | relaDatas里的key |
4 | relaData | 相关数据 | String | <”key”,“value”> |
输出数据
字符串:success/failed
4.4 获取相关数据
方法名:getRelativeData
根据流程实例ID,获得相关数据中指定路径下的值。
使用场景:获取相关数据。
输入数据
序号 | 字段名 | 名称 | 类型 | 备注 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程定义ID | Long | 112233 |
3 | xpath | 相关数据路径 | String | relaDatas里的key |
输出数据
字符串:JSON
5 查询任务的详细属性
5.1 查询任务的详细属性
方法名:queryWorkItemDetail
根据传入的工作项ID查询工作项的详细信息,包括WFWorkItem类的所有属性 。
使用场景:查询任务详细属性。
输入数据
序号 | 字段名 | 名称 | 类型 | 备注 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | workItemID | 工作项ID | Long | 778899 |
输出数据
类:BPSWorkItem
5.2 提交任务
方法名:finishWorkItem
完成指定工作项,根据工作项ID完成工作项 。
使用场景:提交任务。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | workItemID | 工作项ID | Long | 778899 |
3 | msg | 审批意见 | Sting | “同意” |
输出数据
字符串:success/failed
5.3 工作项改派
方法名:reassignWorkItem
将工作项改派给指定的参与者。
使用场景:管理员或特权人将工作项改派给其他人。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | workItemID | 工作项ID | Long | 778899 |
3 | participants | 参与者数组 | BPSParticipant[] | id:参与者ID,例如lisi name:参与者名称,例如李四 |
4 | msg | 审批意见 | Sting | “同意” |
输出数据
字符串:success/failed
6 根据策略信息回退到指定活动
6.1 根据策略信息回退到指定活动
方法名:backActivity
根据指定的回退策略,把从当前运行的活动回退到指定活动定义ID的目标活动,该方法需要结合回退策略来完成,具体回退策略参见"规则说明"。
使用场景:根据策略信息回退到指定活动。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | personID | 中文名 | String | (1.2.0以上不在需要) |
3 | currentActInstID | 当前活动实例ID | String | 445566 |
4 | destActDefID | 目标活动定义ID | String | applyActivity |
5 | processInstID | 流程id | Long | 112233 |
6 | rollBackStrategy | 回退策略 | String | time为基于两点间的时间回退 path为基于两点间的路径回退 recent_manual为回退到最近的人工活动 one_step为单步回退 simple为简单回退 |
输出数据
字符串:success/failed
6.2 获取所经全部活动定义
方法名:getPreviousActivities
获取活动实例到目标活动定义之间所有运行时经过的活动定义。
使用场景:获取所经全部活动定义。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | currentActInstID | 当前活动实例ID | String | 445566 |
3 | destActDefID | 目标活动定义ID | String | applyActivity |
输出数据
类: WSActivityDefines
7 代办管理
- 方法名:
delegateWorkItem
- 使用场景:委托人将工作项代办给代办人。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | workItemID | 工作项ID | Long | 778899 |
3 | participants | 参与者数组 | BPSParticipant[] | id:参与者ID,例如lisi name:参与者名称,例如李四 |
4 | delegateType | 代办方式 | String | 代办方式,取值为DELEG(代办)|HELP(沟通) |
5 | msg | 审批意见 | String | “待办/沟通” |
输出数据
字符串:success/failed
8 工作项查询管理
8.1 查询待办任务(包含业务实体)列表
方法名:queryPersonWorkItemsWithBizInfo
查询待办任务列表,根据参与者ID,查询该参与者处于运行或待领取状态的工作项。可以根据不同的参数查出“分配给自己的”、“代办的”、“协办的”或“代理”获得的工作项。
使用场景:查询待办任务列表,待办列表信息中包含主题的信息。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | pageCond | 分页属性 | PageCond | 分页对象 |
3 | systemPath | 系统待办标记 | String | 查询条件,选填,放入QueryData |
4 | processInstName | 流程名称 | String | 查询条件,选填,放入QueryData |
5 | processDefName | 流程定义 | String | 查询条件,选填,放入QueryData |
6 | workItemName | 工作项名称 | String | 查询条件,选填,放入QueryData |
7 | theme | 主题 | String | 查询条件,选填,放入QueryData |
输出数据
类:BPSWorkList
8.2 查询已办任务(包含业务实体)列表
方法名:queryPersonFinishedWorkItemsWithBizInfo
查询已办任务列表,根据参与者ID,查询该参与者处于运行或待领取状态的工作项。可以根据不同的参数查出“分配给自己的”、“代办的”、“协办的”或“代理”获得的工作项。
使用场景:查询已办任务列表,已办列表信息中包含主题的信息。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | pageCond | 分页属性 | PageCond | 分页对象 |
3 | includeHistory | 包含历史 | Boolean | |
4 | systemPath | 系统待办标记 | String | 查询条件,选填,放入QueryData |
5 | processInstName | 流程名称 | String | 查询条件,选填,放入QueryData |
6 | processDefName | 流程定义 | String | 查询条件,选填,放入QueryData |
7 | workItemName | 工作项名称 | String | 查询条件,选填,放入QueryData |
8 | theme | 主题 | String | 查询条件,选填,放入QueryData |
输出数据
类:BPSWorkList
9 流程图管理
9.1 获取流程图相关信息
方法名:getProcessGraph
获取流程图相关数据信息
使用场景:前端展示流程图
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
输出数据
字符串:JSON
10 查询管理
10.1 根据流程实例ID****查询工作项
方法名:queryWorkItemsByProcessInstID
根据流程实例ID查询工作项,支持条件扩展查询。
condition
的key
为字段名,value
为字段值,
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
3 | pageCond | 起始记录号 | PageCond | 分页对象 |
输出数据
类:BPSWorkList
10.2 查询指定人员启动的流程
方法名:queryPersonStartProcessInstWithBizInfo
查询指定人员启动的流程,包含扩展业务信息
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | pageCond | 分页属性 | PageCond | 分页对象 |
3 | processInstName | 流程名称 | String | 查询条件,选填,放入QueryData |
4 | processDefName | 流程定义 | String | 查询条件,选填,放入QueryData |
5 | workItemName | 工作项名称 | String | 查询条件,选填,放入QueryData |
6 | currentState | 流程状态 | String | 查询条件,选填,放入QueryData |
输出数据
类:BPSProcessInsts
11 操作日志管理
11.1 增加流程实例操作日志
增加流程实例操作日志,需要的接口已经集成该方法,特殊情况需要自己添加日志。
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
3 | producer | 发起者 | String | |
4 | receiver | 接收者 | String | |
5 | optType | 操作类型 | String | |
6 | msg | 操作信息 | String | |
7 | exts | 扩展信息 | Map<String,String> | Key值范围: extend1,extend2(数字型) extend5(字符串) |
8 | activityInstName | 任务名称 | String | 发起节点 |
9 | userName | 用户名称 | String | 张三 |
optType取值范围及含义:
BACKACTIVITY("驳回"),
DELEG("代办"),
HELP("沟通"),
WITHDRAW("申请撤回"),
SUBMIT("启动流程"),
CANCELGET("沟通撤回"),
TERMINATE("终止"),
SAVE("确认"),
APPROVAL("通过")
输出数据
字符串:success/failed
11.2 根据流程实例ID****查询所有的操作日志
方法名:queryOptMsgsByProcessInstID
需要使用流程服务的各个业务系统
输入数据
序号 | 字段名 | 名称 | 类型 | 样例 |
---|---|---|---|---|
1 | userID | 用户ID | String | zhangsan |
2 | processInstID | 流程实例ID | Long | 112233 |
3 | pageCond | 起始记录号 | PageCond | 分页对象 |
输出数据
类:BPSOptMessages