`
JerryWang_SAP
  • 浏览: 1042312 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

在SAP云平台ABAP编程环境上编写第一段ABAP程序

阅读更多

距2017年秋季的SAP TechEd大会上一位大佬Björn Goerke,SAP’s Chief Technology Officer宣布了SAP Cloud Platform即将支持ABAP至今,已经过去了两年的时间。

目前国内的技术媒体平台上,已经有了部分概要性介绍SAP Cloud Platform ABAP编程环境的中文文章,但涉及到具体操作细节的文章比较少。

Jerry最近会做一系列关于如何在SAP Cloud Platform上的ABAP编程环境上做开发的分享。

其实对于一个已经能够熟练使用ABAP Development Tools连接On-Premises ABAP Netweaver服务器做开发的传统开发人员而言,迁移到从On-Premises迁移到SAP云平台上的难度不大,只是需要注意一些开发理念上的转变,这个转变我们在后续具体做开发时会提到。

这种相对平缓的迁移和学习曲线,对于SAP全球庞大生态圈的企业和开发人员来说,无疑是一个好消息——这意味着SAP正在进行中的向云端数字化转型的旅程里,这些企业和个人也能够加入其中,并且他们以前在On-Premises时代积累的宝贵的技术和业务领域知识,能够继续在云时代发光发热。

我曾经在网络上了解到,很多自学SAP ABAP的朋友们,面临的第一道关卡就是在自己本地搭一台Netweaver服务器出来。作为一个写了12年代码的老开发人员,Jerry也搭过各种本地开发环境,深知这里面的水有多深。我以前的老板,也给我们分享过他当年来SAP成都研究院面试的时候,自己本地也搭过Netweaver,并且短短几天啃完几百页的Netweaver英文文档的经历。

相信每一位在本地搭建Netweaver的ABAP学习者,当成功看到Hello World输出的那一刻,成就感一定爆棚。

然而,当Jerry第一次在SAP Cloud Platform的ABAP编程环境上看到Hello World时,却没有多少成就感,因为直接按照ABAP Development Tool里的项目创建向导一步步操作就可以了,过程比较简单易懂——这也体现了云时代到来后,对传统应用开发人员工作方式的影响:无需费神去关心底层硬件或者操作系统等资源,可以把精力集中于应用程序逻辑的编写上。换言之,SAP负责管理和维护底层HANA数据库和中层的ABAP runtime,用户只需管理顶层的ABAP应用代码。

使用ABAP Development Tools的项目创建向导:
New->ABAP Cloud Project:

 

Service Instance Connection,选择SAP Cloud Platform CloudFoundry environment:

 

选择Region,输入用户名密码,前提是你得在这个region下有一个global Account。

 

下图是我在SAP Cloud Platform的CloudFoundry环境里的Global Account:

 

这个Global Account所属的space下面我创建了一个ABAP系统实例,ID为ME1:

 

这个ABAP运行实例具有16GB运行内存,64GB的HANA内存。

 

再回到ABAP Development Tools, 在项目创建向导里使用Cockpit里维护的上述属性:

 

点Next,在ABAP Development Tools里会看到一个嵌入的登录窗口。因为Jerry使用的是SAP社区Mentor的账号,所以登录窗口显示的标题是:Welcome to Mentors!

 

在向导里点Finish按钮:

 

点击之后,在ABAP Development Tools左侧的项目列表里就能看见创建好的ABAP Cloud项目了,接下来在这个项目里编写ABAP代码进行开发的方式,和我们用ADT连接On-Premises系统基本一致。大家可以看到下图创建好的高亮的ABAP Cloud项目(系统ID为ME1), 和其他On-Premises上的ABAP项目外观上没有区别。

 

这两种ABAP项目的差异在于,ABAP Cloud项目里能够使用的ABAP语言特性,只是传统ABAP语言的一个子集,比如传统ABAP语言里和Dynpro相关的关键字,即只能工作在SAPGUI中的那些关键字,因为在Cloud环境下不再适用了,所以在ABAP Development Tools的ABAP Cloud项目里禁止使用。

现在就可以进行第一行ABAP程序的编写了。

和On-Premises环境下一样,首先创建一个本地包ZJERRY(local package):

 

然后弹出提示要求创建Transport Request(传输请求):

 

Package和Transport Request都有了之后,就可以开始编码了。
在On-Premises时代,我们想用ABAP打印Hello World,直接SE38创建一个报表(Program,如下图所示),然后WRITE: 'Hello World'就可以了。

 

在SAP Cloud Platform上,新建列表的选项里已经没有了ABAP Program这一项。

 

所以我们只能选择新建一个ABAP Class:

 

指定把这个类存储到刚刚新建的Transport Request里:

 

接下来的操作,好比在Java class的static public void main(String[] args)方法里用System.out.println打印Hello World一样。

这个新建的ABAP类实现IF_OO_ADT_CLASSRUN接口, 进行Hello World的打印:

 

激活代码,可以看到和On-Premises一样,这个类的各个组成部分需要一起激活。

 

至于为什么Jerry在IDE里书写了一段纯文本的ABAP源码,但是激活时任务列表里产生了这么多对象,请参考Jerry的博客:General properties of ABAP Classes / Interfaces
https://blogs.sap.com/2014/03/14/general-properties-of-abap-classes-interfaces/
激活完毕后,Run As->ABAP Application(console):

 

Console里看到输出:

 

观察这个类执行的交互日志,发现我们在ABAP Development Tools里触发的执行动作,IDE发送了一个SAP Cloud Platform上endpoint为/sap/bc/adt/oo/classrun的POST请求。

 

这段程序在SAP云平台的ABAP实例上执行,结果再以HTTP响应的方式返回给IDE。

 

IDE发送请求给SAP Cloud Platform的具体Java代码,可以按照Jerry的文章:那些年我用过的SAP IDE 里介绍的方法去反编译后查看。

 

在SAP云平台上的ABAP编程,和传统On-Premises系统编程相比,一个显著的差异就是,出于保持简单,降低操作风险的准则,以及在提供操作的灵活性和云平台安全性等方面的折衷考虑,开发人员在SAP Cloud Platform的ABAP编程环境无法像后者一样能够任意访问Netweaver上的资源。

以传统ABAP开发人员在Netweaver上进行二次开发最常用的ABAP OPEN SQL读表的操作为例,这种直接访问数据库表的行为在SAP Cloud Platform上会引起语法错误。

即使像下图这样在ABAP代码里直接引用Netweaver的数据库表,在SAP云平台上也是不允许的。

 

所有对底层资源的访问都必须通过SAP定义的白名单里的API进行,即下图Released Objects里包含的API。

 

后续Jerry将带来SAP云平台ABAP编程环境更多开发内容的分析,敬请期待。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

 

 
0
0
分享到:
评论

相关推荐

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    ABAP(Advanced Business Application Programming)是SAP公司推出的一种编程语言,主要用于开发SAP系统中的业务应用程序。SAP系统在全球企业资源规划(ERP)领域有着广泛的应用,而ABAP则是其核心开发语言,使得...

    从实例学sap abap编程

    - **SAP云平台ABAP环境**:学习如何在云端开发和部署ABAP应用。 通过《从实例学SAP ABAP编程》这本教程,读者将不仅掌握ABAP编程的基础,还能获得丰富的实战经验,从而在SAP系统开发领域中游刃有余。无论你是初学...

    ABAP用户指南(SAP ABAP开发)

    - **ABAP in the Cloud**:这是一个云平台,允许开发者在云端进行ABAP开发。 #### 三、ABAP基本语法 - **数据类型**:ABAP支持多种数据类型,如字符串、数值、日期时间等。 - **控制结构**:包括循环、条件语句等...

    ABAP入门教程试用于初学者,很友好.pdf

    对于初学者来说,ABAP入门教程通常会从基础语法讲起,逐步过渡到报表编写、对话流程处理等高级主题,使得初学者能够逐步掌握ABAP编程的核心概念和技术,进而在SAP R/3平台上进行开发和定制工作。

    ABAP on SAP HANA – Building an End-to-End App from HANA via ABAP to SAPUI5

    - 使用SAPUI5和Gateway ABAP在SAP HANA云平台上构建移动应用程序。 #### 技术架构概述 - **SAP HANA数据库:** 提供高性能的数据存储和处理能力。 - **ABAP Development Tools for SAP NetWeaver:** 支持整个ABAP...

    SAP自开发通常指的是在SAP系统平台上进行的定制化开发.docx

    SAP自开发通常指的是在SAP系统平台上进行的定制化开发,以满足企业特定的业务需求。...SAP Web IDE是SAP云平台上的开发工具,支持HTML5、JavaScript等Web技术的开发。 它提供了丰富的模板和插件,方便开发者快

    实战sap开发

    同时,SAP云平台上的ABAP编程模型也提供了在云端开发和部署ABAP应用的可能性。 总的来说,《实战SAP程序开发——从实例学SAP ABAP编程》是一本全面且实用的指南,涵盖了SAP ABAP开发的各个层面,无论你是初学者还是...

    SAP PO 流程集成平台介绍

    同时,SAP PO的资产互操作性功能,也使得企业可以在不同系统之间进行资产重用,特别是在SAP Cloud Platform Integration环境下,企业可以进一步提升其云集成的效率。 综上所述,SAP PO流程集成平台的诸多优点使其...

    CD260_ABAP_in_Eclipse_开发_CN.pdf

    - SAP认识到应用程序开发模型正在发生变化,其中包括应用程序将在移动设备、SAP HANA和云平台上运行的趋势。 - 这种趋势的出现,也推动了SAP对开发工具进行相应的调整和优化,以适应新的开发和部署模式。 8. **...

    SAP开发者指导(PDF)

    6. **SAP云平台**:随着云计算的发展,SAP云平台成为开发和部署SAP应用的新场所。学习如何使用Cloud SDK,以及如何与SAP Cloud Platform Integration和SAP Cloud Platform Extension Factory等服务交互,对于开发云...

    SAP BTP for Beginner

    SAP BTP(Business Technology Platform)是SAP提供的一个集成式云平台,它允许开发人员构建、运行和管理企业级应用程序,包括ABAP环境,这是一种专为SAP应用开发设计的云环境。 在“Building Extensions with SAP ...

    强晟SAP自学笔记BC系列

    《强晟SAP自学笔记BC系列》是一套专注于SAP ABAP编程的自学教程,旨在帮助初学者和有经验的IT专业人士深入理解SAP BC(Business Connector)系列的知识点。这套资料涵盖了多个BC系列课程的中文笔记,包括BC490、BC...

    SAP ABAP开发⼊⻔

    - 云端平台:支持基于云的服务和应用程序,便于远程访问和管理。 #### 三、SAP系统架构 - SAP系统通常采用三层架构: - 客户端层:负责用户界面和交互逻辑。 - 应用服务器层:执行业务逻辑和数据处理。 - ...

    SAPUI5(SAP Fiori)运行环境介绍

    SAP Cloud Platform是一个开放的、多云的平台即服务(PaaS)解决方案,允许客户在云中构建、扩展和运行应用程序。SCP提供了SAPUI5应用的运行环境,并且支持开发人员利用SCP上的各种服务和工具来快速开发云应用。 4....

    SAP HANA云平台解决方案.pptx

    SAP HANA云平台(HANA Cloud Platform,简称HCP)是一个开放的PaaS(Platform-as-a-Service)解决方案,它为开发人员和企业提供了构建、扩展和集成应用程序的环境,特别关注于企业级的BPaaS(Business-Platform-as-a...

    在SAP中查询TABLE的18种方法

    ABAP(Advanced Business Application Programming)是SAP的主要编程语言,通过编写ABAP程序可以实现对SAP TABLE的复杂查询和数据处理。例如,使用READ TABLE、SELECT SINGLE等语句可以访问和操作数据。 ### 3. ALV...

    SAP开发者常用教程

    6. **SAP云平台**:SAP云平台提供了开发、部署和运行SAP和非SAP应用程序的云端环境。学习如何使用Cloud SDK和SCP(SAP Cloud Platform)服务,能让你的解决方案更加灵活和可扩展。 7. **SAP UI5**:UI5是SAP用于...

    SAP平台技术概述.pdf

    SAP提供了一系列开发技术,包括传统的ABAP编程、OO ABAP(面向对象的ABAP)、Web Dynpro用于创建富客户端应用程序,以及利用SAP NetWeaver Gateway进行移动和Web应用程序开发。此外,还有SAP HANA平台,支持实时数据...

    SAP_HANA_STUDIO_X64_2.3.37.zip

    9. **云集成**:随着SAP HANA的云版本越来越普及,SAP HANA Studio也支持连接到SAP HANA Cloud,使得开发和管理云上的HANA实例成为可能。 SAP HANA Studio 2.3.37版可能包含了一些更新和改进,比如性能提升、新功能...

Global site tag (gtag.js) - Google Analytics