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

SAP云平台上的ABAP编程环境里如何消费第三方服务

阅读更多

在ABAP On-Premises环境下,使用ABAP编程消费第三方服务,相信很多ABAP顾问都已经非常熟悉了,无非就是使用CL_HTTP_CLIENT或者CL_REST_HTTP_CLIENT来发送和接收HTTP请求。

下图这短短的38行代码,展示了如何使用ABAP工具类CL_HTTP_CLIENT去访问百度首页并拿到回复。

 

 

从百度返回的响应,通过方法GET_CDATA获得,存储于变量rv_data内:

 

 

当然如果我们是做正式的产品开发的话,一般不会把第三方服务的URL硬编码在应用程序里,而是通过事务码SM59创建的Destination管理第三方服务的endpoint,然后把Destination名称存储于配置表里,这样使得第三方服务的URL同应用代码解除耦合关系。

下图是一个例子,我在SM59事务码里维护了一个指向某C4C系统的Destination,取名为C4C:

 

 

然后在ABAP代码里使用cl_http_client=>create_by_destination创建HTTP工具类的实例。后续操作同使用cl_http_client=>create_by_url构造实例的代码一致,这里不再重复。

 

 

如果我们直接把On-Premises环境下的这些ABAP代码搬到SAP Cloud Platform的ABAP环境里,会遇到很多语法错误:

 

 

原因在Jerry的第一篇介绍SAP云平台ABAP编程环境的文章 在SAP云平台ABAP编程环境上编写第一段ABAP程序 里就已经提到,云端的ABAP编程模型支持的只是ABAP编程语言的一个子集,我们只能使用SAP开放的白名单里的资源,这个白名单即上图左边Released Objects里面包含的内容。

因为Jerry在On-Premises环境里使用过的CL_HTTP_CLIENT, CL_REST_HTTP_CLIENT, IF_HTTP_CLIENT等ABAP类和接口均不在白名单内,故无法在ABAP云端环境使用。

既然在云端了,我们就得使用云端的编程范式。

Jerry去年的文章使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数 里曾经介绍过运行在云端的Java应用如何通过SAP云平台上创建的Destination来调用ABAP On-Premises系统里的RFC函数。如今我们在云上运行的应用的编程语言从Java换成了ABAP,然而借助Destination进行第三方服务调用的思路仍然不变。

Jerry先把正确答案公布出来,在SAP Cloud Platform ABAP编程环境访问第三方服务的代码如下:

 

 

可以看到其思路就是通过CL_HTTP_DESTINATION_PROVIDER这个云端的Destination工厂类,拿到Destination实例,然后基于该实例创建云端上的ABAP HTTP客户端实例。工厂类生产Destination实例需要两个参数:

  • i_name
  • i_service_instance_name

根据这个方法的接口注释,这两个参数分别为Destination的名称和Service instance的名称。下面Jerry介绍如何获得这两个参数的值。

 

 

在SAP Cloud Platform Service Marketplace里创建一个新的Destination实例:

 

 

 

 

 

 

 

 

我们把新建的实例取名为DestService,然后再基于该实例创建一个Destination配置,这个配置就好比我们在ABAP On-Premises的SM59事务码里创建的Destination:

 

 

Destination我取名为ZJERRY_API, 这就是前面提到的工厂方法里第一个参数i_name值的由来。

 

 

点击Check Connection,确保该Destination指向的URL可以访问:

 

 

然后点击Open Dashboard,打开这个SAP Cloud Platform ABAP实例的Fiori界面:

 

 

点击Launchpad tile,创建一个新的Communication Arrangements:

 

 

 

 

 

需要为新建的Communication Arrangement选择一个Communication Scenario,这里我选择SAP标准发布的专门用于CloudFoundry环境同第三方服务进行集成的场景,ID为SAP_COM_0276:

 

 

创建Communication Arrangement时还要维护Service Key信息:

 

 

这个Service Key的信息可以从Destination实例列表的Service Key维护界面获得:

 

 

在创建好的Communication Arrangement里,维护Service Instance Name的值为jerry-service-instance, 这也就是ABAP代码里传给工厂方法的第二个参数。

 

 

执行这个ABAP类:

 

 

获得期望的输出:

 

 

感谢阅读。

0
0
分享到:
评论

相关推荐

    实战SAP程序开发——从实例学SAP ABAP编程

    在SAP系统中,ABAP(Advanced Business Application Programming)是一种重要的编程语言,用于开发企业级的应用程序。本书《实战SAP程序开发——从实例学SAP ABAP编程》的前12章,深入浅出地介绍了SAP ABAP的基础...

    实战SAP程序开发——从实例学SAP ABAP编程.rar

    SAP是一种全球领先的业务软件系统,它用于企业管理各种复杂流程,包括财务、供应链、人力资源等。...实践是学习编程的最佳途径,这个资源提供了一个良好的起点,帮助你在SAP ABAP的世界里稳步前行。

    实战sap程序开发——从实例学sap abap编程

    《实战SAP程序开发——从实例学SAP ABAP编程》是一本专为希望深入学习SAP ABAP编程的读者量身打造的实战指南。ABAP(Advanced Business Application Programming)是SAP系统中的核心编程语言,用于开发企业级业务...

    实战SAP程序开发_从实例学SAP_ABAP编程_清晰版5

    这是实战SAP程序开发_从实例学SAP_ABAP编程的清晰版本

    SAP ABAP编程手册

    《SAP ABAP编程手册》是一本全面介绍SAP ABAP(Advanced Business Application Programming)的文档,涵盖了ABAP编程的各个方面。ABAP是SAP系统中的主要编程语言,用于开发企业级的应用程序,如报表、用户接口以及...

    实战SAP程序开发——从实例学SAP.ABAP编程

    SAP ABAP(Advanced Business Application Programming)是SAP系统中用于开发应用程序的主要编程语言。本篇文章将深入探讨通过实例学习SAP ABAP编程的关键知识点,旨在帮助初学者及有经验的开发者更好地理解和实践...

    SAP Web Dynpro For ABAP.7z

    在 SAP ABAP(Advanced Business Application Programming)环境中,Web Dynpro 提供了结构化的开发环境,允许开发者通过图形化的方式来设计、实现和管理用户界面。ABAP 是 SAP 系统的基础编程语言,用于开发和定制...

    SAP ABAP编程实战基础

    ABAP语言的核心是支持结构化程序设计,它与传统的第三代编程语言(如C语言和Pascal)有显著的区别。ABAP语言属于第四代编程语言(4GL),其语法和结构更接近于Visual Basic或JAVA。 2. ABAP基础: 在创建简单的...

    SAP ABAP 电子书

    SAP ABAP(Advanced Business Application Programming)是SAP公司推出的一种高级业务应用编程语言,用于开发在SAP R/3和SAP NetWeaver平台上的应用程序。这些电子书提供了全面的资源,帮助学习者深入理解并掌握SAP ...

    sap abap编程手册

    ### SAP ABAP编程手册核心知识点解析 #### 一、ABAP/4介绍 **ABAP/4(Advanced Business Application Programming)**是SAP R/3系统中唯一且核心的开发工具,属于第四代编程语言(4GL)。其语法设计借鉴了诸如...

    从实例学SAP ABAP编程(1-19章).pdf

    由于给定的文件信息中只提供了标题、描述和部分内容,且部分内容并没有涉及到实际的技术知识点,而是关于文档阅读器的推荐信息,因此根据您的要求,我将直接依据标题“从实例学SAP ABAP编程(1-19章)”生成与SAP ABAP...

    实战SAP程序开发--从实例学SAP ABAP编程

    "实战SAP程序开发--从实例学SAP ABAP编程"这本书无疑为我们提供了一个深入学习和实践SAP ABAP的机会。 ABAP是SAP NetWeaver平台的核心部分,它允许开发者创建业务应用程序、报表、用户接口以及与其他系统的接口。...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    SAP ABAP是一种面向过程的编程语言,主要应用于SAP NetWeaver平台上。它为开发者提供了创建业务逻辑和用户界面的能力,包括报表、对话程序、功能模块、数据库表、屏幕设计等。 2. ABAP 4.7版本特点: ABAP 4.7是...

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

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

    SAP_ABAP编程规范V1.2

    SAP_ABAP编程规范V1.2 SAP ABAP 编程规范V1.2 是一份详细的编程规范,旨在帮助开发者编写高质量、可维护的 SAP ABAP 代码。该规范涵盖了编码规则、程序规则、内部定义规则、消息类、SAP SCRIPT 等多个方面的内容。 ...

    从实例学SAP ABAP编程

    第十一章至第十三章可能会涉及更高级的主题,如模块化编程(函数模块和类)、报表编程(REPORT)以及使用ABAP工作流。这些章节将帮助读者掌握如何组织代码,创建可重用的组件,以及如何自动化企业内部的业务流程。 ...

    HA400 ABAP Programming on SAP HANA.pdf

    首先,文件标题“HA400 ABAP Programming on SAP HANA.pdf”明确指出了本教材聚焦于在SAP HANA平台上进行ABAP编程的教学。ABAP(Advanced Business Application Programming)是SAP系统中用于开发应用的主要编程语言...

    从实例学SAP ABAP编程完整版

    从实例学SAP ABAP编程完整版

    绝版图书完整版“实战SAP程序开发 从实例学SAP ABAP编程”7/9

    绝版图书完整版“实战SAP程序开发 从实例学SAP ABAP编程”

Global site tag (gtag.js) - Google Analytics