共计 2758 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要介绍“怎么实现两个 ABAP 系统之间互连”,在日常操作中,相信很多人在怎么实现两个 ABAP 系统之间互连问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现两个 ABAP 系统之间互连”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
场景: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 类,测试结果如下:
到此,关于“怎么实现两个 ABAP 系统之间互连”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!