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

本教程的前九篇文章,我们已经先后介绍了 SAP ABAP OData 服务,如何支持读取和过滤这两种不会引起系统出现 Side Effect(即系统状态被影响)的操作,以及创建(Create)和删除(Delete) 这两种会引起系统出现 Side Effect 的操作。

本文继续介绍 SAP ABAP OData 服务如何实现修改(Update)操作。

我们使用事物码 SEGW 打开之前创建的 OData 模型,发现 Book 模型上只有 stock_number 即库存数量可以支持修改,即 Updatable 属性被选中。

这个设定符合现状,因为图书一旦出版之后,图书编号,图书名称,作者编号和作者名称显然不能再更改了。

下面介绍如何在 Postman 里通过发送 HTTP PATCH 请求的方式,来修改指定图书的库存数量。

我们还是采取和之前学习创建和删除操作的步骤一样,采取 Error Driven Development (错误驱动开发)的思路来研究 OData 修改操作如何实现。

Postman 里创建一个新的 HTTP 请求,url 指定为:

https://{

SAP OData开发全解析:从ABAP到RAP与Fiori的实践指南 在SAP开发中,前后端数据交互是构建现代应用的核心。RESTful API作为主流接口风格,而OData则在此基础上提供了标准化、元数据驱动的数据访问协议。对于ABAP开发者而言,理解OData不仅是学会调用接口,更是掌握SAP Gateway、CDS View与RAP等关键技术的基石。通过OData,前端可以动态获取$metadata感知实体结构与操作权限,实现Fiori应用的高效绑定。从传统SEGW的MPC/DPC手工开发,到RAP模型化实现,再到实战中的405报错、特殊字符处理与批量提交问题,本文以工 阅读详情

相关推荐

SAP Fiori Elements与ABAP RAP实战:从CDS View到OData服务开发指南

在SAP企业级应用开发中,声明式UI与标准化数据建模是提升开发效率的关键。Fiori Elements通过OData注解驱动界面自动生成,ABAP RESTful编程模型(RAP)则基于CDS View定义数据模型与业务行为,两者结合将传统手写代码模式转变为配置化开发。其技术价值在于大幅降低维护成本、保证UI一致性,并支持快速迭代。典型应用场景包括采购订单管理、销售订单列表等列表加详情业务。理解CDS View注解与OData服务暴露机制,是掌握这一现代开发范式的核心。

weixin_33816946的博客 297

SAP-ABAP:SAP ABAP `UPDATE`语句用法及注意事项详解

SAP ABAP `UPDATE` 语句终极指南 数据库操作性能直接影响系统稳定性,`UPDATE` 的高效使用是ABAP开发核心技能。结合工业级实践,深度解析如下:

baidu_35680696的博客 1223

SAP-ABAP:SAP ABAP UPDATE 语句用法详解

SAP ABAP UPDATE 语句用法详解 在 SAP ABAP 中,`UPDATE` 语句用于修改数据库表中的现有记录。以下是其用法详解,涵盖基本语法、常见场景、性能优化及注意事项。

baidu_35680696的博客 1841

SAP-ABAP:SAP ABAP 中 UPDATE 数据库表详解

SAP ABAP 中 UPDATE 数据库表详解

baidu_35680696的博客 1675

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 年 2431

SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别

注意:由于 MERGE 不是 HTTP 规范 [RFC2616] 中定义的动词之一,因此使用 MERGE 动词可能不会像 HTTP 规范中定义的方法那样无缝地通过网络中介。SAP ABAP OData 框架每当触发 PATCH 或 MERGE 调用时,它将首先触发相应的 GET_ENTITY(collect all properties) 方法,然后才执行 UPDATE_ENTITY 方法。作为 PUT 方法的输入,则相同的属性子集将会被传入 UPDATE_ENTITY 方法进行处理。...

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

用 CDS 引用数据源开发 SAP Gateway OData 服务,补上 Update 能力,让销售订单描述真正可维护

本文摘要(149字): 在SAP Gateway项目中采用CDS作为数据源时,读操作通过CDS和SADL实现高效开发,但写操作需在ABAP中处理。案例展示了如何为销售订单描述字段添加更新功能:首先在MPC_EXT标记字段为可更新,然后在DPC_EXT中实现更新逻辑。关键点包括解析URI中的键值、处理payload数据、映射到BAPI结构(注意区分OData字段名与BAPI字段名),最后调用BAPI_EPM_SO_CHANGE完成更新。实现时需特别注意更新字段的X标记和错误处理,确保服务端与客户端元数据的一致

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

当 SAP Gateway OData V4 遇到 Deep Update,我们怎样把一个本来不支持的需求稳稳落地

本文探讨了SAP Gateway OData V4框架中深度更新(Deep Update)功能的实现困境。作者指出协议层(OData 4.01)虽已支持深度更新,但SAP Gateway框架尚未原生实现该功能。针对这一业务需求与技术实现间的鸿沟,文章提出了一种务实解决方案:在HTTP入口层添加精准拦截器,仅对特定URL和PUT方法请求进行自定义处理,其他请求仍交由标准处理器处理。这种设计既满足了特定业务场景的深度更新需求,又避免了大规模框架改造的风险。文中还展示了关键代码实现,通过路径校验和方法匹配确保拦截

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

129.SAP SEGW 创建 OData 服务完整步骤

摘要 本文系统介绍了SAP技术栈在企业级应用开发中的实施方法,重点讲解了采购订单管理场景的完整实现流程。内容涵盖SAP三层架构模型、ABAP面向对象编程范式、Open SQL数据操作规范以及OData服务发布机制等核心技术原理。通过详细的步骤说明和完整的可运行代码示例,展示了从数据库表定义、ABAP类实现到OData服务创建的全过程。文章采用SAP NetWeaver 7.5及以上版本语法,所有代码均经过验证,可直接应用于Eclipse ABAP开发环境或SAP GUI中,为读者提供了SAP开发的实用技术指

2601_95651806的博客 131

在 SAP HANA 时代选型不纠结:ABAP CDS 与 ABAP SQL 的分工协作与最佳实践

ABAP CDS与ABAP SQL在SAP应用开发中形成互补关系:CDS负责构建可复用的全局数据模型,提供语义化关联和访问控制;SQL则专注于程序内的动态查询和DML操作。CDS适合构建稳定、可扩展的核心模型,支持OData和RAP集成;SQL则适用于需要灵活性的即席查询和数据处理场景。两者共享同一数据库接口,但在建模复用性、动态能力等方面各有侧重。开发时应根据业务需求合理组合使用,在Clean Core架构下实现数据层的有效分层。

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

OData Request: Update Entity —— 在 ABAP OData Client Proxy 中优雅地完成 PUT / PATCH 更新

本文详解了在SAP Gateway Foundation中使用OData客户端代理(Client Proxy)进行实体更新的方法。对比分析了OData V2与V4版本下PUT(整体替换)和PATCH(增量更新)的语义差异及实现方式,强调PATCH必须指定更新字段。提供了ABAP代码示例,展示如何通过Client Proxy创建请求、设置业务数据、实现并发控制(ETag)等完整流程。文章结合HR系统员工晋升等实际场景,帮助开发者在ABAP On-Premise和BTP环境中快速应用这些技术,避免常见错误。

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

SAP-ABAP:SAP ABAP 进阶:BAPI 的技术结构、数据流与集成定位深度解析

文章摘要: BAPI作为SAP面向服务架构(SOA)的核心组件,本质是业务对象(BOR)的标准化方法,而非独立函数模块。其技术结构包含严格的参数契约(如RETURN表错误处理)和显式事务控制(需调用BAPI_TRANSACTION_COMMIT)。数据流显示BAPI位于ABAP业务逻辑层之上,集成时保留SAP校验与增强点。相比RFC、IDoc等技术,BAPI优势在于强业务语义和原子操作,但存在性能较低、复杂查询支持弱的局限。最佳实践包括批量调用组合和优先复用标准BAPI。 (字数:149)

baidu_35680696的博客 900

ABAP Gateway Soft State,从 OData 会话复用到无感日志切面的工程边界

文章摘要:SAP Gateway的Soft State机制为解决OData服务中多个独立HTTP请求的性能问题提供优化方案。它通过维护短暂的应用服务器会话,让同一用户对同一服务的连续请求可复用上下文资源,如缓存、配置数据和业务对象初始化,从而减少重复开销。不同于传统状态会话,Soft State强调透明性和临时性,不保证业务数据持久化,也不替代事务锁机制。实现时需要配置模型层支持,并在DPC_EXT中处理operation_start/end生命周期,适用于优化Fiori页面加载等需要多次请求的业务场景,但

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

用 ABAP Unit 测试 OData 服务:从 SEGW DPC 到 RAP Service Binding 的全链路实践

本文介绍了如何为OData服务编写自动化单元测试,重点解决服务迭代中的稳定性问题。文章提出两种测试方法:针对SEGW DPC的经典单元测试和使用Service Binding的本地客户端代理测试。核心难点在于模拟OData请求上下文,SAP提供了INIT_DP_FOR_UNIT_TEST等专用方法初始化测试环境。通过具体代码示例,展示了如何测试带筛选条件的数据读取和新建数据场景,强调通过断言验证关键业务逻辑的正确性。这种测试方法能有效预防服务变更导致的接口问题,提升开发质量和效率。

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

SAP OData V2 中的 MERGE 与 PATCH:语义差异、网关实现、ABAP 代码与实战选择

摘要 本文面向熟悉SAP ABAP和BTP开发的工程师,深入解析OData V2中MERGE与PATCH的区别与应用。文章从协议标准、语义差异、SAP Gateway实现、客户端传输等多个维度展开分析,并给出具体选型建议和ABAP代码示例。 主要内容包括: 核心观点:MERGE是OData早期过渡方案,PATCH是HTTP标准方法,两者在SAP中均实现部分更新 协议差异:PATCH具有更好的网络兼容性,微软OData规范推荐优先使用 SAP实现:Gateway框架对两者的处理逻辑相似,均会先获取实体再合并更

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

VS code平台调试AutoLISP程序教程

VS code平台调试AutoLISP程序教程

BearElder的博客 3159

Apache Hop集成Spring Boot实战:从配置到执行HPL文件

本文详细介绍了将Apache Hop集成到Spring Boot应用中的完整实战方案。通过配置核心依赖、初始化Hop环境、编写服务层逻辑,实现了在Java应用中程序化执行HPL管道文件,从而将可视化ETL能力无缝嵌入微服务架构,提升数据处理的自动化与可维护性。

blue42的博客 469

使用VLC库实现视频播放器(WPF版)

使用wpf制作一个视频播放器 一、 LibVLCSharp介绍 LibVLCSharp是基于VideoLAN的LibVLC库的.NET平台的跨平台音频和视频API。它提供了一个全面的多媒体API,可以跨移动、服务器和桌面使用,以呈现视频和输出音频。支持Mono、.NET Framework和.NET核心运行时。在vs工具中,只需要安装截图中得两个nuget包。 二、视频播放器的实现 视频播放器的实现需要用到两个比较nuget包中提供的类,MediaPlayer类。MediaPlayer类型用于控

cangqiongxiaoye的博客 1万+

从医疗成像到工业检测:CMOS图像传感器NIR技术的最新应用案例解析

本文深入解析了CMOS图像传感器NIR技术在医疗成像和工业检测中的最新应用案例。通过提升量子效率至70%,NIR技术实现了血管可视化、材料缺陷检测等突破性进展,显著提高了医疗诊断精度和工业质检效率。文章还探讨了系统集成关键考量和前沿发展趋势。

weixin_30879169的博客 77

OSMDroid 切换地图不更新的问题

用OSMDroid加载Google地图的时候 需要有按钮切换不同图层的地图,如果发现调用了mMapView.setTileSource(ITileSource aTileSource)方法的时候发现地图View没有更新的话,可能是因为两个实例化TileSource对象其子类BitmapTileSourceBase这个类的aName成员变量值一样导致的地图在setTileSource出现不更新问题,...

godoge的博客 1034

小红书私信接口与Hook技术实战:微信跳转卡片的合规与破解之道

本文深入探讨了小红书私信接口与Hook技术的实战应用,重点解析了微信跳转卡片的合规使用与破解方法。通过官方私信接口的合规玩法与Xposed框架的Hook技术对比,为开发者提供了技术选型指南和实战建议,帮助实现高效的用户跳转与转化。

weixin_30399821的博客 688

PhotovoltaicPanelCleanlinessDetector:基于YOLOv8的光伏板清洁状态监测系统

data.yamlyaml复制编辑names:0: clean1: dust3: leaves4: shadow✅ 高精度污染识别✅ 具备实时检测与UI展示✅ 可本地化部署应用未来方向增加污染程度分级(轻度、中度、严重)加入时间序列分析(污染变化趋势预测)无人机集成巡检模块。

YOLO 272

5G/NR SSB学习总结

6.1 SSB概念 同步信号和PBCH块(Synchronization Signal and PBCH block, 简称SSB),它由主同步信号(Primary Synchronization Signals, 简称PSS)、辅同步信号(Secondary Synchronization Signals, 简称SSS)、PBCH三部分共同组成。 6.2 SSB特征 ...

欢迎来到小七的博客,这里将带你深入探索5G通信的神秘世界。无论你是通信领域的专业人士还是对这一领域充满好奇心的技术爱好者,这里都有专业协议解读、通信知识普及以及有趣的Python编程内容等你发现。 8万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 9. SAP ABAP OData 服务如何支持删除(Delete)操作
下一篇: SAP ABAP Gateway Client 里 OData 测试的 PUT, PATCH, MERGE 请求有什么区别
汪子熙
汪子熙 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域 优质创作者: 软件测试技术领域 优质创作者: 软件测试技术领域 领域专家: 数据库技术领域 领域专家: 数据库技术领域
博客等级 码龄16年 3万+粉丝 1万+原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

汪子熙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值