跳转到内容

对接结果回调

对接结果回调

首先需要定义好回调逻辑流,对应模型需要支持能够接收审批回调信息,当触发监听器进行回调时,审批流会将当前上下文相关数据全部传给对应逻辑服务

注意:回调逻辑函数或逻辑流需要保证可匿名访问,需要在接口上加 @AnonymousAccess 注解申明

回调逻辑函数接口

@Function
@AnonymousAccess
public interface TradeOrderApproveCallbackFunc {
TradeOrderBO execute(TradeOrderBO order);
}

回调逻辑函数实现

@FunctionImpl
public 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
}

配置拒绝监听器

将上述逻辑函数上报后发到对应运行环境,就可以在审批类型配置里选择对应接口

通过配置拒绝监听器,可以无需在每个用户任务上配置拒绝条件分支,当审批人审批不通过时,会直接将当前审批流程关闭并触发拒绝监听器。一般用于审批不通过时获取审批结果回调。 第一步:新增拒绝监听器 image.png 第二步:配置监听器名称,绑定对应逻辑流或逻辑函数后提交保存 image.png

配置撤销监听器

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

配置结束事件监听器

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