电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何通过服务流程进行接口幂等与重试

来源:金蝶云社区作者:金蝶2024-09-235

如何通过服务流程进行接口幂等与重试


服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程化设计编排成全新的应用服务,以支持更加复杂的业务场景。


例如基础数据分发到多个系统、数据消费需要从多源取数、基于某个数据参数处理不同的集成过程等等。


为了帮助大家快速掌握服务流程的使用方法,我们推出了系列文章,通过11个典型案例向大家介绍服务流程的高级技巧。


在上期集成服务流程典型案例系列文章中,我们为大家介绍了服务流程的第7个典型案例:如何通过服务流程进行异常处理与状态通知


本期,小编继续为大家介绍第8个案例:如何通过服务流程进行接口幂等与重试,主要包括以下2个要点:


  • 云之家幂等与重试场景介绍;

  • 通过幂等流程完成人员新增、更新与重试。




需求场景介绍


以云之家人员查询、新增、更新的API为例。作为服务流程的事件触发节点,苍穹的人员实体进行保存操作后,将该人员的手机号作为入参调用云之家人员查询API。


然后,根据查询结果分别调用云之家人员的新增和更新API,从而达到幂等的效果。


此外,在调用后继续根据返回结果判断是否继续重新调用,从而达到重试的效果。


具体的流程如下图所示:


流程解析


流程属性与变量配置


由于需要监听实体上的事件,应设置服务流程的【启动方式】为“事件触发”。


流程属性配置


在【依赖资源】下将取数集成对象(数据来源)和需要调用的外部系统API作为资源引入服务流程中。


依赖资源配置


详细节点配置


该案例所涉及的流程节点如下:


流程节点概览


接下来,小编为大家详细讲解各流程节点的配置方法。


3.1 开始节点


在【开始】节点配置需要监听的【集成对象(事件源)】和相应的【单据事件】,以及需要取出的字段,并将获取到的数据赋值给流程变量“人员(src)”。


开始节点基本信息配置

取值字段示例


3.2 字段映射节点


通过字段映射节点配置流程变量“src”和“tar”之间的映射关系,将流程变量“src”的数据赋值给流程变量“tar”。


字段映射节点基本信息配置

字段映射配置示例


3.3 获取查询变量节点


通过脚本节点,将流程变量“tar”中的属性赋值给流程变量“phones”,以供下一步调用API进行查询操作。


获取查询变量节点配置示例


3.4 查询人员节点


通过API节点调用查询接口,将获取到的数据赋值给流程变量“query_result”。


查询人员节点配置示例


3.5 新增人员节点


依据上一步查询到的结果,当人员结果不存在时调用新增人员接口。脚本如下:


var persons = [tar];
//云之家不存在此人员,走新增
result = add_person(persons);
if(result[0].msgCode != 209){
    throw "新增人员失败:" + result[0].error;
}else{
  message = "苍穹人员: " + tar.name +" 新增成功。";
}


3.6 更新人员节点


判断查询人员得到的结果是否存在,当人员存在时调用更新人员接口。脚本如下:


//云之家存在此人员,走更新
tar.openId = query_result[0].openId;
result = update_person(persons);
if(result[0].msgCode != 209){
  throw "更新人员失败:" + result[0].error;
}else{
  message = "苍穹人员:" + tar.name +" 更新成功。";
}


3.7 失败次数递增节点


通过错误转移节点,捕获调用更新/查询API返回的异常结果,在后续的脚本节点中对重试次数

如何通过服务流程进行接口幂等与重试

服务流程是集成云推出的面向复杂集成场景的低代码服务编排工具,能够把已有的集成对象、集成方案、消息服务、API接口等集成资源,通过流程...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信