怎么实现两个ABAP系统之间互连

66次阅读
没有评论

共计 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:

怎么实现两个 ABAP 系统之间互连

在 Communication Arrangement tile 里,创建一个新的实例:

怎么实现两个 ABAP 系统之间互连

从 Communication Scenario 下拉列表里,选择之前介绍的 SAP_COM_0276: SAP CP CF Destination Service integration:

怎么实现两个 ABAP 系统之间互连怎么实现两个 ABAP 系统之间互连

选择好 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 名称。

怎么实现两个 ABAP 系统之间互连

i_service_instance_name, 就是创建的 Communication Arrangement additional properties 里创建的 Service instance name 的值。

怎么实现两个 ABAP 系统之间互连

执行 ABAP 类,测试结果如下:

怎么实现两个 ABAP 系统之间互连

到此,关于“怎么实现两个 ABAP 系统之间互连”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计2758字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)