接下来的操作,好比在Java class的static public void main(String[] args)方法里用System.out.println打印Hello World一样。
这个新建的ABAP类实现IF_OO_ADT_CLASSRUN接口, 进行Hello World的打印:
激活代码,可以看到和On-Premises一样,这个类的各个组成部分需要一起激活。
激活完毕后,Run As->ABAP Application(console):
Console里看到输出:
观察这个类执行的交互日志,发现我们在ABAP Development Tools里触发的执行动作,IDE发送了一个SAP Cloud Platform上endpoint为/sap/bc/adt/oo/classrun的POST请求。
这段程序在SAP云平台的ABAP实例上执行,结果再以HTTP响应的方式返回给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。
总结
本文首先介绍了 ABAP 编程语言从本地部署环境迁移到云端的历史必然性,接着从 Hello World 级别的例子出发,介绍了 ABAP 云端编程环境里如何创建最简单的 Class,以及云端区别于本地环境的编程注意事项。