6. SAP ABAP OData 服务里需要指定 guid 类型的请求参数时,正确语法是什么?

我们通过一个具体的例子来学习。在 ABAP 系统里使用事务码 SEGW 打开一个 OData 模型,展开 Function Import 目录,发现一个叫做 book_guid 的输入参数,类型为 Edm.Guid.

下面我们就在 Postman 里消费这个 OData 服务的 Function Import.

url 设置为 https://{ {host}}:{ {port}}/sap/opu/odata/sap/ZBOOK_MANAGE_SRV/PutToStore?book_guid=42010aee-2a94-1edd-8494-c9d14e91555e:

点击 Send 之后,遇到 HTTP 400 错误消息:

按照常理推断,HTTP 400 错误,也称为 Bad Request 错误,通常指的是由于客户端发送的请求中存在语法错误,导致服务器无法

37. 如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import 模型本身,所以我们将 ls_book_db 变量包含的图书数据(包括 function import 设置的值为 1 的 status 字段),写入到该 function import 实现方法的输出参数。当 STATUS 值为 1 时,代表该图书可以通过在线商城等前端应用访问,当 STATUS 值为 0 时,代表其暂时下架,一般的用户,无法通过在线商城等应用看到这本书。我们假设这样一个业务场景,给图书模型对应的后台数据库表,增添一个 STATUS 字段,为简单起见,其数据类型就为字符型,长度为 1. 阅读详情

相关推荐

34. 如何使用 Postman 发送 SAP OData Batch 请求到 ABAP 后台服务器

本教程之前的文章,笔者曾经介绍了如何用 Postman 这个工具,高效管理和测试 SAP OData 服务: 实际上,笔者之前在 SAP 中国研究院参加 SAP 标准 OData 服务开发时,用的也正是这个工具来对自己团队负责的 OData 服务实现进行测试。 有朋友学习了我上面提到的文章后,提出疑问: > 可以通过 Postman 发送类型为 HTTP POST 且请求正文包含 Batch 请求的 OData 服务吗? 当然可以,本文就来详细介绍这个需求如何在 Postman 里实现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1545

9. SAP ABAP OData 服务如何支持删除(Delete)操作

本文的内容分为两部分,首先介绍如何在 Postman 或者 SAP ABAP Gateway Client 里发送 HTTP DELETE 请求来调用 OData 服务的删除操作时,请求的 url 应该如何指定;其次介绍了如何基于 SAP ABAP OData 服务实现删除操作。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2211

11. 使用 HTTP PUT, PATCH 以及 MERGE 请求消费 SAP ABAP OData 服务修改操作的实现及其区别

使用 SAP ABAP SEGW 事物码实现 OData 服务的修改操作时,对于消费端通过 PATCH/MERGE 和 PUT 这三种不同类型的 HTTP 请求触发的场景,我们应该在 UPDATE_ENTITY 方法里用 IF 分支分别进行处理,原因就在于 GET_ENTITY 方法是否在修改处理逻辑的过程中被触发。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2432

18. SAP ABAP OData 服务嵌套创建功能的实现步骤(Create Deep)

什么是 SAP ABAP OData 服务的嵌套创建功能?在很多 SAP 帮助文档里,这个功能的英文描述是 Create Deep,或者 Deep Insert. 我们通过一个现实的例子来讲解。下图是 SAP CRM Fiori 应用 My Opportunities, 我们可以看到,绿色区域代表 Opportunity OData 模型的根节点上创建的字段,而 OData 模型根节点下又包含了很多子节点,每个子节点分别对应下图 UI 一个 Tabstrip 的面板,比如 SalesArea,Produc

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1839

17. 如何通过 SAP ABAP OData $expand 操作在同一个 HTTP 请求中返回多个节点的数据

这些模型增强是在 ABAP 服务器的事物码SEGW里完成的。我们在 SEGW 里创建了Authors这个 Navigation Properties,它通过名为BookAuthor的 Relationship,依据 Book 和 Author 两个 Entity Type 的book_guid字段,描述了这两个节点间的导航关系,即通过一个 Book 实例,我们期望通过$expand操作,读取到其所有的 Authors 数据:其中绿色的位于$expand=

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2502

10. SAP ABAP OData 服务如何支持修改(Update)操作

本文介绍了如何实现 SAP ABAP OData 服务让其支持通过 HTTP PATCH 请求发送过来的 OData 修改请求。本教程后续步骤,会继续介绍如何让我们目前的 OData 服务,支持通过 HTTP PUT 请求和 MERGE 请求发送过来的修改请求。.........

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2374

5. 问题解答:在 Postman 里调用 SAP ABAP OData 出错应该如何分析

进入这个方法仔细阅读,发现 SAP ABAP Gateway 框架,在第 62 行,试图解析这个 HTTP 请求里。, 从名称能猜测出这个方法的职责,是解析 Postman 里发送过来的 HTTP 请求的。回答网友疑问:我在 Postman 里消费在 SAP ABAP 系统里,用事务码。, 似乎提示我们,Postman 里发送的 HTTP 请求的 url 不正确。的输入参数的值,但是解析不出来,因此就抛了异常。,调试器里的函数调用栈,给了我们答案。这个异常是在什么样的上下文里被触发的。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 552

12. SAP ABAP OData 服务如何支持 $select 有选择性地仅读取部分模型字段值

本文介绍了 OData 消费者如何使用 $select, 仅仅读取 OData 模型上自己感兴趣的字段,同时也分享了 OData 服务器端对应的实现明细。通过 @select 有选择性的读取某些字段,能减少 ABAP 应用层和数据库层之间的数据传输,以及减少 ABAP 服务器通过网络传递到浏览器的数据量。 ......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1673

4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 方法实现指南

首先第19行CREATEDATA创建er_entityset实例,指定其类型为zcl_zbook_manage_mpc=>tt_book,接着把这个引用映射到刚刚第五行定义的FIELD-SYMBOLS变量上去,这样的话,接下来我们对FIELD-SYMBOLS进行的操作,就会自动反应回引用变量er_entityset.因为我们可能在这个方法里,返回多条图书信息,所以需要用内表类型,而非单条记录的ts_book.ts_book代表一本图书的数据结构。......

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2954

8. SAP OData 里通过 Key 值和通过 $filter 操作读取数据有什么区别?

很多刚接触 OData 的朋友们,在使用类型为 Edm.Guid 进行数据读取的时候,都容易犯本文开头知识星球朋友提到的 Invalid key predicate type 错误。方法内部的 Gateway 框架代码,将我们通过 HTTP Url 传入的 GUID, 识别成了普通的 STRING 类型,而不是期望的 Edm.Guid 类型。后缀 set 的字面意思是集合,而这个方法的输出参数,是一个 ABAP 内表,这也说明了 $filter 操作的返回数据,有可能包含多条记录。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 290

SAP UI5 OData 模型里 function import 的调用方式

OData service 的 function import 允许开发者在服务端定义一些函数,这些函数可以通过 HTTP 请求被调用。这对于执行不能直接通过标准的 CRUD 操作表达的逻辑非常有用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1010

9. 添加了 @OData.publish 注解的 SAP CDS view 发布的 OData 服务,为何不支持修改和创建功能?

一个功能完备的 OData 服务实现,一般都支持对其底层数据模型的搜索和增删改查操作。使用 SEGW 开发工具,这些操作都必须手动实现。导入包含 @OData.publish: true 的注解的 CDS View,可以省去搜索和读取操作的实现,但修改和创建操作仍需手动实现。SAP 社区上除了我的博客外,也有其他从业者的分享文章,内容和我的文章大致一致,只是晚于笔者两年后发表。当然,笔者在 SAP 社区上的文章写于 8 年之前了。如果目前大家有更好的解决方案,欢迎分享。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 675

$expand 在 SAP ABAP OData 中的语义、作用与工程化实践(含 SEGW 与 RAP 可运行示例)

本文深入探讨了OData中的$expand操作,重点解析了其语义、适用场景及在SAP Gateway中的实现方法。$expand允许客户端在单个HTTP请求中同时获取主实体及其关联导航实体,减少网络往返次数。典型应用场景包括主从数据读取、详情页渲染和离线缓存优化。文章通过"图书-作者"案例展示了业务价值,并提供了在SEGW中重定义GET_EXPANDED_ENTITY方法的ABAP实现示例,指导开发者如何高效处理关联数据查询。该技术能显著提升系统性能,特别是在弱网环境下优化用户体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 285

在 SAP ABAP CDS View 里消费 CDS Table Function:用 AMDP 解决不同数据类型字段无法 Join 的硬核方案

FROM :clnt as client LEFT JOIN crmd_partner as sc ON sc.client = client.mandt LEFT JOIN but000 as sp ON sp.client = client.mandt AND sp.partner_guid = TO_NVARCHAR(HEXTOBIN(sc.partner_no)) WHERE sc.partner_fct = '00000001' -- Sold-to AND sc.objtype_set = 'B

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 182

ABAP Debugger,写 ABAP 代码时最该练熟的一把手术刀

文章摘要: SAP ABAP开发工具正通过VS Code向现代化转型,其调试功能已与传统SAP GUI调试器比肩,支持断点管理、步进控制、跨服务器调试及变量监控等核心能力。ABAP调试不仅是问题排查工具,更是理解复杂业务路径的关键入口(如跨Fiori、RAP、Gateway的多层调用)。开发者需关注变量层级(局部/全局/对象属性)、类型细节及调用栈上下文,结合Watch表达式追踪核心指标,而非盲目展开所有变量。VS Code的集成调试环境正推动ABAP开发闭环(编码-测试-调试)在单一IDE内完成,使ABA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1542

165. SAP UI5 应用如何采取 JavaScript 代码调用 OData API 读取满足过滤条件的业务数据($filter 操作)

本教程的前一篇文章,我们介绍了 SAP UI5 ODataModel API,sap.ui.model.odata.v2.ODataModel 提供的 read 方法,通过调用该方法可以使用 JavaScript 代码去读取远端 OData 服务的数据。本文我们更进一步,学习 read 方法里更多参数的使用方法。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1051

SAP S/4HANA 和 SAP CRM Fiori 应用的搜索分页实现

在我的博客Paging Implementation in S/4HANA for Customer Management 我介绍了S/4HANA for Customer Management里采用WebClient UI技术实现的UI上的搜索分页实现。 那么S/4HANA和CRM里原生的Fiori应用,其搜索分页又是如何实现的? 这篇博客分别选取S/4HANA里的Product Maste...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 794

安卓端目标检测模型部署血泪史:从NCNN/TFLite/MNN全军覆没到Torchscipts终见光明

公司需在Android设备部署目标检测模型,要求: ✅ 实时检测速度≥15FPS ✅ 模型精度损失<5% ✅ 兼容中低端安卓设备👉 GitHub项目地址:pytorch/android-demo-app/ObjectDetection我已上传这份源码到csdn下载准备模型(必须走这步才能跑通安卓端源码)如果您没有设置PyTorch环境来运行该脚本,可以下载模型文件此处转到“android演示app/ObjectDetection/app/src/main/assets”文件夹,然后跳过此步骤的其余部分,直

机器学习、深度学习、强化学习、迁移学习 1556

IAR9.X半主模式异常解析:为何硬件复位后仍陷调试状态?

本文深入解析了IAR 9.X半主模式异常问题,探讨了硬件复位后MCU仍陷调试状态的原因及解决方案。通过分析半主模式工作机制,提供了禁用半主功能、重写低级IO函数等具体方法,并给出了版本兼容性处理和调试与量产配置分离的优化建议,帮助开发者有效解决复位异常问题。

oo7890的博客 599

2024“华为杯”中国研究生数学建模竞赛(A题)深度剖析_数学建模完整过程+详细思路+代码全解析

目标是优化风力涡轮机的功率调度,使其在给定的实时风速数据下,最小化涡轮机关键组件(如塔架和主轴)的疲劳损伤。问题的挑战在于,考虑通信延迟和测量噪声的同时,要确保功率输出与风速变化的响应快速且准确。

2401_82549447的博客 6615

【原理图与PCB专题】使用Cadence如何在Layout时直接互换相同功能的PIN

Cadence允许我们在PCB中互换管脚,最后再反标给原理图。集成TVS管、排阻、DDR、FPGA有一些PIN是完全相同功能,可进行管脚互换的,建议使用这个功能。可降低硬件工程师与Layout工程师之间沟通成本,加快设计进度。

一点硬件 798

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布

通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。

互联网架构师笔记 1221

LeRobot 入门教程(十三)集成自定义的机器人、相机等硬件

本文详细介绍了如何将自定义机器人集成到LeRobot生态系统的完整流程。主要内容包括:1)硬件准备与通信接口选择;2)继承Robot基类实现标准接口;3)定义观察特征和动作特征;4)处理设备连接/断开逻辑;5)支持校准与配置;6)实现核心传感器读取和动作发送功能;7)可选遥操作器集成;8)遵循4项规范打包自定义设备(命名前缀、类名对应、文件结构、模块暴露);9)提供了完整实现示例。通过该方案,开发者可让自定义机器人兼容LeRobot的数据采集、控制管道和策略训练等全套工具链。

2506_90492529的博客 1899

华为OD机试真题 新系统2026-04-01 C++ 实现【计算数列位置N的值】

如果其前面的M个元素中,存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之如果其前面的M个元素中,不存在值相同的元素,则该位置上的数值等于前面M个数中最大的数值与最小的数值之差;1、输入M、N两个数,则按照以下规则形成一个数列;两个整数,用逗号分割,分别表示M和N。一个整数,表示数列第N个位置上的数值。2、数列的前M个元素的值为1到M;请计算该数列第N个位置上的数值。N取值范围:1<= N<=50。M取值范围:3<=M<=10。

MISAYAONE的博客 1099

基于STM32L4XX、HAL库的TESEO-LIV4FTR定位模块驱动程序设计

支持多星座系统:GPS、GLONASS、Galileo和北斗。支持NMEA 0183协议和ST专有协议。高灵敏度:-167dBm跟踪灵敏度。低功耗设计,适合物联网和便携设备。内置LNA和SAW滤波器。

zhusl6688的博客 229

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: 用 Controlled SAP LUW 做事务一致性体检:把 COMMIT WORK 和越界更新挡在门外
下一篇: 37. 如何在 SEGW 事务码里为 SAP ABAP OData 服务实现 Function Import
汪子熙
汪子熙 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域 优质创作者: 软件测试技术领域 优质创作者: 软件测试技术领域 领域专家: 数据库技术领域 领域专家: 数据库技术领域
博客等级 码龄16年 3万+粉丝 1万+原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

汪子熙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值