场景:SAP云平台上的两个ABAP系统实例,一个作为数据的提供者-provision system;另一个作为数据的消费者 - client system,后者从前者读取数据,并显示
实现步骤概述:
(1) client System创建outbound communication. (2) 在provision系统创建inbound communication. (3) Create a Service Consumption Model, and save this locally as a $metadata XML file; From this you will create proxy artefacts in the client system, representing the remote service, and use this model to generate an abstract entity. (4) 创建一个remote client proxy (5) 在client System创建一个OData服务,使用Fiori Elements消费并展示从provision系统取回的数据
SAP标准发布的Communication Scenario SAP_COM_0276,提供了SAP Cloud Platform ABAP实例同远端的ABAP On-Premises系统或者第三方系统集成的可能性。
A communication arrangement specifies the metadata for a specific communication scenario, such as your host system and the authentication method. This metadata is contained in a service key. You can then define one or more specific destinations for this arrangement.
Communication Arrangement为Communication Scenario指定了必须的元数据,包括通信系统和消息认证方式等信息,这些元数据以Service key的形式存储。可以基于Communication Arrangement创建Destination.
在SAP云平台CloudFoundry环境里创建一个Destination服务实例:
基于这个Destination服务创建一个新的Destination实例:
url字段维护成provision System的url,确保连接能够成功建立。
给Destination service创建一个新的service key,将其内容保存在本地:
在client System上打开ABAP service instance的dashboard:
在Communication Arrangement tile里,创建一个新的实例:
从Communication Scenario下拉列表里,选择之前介绍的SAP_COM_0276: SAP CP CF Destination Service integration:
选择好Communication Scenario后,维护Communication Arrangement的名称,比如OUTBOUND_XXX.
在Communication Arrangement的additional properties里,将service instance name的值从默认值OUTBOUND_XXX改成更便于记忆的值,比如Outbound-For-Tutorials_XXX.
最后一步,在ABAP client System上创建ABAP 实现类:
CLASS ZCL_OUTPUT_HTTP_XXX DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES if_oo_adt_classrun.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS ZCL_OUTPUT_HTTP_XXX IMPLEMENTATION.
METHOD if_oo_adt_classrun~main.
TRY.
DATA(lo_destination) = cl_http_destination_provider=>create_by_cloud_destination(
i_name = 'A4C_ACCESS_XXX_HTTP'
i_service_instance_name = 'Outbound-For-Tutorial-XXX'
i_authn_mode = if_a4c_cp_service=>service_specific ).
DATA(lo_http_client) = cl_web_http_client_manager=>create_by_http_destination( i_destination = lo_destination ).
DATA(lo_request) = lo_http_client->get_http_request( ).
DATA(lo_response) = lo_http_client->execute( i_method = if_web_http_client=>get ).
out->write( lo_response->get_text( ) ).
CATCH cx_root INTO DATA(lx_exception).
out->write( lx_exception->get_text( ) ).
ENDTRY.
ENDMETHOD.
ENDCLASS.
第18行的参数i_name的值,就是之前在SAP Cloud Platform里创建的Destination名称。
i_service_instance_name, 就是创建的Communication Arrangement additional properties里创建的Service instance name的值。
执行ABAP类,测试结果如下:
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
相关推荐
基础到报表。从简到难的sap-abap典型实例N多个。
sap abap开发实例 方便入门
从实例学sap abap编程,从实例学sap abap编程,从实例学sap abap编程
SAP 方丈是 SAP 系统中的一个重要组件,它提供了一个强大且灵活的开发环境,允许开发者使用 ABAP 语言来编写代码,以满足特定的业务需求。在这个实例中,我们将展示如何使用 SAP 方丈来增强 SAP 应用程序的功能。 ...
SAP R/3系统中ABAP/4编程概述主要讲述了ABAP的基本语法。
《SAP ABAP开发技术详解(实例篇)(第二版) [1] 》除了对对SAP ABAP开发所需的常用技术(SAP报表、批量导入、对话程序、函数)做了详尽的介绍,包括基本报表、交互式报表、复杂报表、ALV(SAP List Viewer)报表、...
实战SAP程序开发——从实例学SAP ABAP编程前12章
sap+ABAP开发实例详解
这是实战SAP程序开发_从实例学SAP_ABAP编程的清晰版本
中文版 实战SAP程序开发-从实例学ABAP编程 共5个分包,解压之后是一个PDF档~ 要学习SAP开发必看的书籍~ 从头到尾全面讲解SAP程序开发语言ABAP的所有语法和例子~
实战sap程序开发——从实例学sap abap编程
绝版图书完整版“实战SAP程序开发 从实例学SAP ABAP编程”
中文版 实战SAP程序开发-从实例学ABAP编程 共5个分包,解压之后是一个PDF档~ 要学习SAP开发必看的书籍~ 从头到尾全面讲解SAP程序开发语言ABAP的所有语法和例子~
SAP ABAP 实例13-19章,有点模糊,但还能分辨
实战SAP程序开发——从实例学SAP.ABAP编程
关于abap的实例讲解,ABAP例程大全稍后发上,对于abap初学者还是不错的
SAP ABAP 实例13-19章-2,由于太大,只能分两个文件传
SAP ABAP与JAVA之间通过RFC传递数据实例
SAP+ ABAP开发实用教程:顾问培训资料,含实例代码和教程,详细描述ABAP开发过程:数据表读法、程序规范、代码实例、调试方法以及ABAP开发环境和总体介绍、 ABAP语法示例 、ALV控件的使用、 实战Form设计 ,分基础、...
简单来讲,SAPLINK就是用来导入和导出ABAP程序,等开发对象的一个开源分享项目的产物. 1.上载前置工具程序 导入SAPLINK需要使用ZSAPLINK_INSTALLER程序进行导入. TCode:SE38,新建名为ZSAPLINK_INSTALLER的程序. 2....