首页 > 其他分享 >SAP OData 开发实战教程:从入门到提高

SAP OData 开发实战教程:从入门到提高

时间:2023-04-17 15:34:49浏览次数:43  
标签:教程 服务 OData Programming ABAP 开发 SAP

@

目录

  • SEGW - Gateway Service Builder
  • 使用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务
  • 使用 SAP Cloud Application Programming 编程模型开发 OData 服务
  • 详细目录

本教程根据笔者在 SAP 研究院工作多年的实战经验,计划通过 300 篇以上的文章篇幅,深入介绍 SAP 三大主流的 OData 开发技术:

  • SEGW(Gateway Service Builder)
  • RAP - Restful ABAP Programming 模型
  • CAP - Cloud Application Programming 模型

希望这套教程对使用 ABAP,Java 和 Node.js 开发 OData 服务的从业人员的入门和提高都能有所帮助。点击文末阅读原文获得本教程。

笔者之前的文章 SAP OData 编程指南

OData(Open Data Protocol)协议是一个开放的工业标准,用于 RESTFul API 的设计和使用。OData 是一种协议而不是一门具体的编程语言,我们可以用市面上流行的任何高级语言,比如 Java,Node.js,Go,Python 等实现 OData 服务。目前主流的编程语言,均提供了各自的软件开发工具包(SDK),对底层的 OData API 开发提供了封装,提高了开发人员编写 OData 服务的效率和代码质量。

在 SAP 产品里,也存在多种 OData 服务的开发方式,其中最典型的三类,就是笔者在本教程里会为大家分享和讲解的内容。

同笔者的一套适合 SAP UI5 开发人员循序渐进的学习教程类似,本教程笔者计划通过 300 篇以上的文章篇幅,分别介绍这三类 SAP 主流的 OData 服务开发技术。

SEGW - Gateway Service Builder

SEGW 是我们在 SAP ABAP 系统里开发 OData 服务的事务码。在这个事务码里,开发人员对 OData 服务的模型进行建模,使用 Builder 自动生成 OData 服务模型元数据类(Metadata Provider Class,简称 MPC),以及 OData 服务的业务数据提供类(Data Provider Class,简称 DPC).

SAP OData 开发实战教程:从入门到提高_ABAP

使用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务

SAP RAP 编程模型定义了在 SAP Business Technology Platform ABAP 环境中进行高效的端到端应用开发的一种方式,支持针对 SAP HANA 优化过的 OData 服务的开发。

SAP RAP 支持开发所有类型的 Fiori 应用程序以及 A2X 服务。SAP RAP 提供了一套技术和框架,包括用于定义语义丰富的数据模型的核心数据服务 (Core Data Service,简称 CDS) 和围绕 CDS 的底层基础架构。

使用 SAP RAP,开发人员可以快速和高质量的创建基于 ABAP 技术栈的 OData 服务,并使用基于 SAP UI5 的 Fiori 应用来消费这些 OData 服务。

SAP OData 开发实战教程:从入门到提高_ABAP_02

关于 Restful ABAP Programming 编程模型,笔者曾经发表过这些文章:

本教程将用大量的篇幅进行展开,深入介绍这些开发步骤的细节。

使用 SAP Cloud Application Programming 编程模型开发 OData 服务

同 SEGW 和 RAP 相比,SAP Cloud Application Programming(简称 CAP) 同前两种基于 ABAP 技术栈的 OData 开发方式不同,它是一个包含语言、库和工具的框架,用于构建企业级服务和应用程序。SAP CAP 引导着开发人员,沿着经过 SAP 验证的最佳实践,和大量开箱即用的重复性任务解决方案的黄金开发路径而前进。

从 SAP CAP 下面的架构图能够发现,SAP CAP 底层的编程语言是 Node.js 和 Java,并支持 Node.js 的 Express 框架和 Java 的 Spring 框架,这使得拥有非 ABAP 开发技能的开发者,也能加入到 SAP 开发这个大的生态圈。使用 SAP CAP 能开发符合企业应用标准的端到端应用,而用它来开发 OData 服务,只是牛刀小试。

SAP OData 开发实战教程:从入门到提高_OData_03

笔者曾经发布过一些关于 SAP CAP 的概述和具体例子的文章:

本教程会详细介绍使用 SAP CAP 开发 OData 服务的步骤和实现细节。

详细目录

下面是本教程的详细目录,通过点击文末阅读原文来获得本教程。

基于 SEGW - Gateway Service Builder 的开发教程

1. 在 SAP ABAP 事物码 SEGW 里创建 SAP OData 项目

2. 在 SAP ABAP 系统对事物码 SEGW 创建的 OData 服务进行配置并测试

3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的使用方法

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

5. SAP ABAP OData 服务如何支持 $filter (过滤)操作

6. 使用 Postman 工具高效管理和测试 SAP ABAP OData 服务

7. SAP ABAP OData 服务如何支持 $orderby (排序)操作

8. SAP ABAP OData 服务如何支持创建(Create)操作

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

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

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

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

13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)

14. 几种 SAP ABAP OData 服务的性能评估和测试工具介绍

15. SAP ABAP OData 服务里 EntityType 和 EntitySet 的区别

16. 如何修改 SAP ABAP OData 模型,使其支持 $expand 操作

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

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

19. 如何使用 ABAP 程序消费 SAP ABAP OData 服务

20. 如何使用 ABAP 代码消费需要传递 CSRF token 的 OData 服务

21. SAP ABAP OData 服务的 $count 操作实现

22. SAP ABAP OData 服务的 $count 和 $inlinecount 两个操作的区别

23. 如何给 SAP ABAP SEGW 开发的 OData 服务添加 Access-Control-Allow-Origin 响应头

24. SAP 标准产品里使用 OData 服务的一些细节分享

25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器

26. SAP ABAP OData Gateway 框架里 /IWFND, /IWBEP 这些缩写代表了什么含义?

27. SAP OData 框架里的缓存(Cache)设计专题讲座

28. 如何使用 SAP OData 服务向 ABAP 服务器上传文件

29. 如何通过 ABAP 代码给 SAP OData 元数据增添注解

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

31. SAP UI5 Fiori 应用在启动时向 ABAP 后台发起的 OData 请求序列的顺序和作用分析

32. 更多文章正在写作中,敬请期待

使用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务

正在写作中,敬请期待

使用 SAP Cloud Application Programming 编程模型开发 OData 服务

1. SAP Business Application Studio 里创建一个基于 CAP 模型的最简单的 OData 服务

2. 如何给在 SAP Business Application Studio 里开发的 OData 服务准备测试数据



标签:教程,服务,OData,Programming,ABAP,开发,SAP
From: https://blog.51cto.com/jerrywangsap/6195281

相关文章

  • 通过一个具体的例子,深入了解 SAP UI5 控件数据双向绑定的工作原理和问题排查方法试读
    笔者知识星球里有朋友提问:SAPUI5中的sap.m.select控件,在当前页面做任何操作时,都可以选中key值,但触发dialog之后,可以看到select框内的key值被清空,当关闭dialog后,再去选择key值,无任何反应,请问是select控件的问题还是dialog的问题又或者是odata写法有问题,谢谢!......
  • 关于 Fiori 应用里 SAP UI5 前端开发和 SEGW 后台 OData 服务开发的工作量比值问题
    我的知识星球有朋友向我提问:Jerry您好!请问一个中等复杂度的FioriUI5应用,前端代码用freestyle方式纯自己写,后端用SEGW开发Odata服务,前后端的工作量的比值大概是多少?需考虑调试测试的时间。关于这个问题,首先我们得界定,什么算是一个中等复杂度的Fiori应用?从前台视角来看,......
  • SAP 官方的在线课程网站:Open SAP
    我从2007年大学毕业加入SAP成都研究院,在这个行业工作已经16年了。我第一次听说SAP这个公司的名称,还是SAP到大学开校园宣讲会的时候,所以我也是零基础SAP入门。我从一个SAP菜鸟开始的成长史,可以参考这篇文章:一个SAP开发工程师的成长史个人的感受是,如果英语的阅读能力......
  • Ubuntu18教程
    远程连接参考文章openssh-client//默认安装,支持客户机访问其他系统的权限sudoapt-getinstallopenssh-server//让其他系统访问客户机servicesshstart//开启ssh问题如果Linux服务器出现变化,需要在xshell或xftp更改本地密钥参考文章xftp连接要使用sftp协议,而xsh......
  • ansible使用教程
    目录一、介绍1.Ansible发展史2.特性3.架构4.ansible的作用以及工作结构5.ansible主要组成部分二、安装1.rpm包安装:EPEL源2.编译安装:3.Git方式:4.pip安装:pip是安装Python包的管理器,类似yum5.确认安装:三、相关文件1.配置文件2.程序3.主机清单详解4.配置文件详......
  • 从零开始学习 GraphQL:入门指南和教程
    认识GraphQL前段时间,GraphQL 出现并掀起了一阵热潮。但是GraphQL跟REST是两种不同的东西,所以也需要一定的学习成本,导致大部分人都没有选择去学习它,今天就带大家简单过一遍GraphQL吧,希望大家能有所收获。知识扩展:GraphQL和REST对比GraphQL好在哪?首先来说说GraphQL到底......
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(一):入门篇
    作者:卢文双资深数据库内核研发去年年底通过微信公众号【数据库内核】设定了一个目标——2023年要写一系列特性介绍+内核解析的文章(现阶段还是以MySQL为主)。虽然关注者很少,但本着“说到就要做到”的原则,从这篇就开始了。序言:以前对MySQL测试框架MTR的使用,主要集中......
  • mapbox-gl实战教程:地图定位
    在地图开发中,定位是进行的比较多的操作,根据操作,定位到地图上一个位置,定位到地图上的一个区域,或是定位到一条路上等等。下边以实际的代码操作,讲一下mapbox-gl如何进行定位的操作。1、点数据定位:对于点数据的定位,mapbox-gl提供了两个实现方式,一个跳转(jumpTo)到位置,一个飞到(flyTo)指......
  • Air724UG开发板串口教程
    1、前言这块板子是毕业设计老师替选的,出自合宙。使用Lua5.1,包含部分外部lib包。缺点:官方宣传的Luat合宙全系列通用,在Air724ug上是无法使用的该开发板使用Lua5.1,缺少了较多常用的Api,需要外部lib补充,往往也很难查询开发板型号多种多样,官方教程使用开发板往往和你的不同......
  • SAP ABAP 通过 https 消费外部 API 遇到错误消息 SSSLERR_SSL_CONNECT
    错误消息:500NativeSSLerror:SSLhandshakewithapi.uat443failed:SSSLERR_SSL_CONNECT-57SAPCRYPTO:SSL_connectfailedreceivedafatalTLS1.0internal_erroralertfromthepeer这个错误是关于ABAP作为客户端,无法通过https向提供API的外部服务器建立安全......