SAP 通过 OData Service 反查 CDS View 位置 & 视图「Workaround」

文章介绍了通过已知的ODataServiceURL反查CDSView内容的方法,包括在Eclipse中直接打开ABAP开发对象,以及在SE11中使用Where-UsedList来定位CDSView在MARA表的位置,以便于查看或修改CDSView代码。

前言

使用场景:目前已知 OData Service 由 CDS View 发布,但是想要查看该 CDS 的具体内容

  • 根据 OData Service 获取关键信息
  • 盲猜对应底表
  • 通过 SE11 反查引用位置

CDS View Name

目前已知 OData Service URL:

http://xxx.xxx.com:xxxx/sap/opu/odata/sap/ZCDS_PDA_MATERIAL_SRV/ZCDS_PDA_MATERIAL

或者可以通过 TCode - SEGW 查看对应 CDS View 名称:

在这里插入图片描述

CDS View Name: ZCDS_PDA_MATERIAL


2023.2.7 更新

※ 目前最优解,只需参见本段内容即可

Eclipse - Navigate - Open ABAP Development Object

在这里插入图片描述

选择对应「服务器」,输入 CDS View Name,点击确认

在这里插入图片描述

查看对应位置的 2 种方法

在这里插入图片描述


※ 后续内容忽略即可

通过名称我们也不难看出,该 CDS View 大概率查询的是 MARA

如果「名称」难以分辨,那就发一次请求,看看返回值

在这里插入图片描述


SE11 引用反查

这里我们确定了 MARA 表,查看 「Where-Used List」,指定 DDL Sources

在这里插入图片描述

查询结果

在这里插入图片描述

双击进入,然后查看位置

在这里插入图片描述

至此我们知道了:

  • CDS View 位置:$TMP
  • 视图名称:ZV_PDA_MATERIAL
  • 如果需要修改 CDS View 代码,使用 Eclipse 找到对应位置修改即可

在这里插入图片描述

在私有云版本的 SAP 里将 CDS view 激活为 OData service,可按以下操作进行: #### 定义 CDS View 首先要创建或使用已有的 CDS view,这是整个过程的基础。以下是一个简单的 CDS view 定义示例: ```sql @AbapCatalog.sqlViewName: 'Z_MY_CDS_VIEW' @EndUserText.label: 'My Custom CDS View' define view Z_MY_CDS_VIEW as select from sflight { carrid, connid, fldate, price } ``` #### 暴露 CDS ViewOData 服务 在 CDS view 定义中添加暴露为 OData 服务的相关注解。如下所示: ```sql @AbapCatalog.sqlViewName: 'Z_MY_CDS_VIEW' @EndUserText.label: 'My Custom CDS View' @OData.publish: true define view Z_MY_CDS_VIEW as select from sflight { carrid, connid, fldate, price } ``` 这里的 `@OData.publish: true` 注解的作用是将该 CDS view 暴露为 OData 服务。 #### 激活 CDS ViewSAP 开发工具(如 SAP Web IDE 或 ABAP Development Tools)中,选中定义好的 CDS view 文件,然后执行激活操作。激活过程会对 CDS view 进行语法检查和编译,确保其可以正常作为 OData 服务使用。 #### 配置 OData 服务 激活成功后,需要在 SAP Gateway 中配置 OData 服务。具体是进入 SAP Gateway 配置事务代码(如 `/n/IWFND/MAINT_SERVICE`),在该界面中创建或修改服务,将之前激活的 CDS view 关联到相应的 OData 服务上。 #### 测试 OData 服务 配置完成后,可使用工具(如 Postman 或 SAP Gateway Client)来测试 OData 服务是否正常工作。输入服务的 URL 并发送请求,查看能否正确返回 CDS view 中的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wriprin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值