SAP RAP(RESTful Application Programming)简介

目录

1,ABAP的种类

2,RAP在SAP官方家族中的地位

3,RAP(RESTful Application Programming)实操 

3-1,准备工作

1),在BTP环境上创建ABAP Environment,指定 Cloud Foundry Runtime 运行时

2),BTP Subaccount 连接到Eclipse上

3),Package

4),开发环境,测试环境,本番环境

3-2,创建Package

a),Package名称,描述

b),Software Component

c),Request Description

d),添加到Favorite Packages

3-3,新建Class,实现Main方法,运行

a),输入Name,Description

b),Interface:IF_OO_ADT_CLASSRUN

c),选择TR(Transport Request)

d),实现 main方法

e),运行Hello World

3-4,总结

以下是详细内容。

1,ABAP的种类
一共有3种ABAP:

- Standard ABAP:标准ABAP,功能最全,咱们在SAP上开发Addon就是用的它

- ABAP for Key Users

- ABAP for Cloud Development

  后面两种是标准ABAP的子集,有些限制,比如对标准表的访问。像下面这个定义就会出错

  data sTable type of BKPF.

这个原因呢,BTP和SAP ERP本质上是两个东西,互相不通。

要想让它们之间通信,得通过Connectivity(On-Premise还得加上 SAP Cloud Connector)才行。

不可能指望大家名字都叫ABAP,就让在BTP上运行的ABAP访问标准表了是吧。可参考:

SAP学习笔记 - 开发09 - BTP简介,BTP在SAP产品中的位置_sap btp-CSDN博客

2,RAP在SAP官方家族中的地位
按ABAP Platform的版本,一共有3世代:

- ABAP Platform <= 7.5,这个比较古老,Web页面用Web Dynpro来做那个时代,算第一代;

- ABAP Platform >= 7.5,SEGW / @OData,Reference Data Source (SADL)

  CDS View,CDS-Based BOPF(用于更新操作)

  页面用Fiori,这样前后端都齐了,这算是第二代;

  ※SADL:Odata redefinition with Referenced Data Sources

- SAP S/4HANA >= 1909,这个就是最新的RAP(RESTful Application Programming)

  定义Business Service,用CDSView,取代BOPF用Behavior来更新数据,这算是第三代。

- 现在SAP 推荐的是第二种和第三种,但是估计第二种只是存量,未来大概率是主推第三种

3,RAP(RESTful Application Programming)实操 

3-1,准备工作

1),在BTP环境上创建ABAP Environment,指定 Cloud Foundry Runtime 运行时

2),BTP Subaccount 连接到Eclipse上
SAP学习笔记 - 开发08 - Eclipse连接到 BTP Cockpit实例-CSDN博客

我这已经连好了

注意,这里需要安装ADT,才能让Eclipse连接到BTP上面。

SAP学习笔记 - 开发03 - CDSView开发环境搭建,Eclipse中连接SAP,CDSView创建_sap eclipse-CSDN博客

这个图说明了这几个概念的关系:

其实我们上一次说得挺清楚的了,再贴一下,加深印象

SAP学习笔记 - 开发10 - BTP架构图,实操创建Directory/Subaccount,BTP的内部组成,BTP Cockpit-CSDN博客

这里面想说的是,ABAP Instance 是运行在 Cloud Foundry Environment上面的。

准备工作到此就做好了,至于下面的 3),Package 和 4),环境 的问题,

只是在这里顺道说一下,不需要先准备,你可以先跳过这块儿。

3),Package
ABAP Object的包关系如下:

- Software Component:最顶层

- Package:ABAP Object必须放到一个Package里面

- Repository Object:这就是Object,比如Class,Behavior,CDSView等等都是这一层

4),开发环境,测试环境,本番环境
a),如何建多个环境

咱们上一篇文章里也说了,一个Subaccount 就相当于SAP GUI 里面的Client,

所以可以建多个Subaccount,赋予它们不同的用途。

SAP学习笔记 - 开发10 - BTP架构图,实操创建Directory/Subaccount,BTP的内部组成,BTP Cockpit-CSDN博客

b),如何在多个环境间移送

那么要怎么把开发环境的东西给传到测试环境/本番环境呢?

跟SAP Client间移行差不多,就是移送,即 Transport Request(传输请求,移送番号)。

c),Transport Request(传输请求,移送番号)

- Owner:每个 TR 都有一个Owner,Owner可以Assign 其他User到该 TR上,

   即一个TR,多个User

- Lock:当Object 被包含在某个TR中,那么该 Object就被Lock了,

  只有被Assign到TR(包含该Object) 的User 才能编集它

- Release:当某个TR中的Object都编集完成,Owner或User就可以进入Release了

  Release完之后,任意User就都可以编集该Object了

准备工作做好以后,就可以建Package了。

3-2,创建Package
右键Project > New > ABAP Package

a),Package名称,描述

输入 Name,Description,然后点 Next

(注意,这里没勾上 Add to favorite packages)

b),Software Component

选 ZLOCAL,直接输入也可以,然后点Next

c),Request Description

这个就是上面说得 Transport Request(传输请求,移送番号),

输入传输请求描述,然后点Finish

这样Package就算是创建好了。

但是注意它在Favorite Packages > ZLOCAL 里面也不显示,这是为啥呢?

其实就是因为上面建包的时候,没勾上 Add to favorite packages。那还能补救吗?

是的,可以后面再加

d),添加到Favorite Packages

右键 Favorite Packages > 选 Add Package

输入检索关键字,比如包名的前几位,然后找到包以后,选中,并点 OK 按钮

 这样就把新建的Package ZBTP001 给加进来了。

Package也准备好了,终于可以开始写程序了。

3-3,新建Class,实现Main方法,运行

右键该Package > New > ABAP Class

a),输入Name,Description

 

b),Interface:IF_OO_ADT_CLASSRUN

这里要加一个Interface,比如 IF_OO_ADT_CLASSRUN(Interface),然后点 Next

c),选择TR(Transport Request)

就选咱们建包的时候建的那个,然后点Finish

d),实现 main方法

上面添加了Interface if_oo_adt_classrun,这个接口有个必须实现的方法叫main

咱们给它实现一下

这里就简单的出力一个 Hello BTP Word!

CLASS zbtp001_01 DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .
 
  PUBLIC SECTION.
 
    INTERFACES if_oo_adt_classrun .
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.
 
CLASS zbtp001_01 IMPLEMENTATION.
 
  METHOD if_oo_adt_classrun~main.
    out->write( 'Hello BTP Word!' ).
  ENDMETHOD.
ENDCLASS.

e),运行Hello World

运行前,先要有效化一下(按下 Ctrl + F3)

有效化完之后,按F9,来实行程序。

咱们这里就是ABAP Console出力一行字儿,这样就算运行完了。

3-4,总结
- 程序的运行是在 BTP 环境上面的,不是本地哦

- 程序本身已经保存到 BTP 环境上面了,

  跟 On-Premise 上面用ABAP开发的 Addon一样,代码都保存在系统上面

- 总体来说沿用了SAP的On-Premise开发那种思路,跟Open系开发不是一个套路

上面的Hello Word 是那个初学者梗,俗称最简单的ABAP程序:)

那么真正的程序都包含什么内容呢?

- Business Services

  - Service Bindings:绑定Metadata Extensions 里面的页面信息

    然后就会打开Fiori List Report形式的画面了。

    上面是检索条件,下面是List Report,双击某一行还可以打开到明细,可以编集;

    List Report那里可以删除,追加行等等。

  - Service Definition

- CDS (Core Data Service)

  - Behavior Definitions:CRUD(增删改查操作),Vadlidation,Determination等等

  - Data Definitions

  - Metadata Extensions:通过Annotation指定页面字段信息

- Dictionary

  - Data Elements

  - Database Tables

  - Structures

- Source Code Library

  - Classes

- Texts

  - Messages

以上就是本篇的全部内容。

### SAP RAP 开发教程与指南 SAP RAPRESTful Application Programming)是一项现代化的技术,专为构建和维护企业应用程序而设计。它提供了强大的功能,使得无论是新手还是经验丰富的 ABAP 开发者都能从中受益[^1]。 #### 1. 官方教程与学习资源 SAP 提供了多种官方资源来帮助开发者学习和掌握 RAP 技术。以下是一些推荐的教程和指南: - **openSAP 课程**:SAP 提供了一门名为“Building Apps with the ABAP RESTful Application Programming model (RAP)”的 openSAP 课程。该课程通过实际案例讲解了如何使用 RAP 构建应用程序,并提供了一个开源项目仓库 `abap-platform-rap-opensap`,其中包含课程中的示例代码[^2]。 - **SAP 官方文档**:SAP 官方文档是学习 RAP 的重要资源。开发者可以通过阅读官方文档了解 RAP 的核心概念、架构以及最佳实践。此外,官方文档还提供了详细的 API 参考和开发指南[^5]。 - **SAP Cloud ABAP RAP 开源项目指南**:该项目指南提供了一系列示例,展示如何在 SAP BTP(Business Technology Platform)的 ABAP 环境中使用 RAP 进行开发开发者可以从项目地址 `https://gitcode.com/gh_mirrors/cl/cloud-abap-rap` 下载并研究这些示例代码[^4]。 #### 2. 实践步骤 以下是学习 SAP RAP 开发的一些关键步骤和建议: - **环境准备**:在开始开发之前,需要在 SAP BTP 上创建一个 ABAP Environment,并指定 Cloud Foundry Runtime 作为运行时环境。这是确保 RAP 应用程序能够正常运行的基础[^5]。 - **理解核心概念**:RAP 的核心概念包括实体、行为、服务定义和服务绑定等。开发者需要深入理解这些概念,以便能够设计出符合业务需求的应用程序[^1]。 - **构建首个 RAP 应用**:通过构建一个简单的 RAP 应用程序来熟悉开发流程。可以参考 openSAP 课程中的示例代码,或者从 `cloud-abap-rap` 项目中选择一个合适的示例进行实践[^4]。 #### 3. 示例代码 以下是一个简单的 RAP 实体定义示例: ```abap @EndUserText.label: 'Sample Entity' define entity ZSAMPLE_ENTITY { key ID: UUID; description: String(100); created_at: Timestamp; } ``` 上述代码定义了一个名为 `ZSAMPLE_ENTITY` 的实体,包含三个字段:`ID`、`description` 和 `created_at`。 #### 4. 比较与选择 如果开发者正在考虑使用其他技术栈(如 CAP),可以对比 RAP 和 CAP 的特点。虽然两者都用于构建企业级服务和应用程序,但 CAP 是一个独立于 ABAP 技术栈的框架,而 RAP 则完全基于 ABAP 平台。开发者可以根据具体需求和技术背景选择合适的技术栈[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值