当前位置: 首页 > backend >正文

SAP学习笔记 - 开发11 - RAP(RESTful Application Programming)简介

上一章学习了BTP架构图,实操创建Directory/Subaccount,BTP的内部组成,BTP Cockpit。

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

本章继续学习SAP BTP 的知识。

目录

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产品中的位置-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 DEFINITIONPUBLICFINALCREATE 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顾问业务知识请点击下面目录链接或东京老树根的博客主页

https://blog.csdn.net/shi_ly/category_12216766.html

东京老树根-CSDN博客

http://www.xdnf.cn/news/6138.html

相关文章:

  • 鸿蒙OSUniApp开发富文本编辑器组件#三方框架 #Uniapp
  • 鸿蒙OSUniApp 制作个人信息编辑界面与头像上传功能#三方框架 #Uniapp
  • 计算机网络的七层“千层饼“
  • TCP/IP参考模型详解:从理论架构到实战应用
  • 牛市买卖数字货币逻辑
  • Java 中序列化和反序列化的详细说明
  • Android学习总结之类LiveData与ViewModel关系篇
  • 【Redis 进阶】分布式锁
  • Q1财报揭示:用户增长与客单价下跌对eBay卖家的蝴蝶效应
  • 最佳实践PPT | 数据架构设计总体规划方案数据中台架构数据架构图解决方案
  • 深度解析智能体:从概念到应用的全方位洞察
  • AI产品上市前的“安全通行证“
  • 7.DTH11和PWM波
  • React系列——nvm、node、npm、yarn(MAC)
  • 机器学习第十讲:异常值检测 → 发现身高填3米的不合理数据
  • Spring 事件监听机制的使用
  • flatbuffer实践
  • 操作系统实验 实验3 存储器分配与回收
  • 设计模式-中介者模式
  • Docker使用经验-从Image导出dockerfile并进行修改
  • 【Elasticsearch】DSL 篇
  • 什么是alpaca 或 sharegpt 格式的数据集?
  • Windows电脑端高效记事提醒工具推荐
  • 【ios越狱包安装失败?uniapp导出ipa文件如何安装到苹果手机】苹果IOS直接安装IPA文件
  • SCDN能够运用在物联网加速当中吗?
  • Spring Web MVC————入门(2)
  • Spark处理过程--案例数据清洗
  • 大模型越狱:技术漏洞与安全挑战——从原理到防御
  • 正向代理与反向代理区别及应用
  • 威廉・巴拉德与格理集团:在高科技浪潮中的洞察与前行