愉快的暑假结束了,今天是小朋友新学期开学后的第一个周日,不知道各位家长是否和小朋友们一块儿,已经适应了新学期的生活了么?
Jerry从少的可怜的属于本身的周末时光挤了一小部分时间出来,写了这篇文章。编程
Jerry以前的一篇文章 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function,我曾经提到过,若是想将ABAP Netweaver里的资源以Restful API的方式暴露出来,SICF这个事务码绝对是一大利器。浏览器
咱们只须要在SICF里合适的路径下建立节点,为该节点建立一个ABAP类,就能够专一于实现接口定义的方法IF_HTTP_EXTENSION~HANDLE_REQUEST, 在里面编写应用逻辑了。应用开发人员无需关注和操心这些ABAP类何时被实例化和调用,能够把这个HANDLE_REQUEST方法看做是一个回调函数,当请求到来时,由Netweaver的ICF框架(Internet Communication Framework)负责把请求路由到对应的ICF节点并建立ABAP类,调用HANDLE_REQUEST方法。
每一个SICF节点会根据其路径被分配一个url, 若是是Corporate网络里,用浏览器或者编程语言直接访问该url,就能消费SICF暴露的资源了。
若是想让这个位于Corporate网络内的url被Internet网络访问,就得借助SAP Cloud Connector:服务器
具体步骤在我以前的文章使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 里介绍过。网络
对于ABAP开发人员来讲,一个好消息是,SAP Cloud Platform现在也支持ABAP运行环境了。如今咱们经过在SAP云平台 ABAP运行环境里完成相似以前在On-Premises ABAP系统的SICF事务码里的开发任务,来感觉ABAP到了云端以后,给ABAP开发者带来的巨大便利。框架
按照Jerry以前的文章在SAP云平台ABAP编程环境上编写第一段ABAP程序 里介绍的步骤,经过ABAP Development Tools链接SAP云平台 ABAP运行环境的一个实例,完成登陆后,后续的操做步骤,同使用ABAP Development Tools链接一个On-Premises ABAP系统,几乎没有差异。编程语言
下图是在云上的ABAP环境里,容许咱们建立的ABAP对象列表,既有ABAP开发人员感到亲切的ABAP字段对象,ABAP开发包,ABAP消息类等等,也有上了云端以后的新面孔,好比Cloud Communication Management和Cloud IAM等。
为了完成在On-Premises的SICF事务码里的开发工做,如今咱们要在云上的ABAP环境里建立一个新的HTTP Service:函数
新建一个名为ZHELLOWORLD的service,建立完毕以后界面以下:url
ABAP老司机们看到这界面,当即知道下一步怎么作了吧。点击Handler class,就能够进入ABAP类的编辑界面,实现这个HTTP服务的业务逻辑。而经过url字段里维护的值,咱们能够在PC或移动设备里,浏览器或代码里访问这个服务。
该服务实现类和On-Premises的区别,不过是接口名称从IF_HTTP_EXTENSION换成了IF_HTTP_SERVICE_EXTENSION. 固然,前者由于是直接在云端编写的ABAP代码,因此还要遵循Jerry以前的文章 在SAP云平台ABAP编程环境上编写第一段ABAP程序 里提到的那些限制。spa
上述的ABAP代码只是简单地返回给消费者一个Hello World的文本信息,保存激活以后,把url贴到浏览器里,就能看到指望的Hello World:3d
咱们从url里,容易得出这样的结论,SAP Cloud Platform ABAP运行环境里支持建立的HTTP服务,其实现原理,其实就是在Netweaver服务器的SICF路径/sap/bc/http/sap/下面增长一个新的节点罢了,只是这个操做,在云端再也不须要由ABAP开发人员手动完成,云端的ABAP环境,会自动建立这一底层设施。
但愿传统ABAP开发人员,能从这个最简单的Hello World级别的例子,体会到云端ABAP开发的便利之处。感谢阅读。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":