SAP-Fiori:Gateway ODATA(V2)

ODATA概念

OData (开放数据协议) 是一种基于RESTful架构的Web协议,用于通过HTTP轻松地查询和更新数据。在SAP领域,它基于SAP NetWeaver Gateway技术实现,是连接SAP业务数据与外部应用的标准桥梁。

  • 标准与生态系统:遵从OData国际标准,被广泛的主流开发工具和平台支持。

  • 开发集成 :基于HTTPJSON/XML等现代Web技术,原生支持RESTful风格,轻量化、无状态,便于前端(如SAPUI5)和云原生应用集成。

  • 灵活查询 :提供强大的URI查询语言 ,支持过滤($filter)、排序($orderby)、分页($top/$skip)等操作,可按需精准获取数据子集,减少网络负载。

  • 同步处理 :查询和更新操作均为实时同步处理,能立即获取处理结果,适合对实时性要求高的交互场景。

SAP目前同时支持OData V2和V4两个主要版本。

OData V2 与 V4 的简要对比

对比维度 OData V2 OData V4
发布时间 2010 年 2014 年
设计目标 解决基础数据交换需求 支持现代 API 设计(RESTful、JSON 友好)
默认数据格式 JSON / XML JSON(完全重构,减少约 60% 传输负载)
聚合查询 需后端自定义 原生支持($apply=aggregate
响应结构 { "d": { "results": [...] } } { "@odata.context": "...", "value": [...] }
批处理 支持但格式复杂 简化格式(JSON Batch)
SAP 支持 传统 ABAP 系统(ECC、S/4HANA 基础) S/4HANA 1909+(Fiori Elements 推荐)
查询语言 基础筛选 增强型,支持分析查询和多级过滤
导航属性 简单导航 深度嵌套导航

本文主要讲V2版本

OData V2 发布于 2010 年,设计目标是解决基础的数据交换需求。作为 OData 协议的第二个主要版本,它在 SAP 系统中得到广泛应用,支持于传统 ABAP 系统(包括 SAP ECC 和 S/4HANA 基础版本),是 SAP 早期 Fiori 应用的主要数据交互方式;

OData V2 服务架构与通信协议 概括了三个层次:消费层网关层数据层。它们的协作关系可以如下图理解:

各层讲解

层级 典型组件 做什么 不做什么
消费层 UI5应用、Fiori、Postman、Excel Power Query 构造URL、添加Header、解析响应、展示数据 不关心数据从哪个表来,不处理RFC调用
网关层 ICF Handler、OData解析器、服务调度器 将HTTP请求转为ABAP方法调用,再将结果序列化 不实现具体的数据查询逻辑(那是数据层的活)
数据层 DPC_EXT 类、BAPI、RFC、数据库表、CDS View 真正执行SELECT、调用BAPI、做业务校验 不关心HTTP细节,只返回ABAP结构或内表

发布ODATA Service

使用事务码 SEGW (Gateway Service Builder) 在 SAP GUI 中创建 OData 服务

SAP GUI输入事务码SEGW

创建步骤

创建成功如下图所示

各组件详细解析

Data Model (数据模型层):定义服务暴露的数据结构、关系和可调用的函数。

|------------------|--------------------------|
| Entity Types | 描述业务对象的结构,包含字段及类型。 |
| Entity Sets | 实体类型的集合,是API中可访问的资源。 |
| Associations | 定义实体间的导航关系(1:N, N:1) |

Service Implementation (服务实现层): 将模型中的操作(CRUD+Q)与具体的数据源 (RFC、BAPI、表、CDS)或自定义代码绑定。

Runtime Artifacts (运行时工件 -- 生成的 ABAP 对象): 当点击 "Generate Runtime Objects" 时,系统自动生成的全部 ABAP 对象

Service Maintenance (服务维护入口): 双击该节点直接进入事务码 /IWFND/MAINT_SERVICE

创建实体:

next弹出一下界面选择组件

next弹出界面选择主键

Finsh:完成实体的创建

激活

激活成功如下图所示

注册ODATA Service

相关推荐
HeathlX3 小时前
SAP-Fiori:Gateway ODATA (V2) CURD之Query
abap
爱喝水的鱼丶9 天前
SAP-ABAP:深入浅出 SAP AFVC 表:生产订单工序的核心数据仓库
运维·服务器·数据仓库·sap·abap·pp
爱喝水的鱼丶9 天前
SAP-ABAP: 深入浅出 SAP 经典可执行程序:从零开始掌握
运维·服务器·数据库·sap·abap·开发交流
LilySesy16 天前
【与AI+】英语day4——数据库与性能优化
数据库·oracle·性能优化·sap·abap·自动翻译
除了辣条不吃辣1 个月前
ABAP 正则表达式
开发语言·正则表达式·abap·alv
LilySesy1 个月前
【与AI+】英语day1——ABAP基础与数据类型
开发语言·ai·sap·abap
LilySesy1 个月前
【案例总结】震撼巨作——SAP连接钉钉WEBHOOK
运维·人工智能·ai·钉钉·sap·abap·webhook
Jack.Huangjh1 个月前
SAP ODATA
abap
雨天行舟2 个月前
abap调用deepseek接口 v3.0
http·ai·sap·abap·聊天·deepseek