前言
本文主要介绍ABAP调用远程RFC,SM59配置及相关代码演示!
一、SM59配置
需要SM59配置被调用方信息!
1.事务码:SM59
2.ABAP连接:
3.服务器地址及账号密码:
4.连接测试:成功
二、远程RFC进行调用测试
1.检查是否联通
函数:TREX_RFC_CONNECT_CHECK_LOCAL
代码如下(示例):
*&---------------------------------------------------------------------*
*& Report YTEST_001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA:
lv_dest TYPE rfcdes-rfcdest VALUE 'ZTEST_001',
ls_res TYPE trexs_connection_check_result.
"远程是否连接
CALL FUNCTION 'TREX_RFC_CONNECT_CHECK_LOCAL'
EXPORTING
trex_destination = lv_dest
IMPORTING
local_result = ls_res
EXCEPTIONS
system_failure = 1
communication_failure = 2
authority_not_available = 3
send_error = 4
OTHERS = 5.
IF ls_res-ping_time = ' 0'."无响应
MESSAGE 'SAP 联通 失败' TYPE 'I'.
ENDIF.
2.调用远程RFC
代码如下(示例):
*&---------------------------------------------------------------------*
*& Report YTEST_001
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ytest_001.
DATA:
lo_root TYPE REF TO cx_root,
lv_subrc TYPE sy-subrc,
lv_error_text TYPE c LENGTH 100,
lv_rfc TYPE funcname VALUE 'YM_RFCTEST'," 被调用方RFC名称
lv_rfcdest TYPE char30 VALUE 'ZTEST_001', " SM59 连接名称
lv_output TYPE c.
* 发送数据
TRY.
CALL FUNCTION lv_rfc
DESTINATION lv_rfcdest
EXPORTING
iv_input = 'RFC'
IMPORTING
ev_output = lv_output
EXCEPTIONS
system_failure = 1 MESSAGE lv_error_text
communication_failure = 2 MESSAGE lv_error_text
OTHERS = 99.
CATCH cx_root INTO lo_root.
DATA(lv_message) = lo_root->get_text( ).
MESSAGE lv_message TYPE 'S' DISPLAY LIKE 'E'.
RETURN.
ENDTRY.
WRITE lv_output.
调用成功!
总结
希望能帮助大家!