获取方法调用的值(如sy-subrc) - WebDynpro

Eva*_*ias 3 sap abap webdynpro

我正在尝试进行错误检查.当用户输入不存在的航空公司代码时,该页面应显示错误消息.问题是:我正在使用BAPI_FLIGHT_GETLIST BAPI,当我执行EXECUTE_BAPI_FLIGHT_GETLIST方法并尝试获取sy-subrc值时,它总是得到0.我的代码就像这样:

...
 data lo_componentcontroller type ref to ig_componentcontroller .
    lo_componentcontroller =   wd_this->get_componentcontroller_ctr( ).

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

  if sy-subrc <> 0.
          wd_this->error_check(
          ).
  endif.
Run Code Online (Sandbox Code Playgroud)

即使载体代码不存在,也不会显示错误消息.方法error_check()它也正常工作,因为如果我在调用之前使用if语句,则会显示消息.希望我在解释自己.谢谢.

Bry*_*ain 5

那个BAPI没有设置sy-subrc.它使用像所有BAPI一样的返回表.

这是BAPI签名.

    FUNCTION BAPI_FLIGHT_GETLIST.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"  IMPORTING
*"     VALUE(AIRLINE) LIKE  BAPISFLKEY-AIRLINEID OPTIONAL
*"     VALUE(DESTINATION_FROM) LIKE  BAPISFLDST STRUCTURE  BAPISFLDST
*"       OPTIONAL
*"     VALUE(DESTINATION_TO) LIKE  BAPISFLDST STRUCTURE  BAPISFLDST
*"       OPTIONAL
*"     VALUE(MAX_ROWS) LIKE  BAPISFLAUX-BAPIMAXROW OPTIONAL
*"  TABLES
*"      DATE_RANGE STRUCTURE  BAPISFLDRA OPTIONAL
*"      EXTENSION_IN STRUCTURE  BAPIPAREX OPTIONAL
*"      FLIGHT_LIST STRUCTURE  BAPISFLDAT OPTIONAL
*"      EXTENSION_OUT STRUCTURE  BAPIPAREX OPTIONAL
*"      RETURN STRUCTURE  BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

该表RETURN将包含您的成功或错误消息,而不是sy-subrc.