对接结果回调
对接结果回调
首先需要定义好回调逻辑流,对应模型需要支持能够接收审批回调信息,当触发监听器进行回调时,审批流会将当前上下文相关数据全部传给对应逻辑服务
注意:回调逻辑函数或逻辑流需要保证可匿名访问,需要在接口上加 @AnonymousAccess 注解申明
回调逻辑函数接口
@Function@AnonymousAccesspublic interface TradeOrderApproveCallbackFunc { TradeOrderBO execute(TradeOrderBO order);}回调逻辑函数实现
@FunctionImplpublic class TradeOrderApproveCallbackFuncImpl implements TradeOrderApproveCallbackFunc {
@Override public TradeOrderBO execute(TradeOrderBO order) { TradeOrderBO bo = DS.findById(TradeOrderBO.class, order.getId()); if (Objects.equal(order.getAuditResult(), true)) { bo.setAuditStatus(AuditStatus.AUDIT_PASSED); } else { bo.setAuditStatus(AuditStatus.AUDIT_FAILED); } DS.update(bo); return bo; }
}回调的上下文示例
以下这些在回调上下文里会默认就有,如果有自定义声明的流程全局变量,也会在下面的上下文里
{ "processInstanceId":"z364840527396865", // 流程实例ID "processSerialNumber":"FP2022011900000003", // 流程序号 "remark":"ok", // 最后一个审批节点审批备注 "taskInstanceId":"z364840527396876", // 最后一个审批节点审批任务实例ID "processCreatorName":"yuzhi123", // 流程创建人用户名 "auditResult":true, // 最后一个审批节点的审批结果 "taskCompleteUserId":"22018", // 最后一个审批节点审批人用户ID "taskCompleteUserName":"yuzhi", // 最后一个审批节点审批人用户名 "processCreatorId":"22018", // 流程创建人用户ID "id":24004 // 发起审批时传入的 BizID}配置拒绝监听器
将上述逻辑函数上报后发到对应运行环境,就可以在审批类型配置里选择对应接口
通过配置拒绝监听器,可以无需在每个用户任务上配置拒绝条件分支,当审批人审批不通过时,会直接将当前审批流程关闭并触发拒绝监听器。一般用于审批不通过时获取审批结果回调。
第一步:新增拒绝监听器
第二步:配置监听器名称,绑定对应逻辑流或逻辑函数后提交保存

配置撤销监听器
配置撤销监听器后,当调用 SDK 里 terminate 方法或在“审批中心-我发起的”列表里点击“撤回”,则会将该审批流程撤销并触发对应撤销监听器。

配置结束事件监听器
当审批流程流转到结束事件时会完结当前流程并触发该监听器,一般用于审批通过时获取审批结果回调。
