COMMUNICATION_FAILURE 在 Webdynpro BAPI 调用期间?

COMMUNICATION_FAILURE during a Webdynpro BAPI call?

我创建了一个调用 BAPI 的简单 WebDynpro 应用程序。但是,由于未设置 RFC,我收到错误消息。

如何设置 RFC 调用?

错误: URL 调用 http://crmehp.sat.com:8024/sap/bc/webdynpro/sap/zwd_bapi_call 由于错误而终止。

The following error text was processed in system EH5 : RFC Exception COMMUNICATION_FAILURE with Message RFC destination BAPI Call does not exist. Occurred 
◾ The error occurred on the application server CRMEHP2_EH5_24 and in the work process 0 . 
◾ The termination type was: RABAX_STATE
◾ The ABAP call stack was: 
Method: EXECUTE_BAPI_FLIGHT_GETLIST of program /1BCWDY/0AA4D2ZOSMWRNSH8KCQZ==CP
Method: IF_COMPONENTCONTROLLER~EXECUTE_BAPI_FLIGHT_GETLIST of program /1BCWDY/0AA4D2ZOSMWRNSH8KCQZ==CP
Method: WDDOINIT of program /1BCWDY/0AA4D2ZOSMWRNSH8KCQZ==CP
Method: IF_WDR_VIEW_DELEGATE~WD_DO_INIT of program /1BCWDY/0AA4D2ZOSMWRNSH8KCQZ==CP
Method: DO_INIT of program CL_WDR_DELEGATING_VIEW========CP
Method: INIT_CONTROLLER of program CL_WDR_CONTROLLER=============CP
Method: INIT_CONTROLLER of program CL_WDR_VIEW===================CP
Method: INIT of program CL_WDR_CONTROLLER=============CP
Method: GET_VIEW of program CL_WDR_VIEW_MANAGER===========CP
Method: BIND_ROOT of program CL_WDR_VIEW_MANAGER===========CP

在 webdynpro 的 WDDOINIT 方法中调用程序 bapi_flight_getlist:

method WDDOINIT .
  DATA lo_componentcontroller TYPE REF TO ig_componentcontroller .
  lo_componentcontroller =   wd_this->get_componentcontroller_ctr( ).

    lo_componentcontroller->execute_bapi_flight_getlist(
     airline =    'AA'                       " bapisflkey-airlineid
*     destination_from =                  " bapisfldst
*     destination_to =                    " bapisfldst
*     max_rows =                          " bapisflaux-bapimaxrow
    ).

endmethod.

execute_bapi_flight_getlist 定义:

  CALL FUNCTION 'BAPI_FLIGHT_GETLIST'
    DESTINATION  'BAPI Call'
    EXPORTING
       airline =                         airline
       destination_from =                destination_from
       destination_to =                  destination_to
       max_rows =                        max_rows
    TABLES
       date_range =                      lt_c_date_range
       extension_in =                    lt_c_extension_in
       flight_list =                     lt_c_flight_list
       extension_out =                   lt_c_extension_out
       return =                          lt_c_return
    EXCEPTIONS
      system_failure =                    1   MESSAGE    lv_rfc_error
      communication_failure =             2   MESSAGE    lv_rfc_error.

我检查了 sm59,但 BAPI 调用 RFC 不存在。但是,还有其他可用的 RFC 连接。

假设您不想调用远程系统:

改变

DESTINATION  'BAPI Call'

DESTINATION  'NONE'

如果它是一个远程系统,在 SM59 中创建一个目标(但没有 space)并引用它。