SAP RAP框架解析:构建现代Fiori应用的核心架构与实战

别再只会SEGW了!SAP OData服务开发的四种姿势,从CDS注解到RAP框架保姆级对比 本文深度解析SAP OData服务的四种开发方式,包括SEGW手动开发、CDS注解、RAP框架和RFC发布方案,帮助开发者根据业务需求和技术场景选择最佳实践。特别适合S/4HANA环境,提升开发效率和性能优化。 阅读详情

1. 项目概述:为什么RAP是构建现代Fiori应用的基石

如果你是一位SAP技术架构师,或者正在带领团队向SAP S/4HANA或SAP BTP迁移,那么“如何高效、标准地构建现代Fiori应用”一定是你思考的核心问题。过去,我们可能用Web Dynpro ABAP、SAPUI5搭配OData服务(SEGW)或ABAP Programming Model for SAP Fiori来搭建应用,但这些方式或多或少存在开发效率、架构统一性或与云原生理念契合度上的挑战。ABAP RESTful Application Programming Model(RAP)的出现,正是SAP给出的官方答案。它不是一个孤立的技术点,而是一套完整的、声明式的、以业务对象为中心的端到端开发框架,旨在统一并简化SAP Fiori应用的开发体验。

简单来说,RAP定义了我们如何在后端ABAP环境中设计、实现和暴露业务服务。它强制性地将业务逻辑、数据模型和行为定义在一个统一的框架内,并通过标准的OData协议自动生成Fiori服务。这意味着,作为架构师,你不再需要花费大量时间在技术基础设施的搭建和集成上,而是可以聚焦于业务对象的设计和核心业务规则的实现。RAP强制推行的分层架构(业务服务、业务对象、底层数据模型)和契约优先的开发模式,使得应用从一开始就具备了良好的可维护性、可扩展性和云就绪特性。本指南将从一个资深架构师的视角,深入拆解如何利用RAP构建一个健壮的现代Fiori应用,重点不在于基础操作,而在于架构决策、设计模式以及那些只有踩过坑才能获得的实战经验。

2. 核心架构设计与技术选型考量

2.1 RAP的分层架构:契约、行为与实现分离

RAP的核心魅力在于其清晰的分层架构,这直接映射了现代软件设计中的关注点分离原则。理解每一层的职责和交互方式,是做出正确技术决策的前提。

业务服务层(Business Service) :这是面向消费端(如Fiori Elements UI)的契约层。在这里,你定义最终暴露给外部的OData服务,包括实体集(EntitySets)、关联(Associations)和函数导入(Function Imports)。这一层的关键决策在于服务粒度的设计。是设计一个粗粒度的、包含所有相关数据的“主数据服务”,还是多个细粒度的、职责单一的服务?我的经验是,优先考虑Fiori应用的屏幕流和用户体验。一个复杂的“创建销售订单”应用可能需要一个聚合了客户、物料、定价信息的服务;而一个简单的“显示物料主数据”应用则对应一个独立的细粒度服务。RAP允许你通过服务绑定(Service Binding)将一个业务对象(BO)的多个节点(Nodes)投影到不同的服务中,这为灵活的API设计提供了可能。

业务对象层(Business Object) :这是业务逻辑和行为的核心载体。在RAP中,业务对象通过行为定义(Behavior Definition)和业务对象运行时(Business Object Runtime)来体现。行为定义文件( .bddef )是你声明业务对象行为契约的地方:哪些操作是允许的(create, update, delete),有哪些自定义动作(actions),有哪些校验(validations),有哪些字段是只读的或由系统自动填充(determinations)。这里的设计哲学是“声明优先于编码”。作为架构师,你必须和业务专家紧密合作,在编码之前,就在行为定义中明确所有业务规则和交互的“契约”。这极大地减少了后续的沟通成本和返工。

数据模型层(Data Model) :这是业务对象的持久化基础。RAP支持两种主要方式:托管(Managed)和非托管(Unmanaged)。在托管模式下,RAP运行时几乎接管了所有标准的CRUD(创建、读取、更新、删除)操作,你只需要在行为实现(Behavior Implementation)中编写自定义的业务逻辑(如复杂的校验、定价计算)。而在非托管模式下,你需要自己实现所有的数据持久化逻辑,这通常用于包装已有的、复杂的传统ABAP代码或自定义数据库表。架构选型的关键在于权衡: 对于全新的、标准化的应用,强烈推荐使用托管模式 ,它能将开发效率提升数倍,并保证代码符合最佳实践。只有当需要集成遗留代码或处理极其特殊的持久化逻辑时,才考虑非托管模式。

2.2 托管 vs. 非托管:一个关键的架构决策点

这个选择会贯穿整个项目,必须在项目启动初期就明确。

托管模式(The Managed Scenario) :

  • 优势 :开发速度极快。你定义好CDS视图作为数据模型,声明好行为,RAP运行时就会自动生成对应的OData服务以及标准的UI服务(如草案处理、批量操作)。你只需要专注于“增值”的业务逻辑。
  • 工作原理 :RAP运行时在底层为你的业务对象CDS视图自动生成对应的“托管”数据库表(通常以 / 开头),并处理所有到这些表的增删改查。你的行为实现类只需要继承 cl_abap_behavior_handler 并重写相关方法(如 validateSave , modify )来注入自定义逻辑。
  • 适用场景 :全新的SAP S/4HANA扩展应用、基于SAP BTP ABAP环境(Steampunk)的绿色字段应用、任何不需要直接操作特定现有数据库表的场景。

非托管模式(The Unmanaged Scenario) :

  • 优势 :完全的控制权。你可以将RAP业务对象层作为一层“门面”(Facade),背后调用任何已有的BAPI、函数模块、或直接操作自定义的Z表。这是将传统ABAP程序现代化、为其提供Fiori前端的利器。
  • 工作原理 :你需要自己实现行为定义中声明的每一个操作( create , update , delete , read 等)。在行为实现类中,你
SAP CDS与RAP技术演进及现代开发实践 数据建模是现代企业应用开发的核心基础,CDS(Core Data Services)作为声明式数据建模技术,通过注解驱动的方式实现了业务语义到物理模型的映射。其与OData服务的无缝集成,使得后端数据模型能够自动适配前端框架,显著提升全栈开发效率。随着架构演进,RAP(ABAP RESTful Application Programming Model)进一步将声明式范式扩展到应用层,形成包含业务服务层、业务对象层和数据持久层的三层架构。这种架构转型反映了从传统事务码开发向API优先设计的转变,在SAP F 阅读详情

相关推荐

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开发环境全解析:从搭建到跑通Fiori应用

ABAP开发人员常在传统ERP扩展中面临环境搭建慢、基础设施运维重等痛点。SAP云平台提供的ABAP开发环境将ABAP运行时服务化,借助CDS视图建模、RAP开发模型和OData服务发布,使开发者无需接触SAP GUI即可构建并部署Fiori应用。这一云原生扩展方式采用side-by-side架构,在保证核心系统洁净的同时实现灵活创新,适用于基于S/4HANA的新增接口、报表或前端应用等场景。围绕环境开通、ADT连接、BAS模板生成到权限配置的完整流程,本文分享实战步骤与常见坑点,帮助技术评估和试用者少走弯

weixin_33860528的博客 332

SAP Fiori RAP框架中Root Custom Entity开发指南

在SAP企业应用开发中,RAP(ABAP RESTful Application Programming)框架是实现现代化Fiori应用的核心技术。作为数据建模的基础单元,Root Custom Entity通过定义业务对象结构和行为特性,支撑起整个应用的业务逻辑。其技术原理基于分层架构设计,包含业务服务层、业务对象层和数据模型层,开发者可以通过CDS视图实体定义和注解驱动开发实现完整的数据建模。这种模式特别适合需要高度定制化的S/4HANA迁移项目,能够处理复杂的跨服务关联和动态权限控制。通过结合SAP

weixin_28702105的博客 274

SAP Fiori RAP框架中Root Custom Entity设计与实现

在SAP Fiori应用开发中,RAP(ABAP RESTful Application Programming)框架通过Root Custom Entity实现业务对象的核心建模。作为数据持久层与业务服务层的桥梁,该实体采用注解驱动开发模式,结合行为定义(Behavior Definition)实现完整的CRUD操作与业务逻辑封装。其技术价值体现在提升40%开发效率的同时,支持与SAP S/4HANA标准功能的深度集成。典型应用场景包括销售订单管理、物料主数据维护等企业级应用,特别是在需要实现草稿模式(D

weixin_30133813的博客 178

把 SADL 讲透:从 SAP Gateway 到 RAP,再到 Clean Core 时代的 OData 服务设计

摘要:SADL(Service Adaptation Definition Language)是SAP ABAP栈中面向模型驱动数据读取与处理的基础设施,在RAP体系中承担查询引擎和运行时编排的重要角色。它隐藏了OData服务的通用运行时逻辑,自动处理请求分发、模型解释、查询下推和结果装配,使开发者只需关注模型定义和业务逻辑。SADL特别适合读操作场景,能将OData查询选项(如$filter、$expand等)转换为优化的数据库查询。在RAP框架下,SADL已升级为更完整的运行时引擎,参与从请求到业务对象

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

新手破局:构建 SAP 全栈能力的十块黄金基石

后厨(SAP 后端)不需要知道是谁点的菜,也不需要关心你是用中文说的还是用英文写的,它只认菜单上的编号。当你在这个环境中能够熟练地编排逻辑流之后,再回头去写真正的代码,你会惊讶地发现,你脑海中已经有了清晰的程序结构图,写代码只不过是把这些图形翻译成文本而已。他们直接递给你一个打包好的、经过专业测试的战术背包,里面装好了针对雪山环境的所有装备。无论你是坐在大堂的客人(Fiori Web),还是在包厢的客人(手机 App),甚至是外卖平台(第三方系统),你们都只通过这本菜单(Metadata)点菜。

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

把 ABAP Cloud 三大用例设计透:从 CDS 到 RAP,再到集成与鉴权的一张蓝图

摘要 ABAP Cloud项目的成功关键在于设计阶段对用例边界、数据模型和服务架构的清晰规划。ABAP Cloud将应用分为事务型、分析型和集成型三类,各有不同的设计重点:事务型关注业务对象生命周期(RAP模型),分析型侧重多维数据分析(CDS视图),集成型专注系统间通信。其核心架构采用三层模型驱动设计(数据访问层-领域模型层-服务暴露层),通过CDS实现"一套模型多种消费"。以设备维修工单为例,同一CDS模型可同时支持事务处理、分析报表和系统集成。RAP框架特别适合事务型应用开发,通过

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

在 ABAP 云时代把集成这件事管明白:Communication Management 全景实战指南

摘要:SAP ABAP Cloud环境通过Communication Management标准化集成治理,将传统零散的事务码配置收敛为Scenario、User、System和Arrangement四层对象模型。该体系支持入站(Inbound)和出站(Outbound)两种通信方向,通过Fiori应用集中管理认证授权、服务编排等要素。文章详解了开发侧(定义Scenario)与运维侧(创建Arrangement)的分工,以及如何衔接OData、REST等技术栈,特别强调X.509证书、OAuth等安全实践,帮

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

深度学习与神经网络有什么区别

人工神经网络(ArtificialNeuralNetwork,即ANN)是从信息处理角度对人脑神经元网络进行抽象,是20世纪80年代以来人工智能领域兴起的研究热点,其本质是一种运算模型,由大量的节点(或称神经元)之间相互联接构成,在模式识别、智能机器人、自动控制、生物、医学、经济等领域已成功地解决了许多现代计算机难以解决的实际问题,表现出了良好的智能特性。...

super67269的博客 8476

gsplat在windows本地部署

3DGS的cuda提效和优化内存的版本gsplat,使得在有一定GPU计算能力的电脑上也能够尝尝3DGS的效果。我在2025年的开年之初尝试配置过gsplat,由于过程中遇到很多问题,最终还是有一些windows上字符编码的问题,没有跑通,最近看gsplat的github更新了3DGUT,优化了反射和二次折射,以及适用于非线性相机模型,如鱼眼相机等。在data目录下下载好了360_v2的数据,进入之后images文件夹是原始分辨率的图像,images_2是下采样系数为2的数据,以此类推。

yuleaf_csdn的博客 2363

共享最近邻相似度

共享最近邻相似度 第三十四次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。本文作为基于图的聚类的第二部分,主要针对“共享最近邻相似度(Shared Nearest Neighbour)”以及使用该度量的“Jarvis-Patrick聚类”进行介绍。其他基于图的聚类算法的链接可以在这篇综述《基于图的聚类算法综述(基于图的聚类算法开篇)》的结尾找到。 S...

Ἥλιος 7602

Python爬招聘网站:Selenium+ActionChains破解滑动验证码,批量采集岗位数据(新手可跑)

通过本文实战,你不仅学会了用Selenium+ActionChains破解滑动验证码,还掌握了爬虫的核心优化思路——“模拟人类行为”是突破反爬的关键。这套逻辑不仅适用于招聘网站,还能迁移到其他有滑动验证码的平台(如电商、资讯网站)。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1181

总目录- AutoSAR从入门到精通实战系列课程【持续更新中...】

欢迎大家订阅《AutoSAR入门和实战系列》,开始前博主先列出AutoSAR学习的大纲,同时这也可以作为大家学习AutoSAR的参考。想学习和及以及的同学们,可以订阅本博客,本博客一直持续更新中。如果想深入或从本质上学习和理解AutoSAR,打开此链接后,,点击左下方【立即订阅】订阅专栏!!!】......

4万+

【AI应用实战-OpenCode】OpenCode安装部署(一)

OpenCode是一款2026年流行的开源AI编程工具,兼具轻量代码编辑器和智能编码代理功能。其核心优势包括:完全免费开源(MIT协议)、全平台兼容、支持75+大模型(含本地部署)、内置完整编程功能链(代码补全/Git集成/AI调试等),且所有数据本地存储确保隐私安全。相比Copilot等商业工具,OpenCode提供更自由的模型选择和零门槛使用体验。安装要求Windows10+/macOS12+/Linux主流发行版,仅需200MB空间和4G内存。该工具完美兼容VSCode生态,支持终端/桌面/IDE三种

2391

真格量化-bs套利

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import * #开始时间,用于初始化一些参数 def OnStart(context) : context.myacc = None #登录交易账号 if context.accounts["回测期权"].Login() : co.

qq_26742269的博客 1316

【信号与系统】Multisim 仿真信号合成与分解

软件 Multisim 进行方波信号的产生、分解和合成,观察信号波形的分解与合成,加深对信号频谱的理解。

AXYZdong的博客 2万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 数字身份:数字世界的核心杠杆与构建指南
下一篇: Vue3.0 + ElementPlus 实战:从零搭建一个能发红包和朋友圈的网页版微信(附完整源码)
weixin_30788619
博客等级 码龄11年 102粉丝 1385原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值