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

事件目标(WebAPI)

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

事件目标(WebAPI)

变更记录


产品版本

更新内容更新日期
V6.0.13初始版本2024年6月13日




1 简介

1.1 功能介绍

事件触发时,通过调用第三方系统的API服务将事件消息准确传递至第三方系统


1.2 应用场景

跨系统数据同步、跨系统关联交易等需要将事件消息实时同步到第三方系统的场景。


1.3 系统路径

【集成服务云】→【事件网格】→【事件订阅(事件目标-WebAPI)】


1.4 关键字段/按钮说明

1.4.1 关键字段说明

字段名称详细解释
基本信息
目标API事件目标需要调用的API,由目标系统提供API服务,可从【WebAPI登记】列表中选择
目标数据源事件需要触达的目标系统环境
请求类型目标API的请求类型,根据所选API自动带出
域名端口目标API的请求域名和端口,根据所选目标数据源自动带出
URI目标API的URI地址,根据所选API自动带出
参数赋值
参数名称
需要赋值的API请求参数名称,根据所选API自动带出
参数类型API请求参数的类型,根据所选API自动带出
参数描述API请求参数的描述,根据所选API自动带出
多值API请求参数是否多值,根据所选API自动带出
必填
API请求参数是否必填,根据所选API自动带出
参数赋值给API请求参数赋参数值,支持常量值、事件参数变量、函数表达式
赋值脚本通过脚本代码编写API请求参数的赋值逻辑,主要面向复杂的赋值场景
请求断言
断言脚本
通过脚本代码编写API请求结果断言


2 主要操作

2.1 配置WebAPI事件目标

前提条件

目标API已经在【事件网格】->【连接资源】->【WebAPI登记】列表中维护,操作指引详见:WebAPI登记


操作步骤

步骤1:选择目标API。

步骤2:检查API带出的目标数据源是否指向目标系统环境,此处可重新选择目标数据源。

步骤3:进行API参数赋值,确保运行时API能正常调用,事件正常传递至事件目标。需要赋值的参数已自动显示在列表,URL参数、请求头、请求体都可能需要赋值,请切换Tab进行检查避免赋值遗漏。


API参数赋值参数赋值、赋值脚本、参数赋值和赋值脚本同时使用。

1)参数赋值:填写列表中“参数赋值”字段,支持录入常量值、事件参数变量、简单的函数表达式。


特别注意:

1、API请求参数中如涉及树形单据体赋值时建议先赋值父属性再赋值子属性,才能确保正常按行赋值。如果不赋值父属性直接赋值子属性,则只会取某个参数值赋给子属性。

举个例子:被赋值对象 A=[{"a":"xxx","b":"xxx"}],赋值对象 B= [{"c":"x1","d":"y1"},{"c":"x2","d":"y2"}] 

【方式一】赋值父属性:A = B,a =c,b = d 

                 赋值结果为:A = [{"a":"x1","b":"y1"},{"a":"x2","b":"y2"}] 

【方式二】不赋值父属性:a=c,b =d 

                 赋值结果为:A = [{"a":["x1","x2"],"b":["y1","y2"]}]


2)赋值脚本:对于复杂的赋值场景,如复杂的逻辑运算、调用微服务、调用WebAPI等,可通过编写脚本代码对API请求参数赋值。

  • 脚本可用变量包括事件参数($data)、上下文参数($event)、API请求头参数($header)、API请求体参数($body)、API请求URL参数($queryString)。

  • 脚本直接编写逻辑,对 $header/$body/$queryString 进行赋值即可,无需Return。

    注意:脚本中取到$header、$body、$queryString这几个变量时,已包含上面列表参数赋值结果。

  • 运行顺序为 列表参数赋值 > 赋值脚本 > 拿$header、$body、$queryString进行WebAPI调用。

  • 若某个参数同时被列表参数赋值和脚本赋值,脚本中的赋值将覆盖列表参数赋值,最终调用API时采用脚本中的赋值结果。


【参考案例】

某订阅需要调用“销售出库单保存”API接口,若其API请求体中的销售订单单据体使用列表参数赋值完成,但物料分录需要调用另外的“查询物料信息”接口获取。所以拆解赋值脚本中关键步骤包括:

① 调用“获取销售订单明细”API,根据单据号查询完整物料分录。

② 整合返回的物料分录,适配“销售出库单保存”请求体格式。

③ 补充物料分录至请求体$body,确保数据完整准确后执行保存API调用。

赋值脚本如下:

//通过微服务调用WebAPI,获取销售订单物料明细
var number = "getOrderProduct";
var body ={
    "data":{
        "search_query_info":{
            "orders":[
                {}
            ],
            "filters":[
                {
                    "field_values":[
                        //传入事件参数中销售订单ID
           

事件目标(WebAPI)

变更记录产品版本更新内容更新日期V6.0.13初始版本2024年6月13日1 简介1.1 功能介绍事件触发时,通过调用第三方系统的API服务将事件消息...
点击下载文档文档为doc格式

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

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