Получение значения вызова метода (например, sy-subrc) ​​- 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.

даже если код оператора связи не существует, сообщение об ошибке не отображается. Метод error_check () также работает нормально, потому что, если я использую оператор if перед его вызовом, отображается сообщение. Надеюсь, я объясняюсь. Спасибо.


person Eva Dias    schedule 05.09.2012    source источник


Ответы (1)


Этот 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
*"----------------------------------------------------------------------

В таблице RETURN будут отображаться ваши сообщения об успехе или ошибках, а не sy-subrc.

person Bryan Cain    schedule 05.09.2012
comment
Ты прав, Брайан, все BAPI содержат параметр возврата. Кстати, это описано в книге SAP Certfied Development Professional - ABAP с SAP NetWeaver 7.0 и может быть вопросом сертификации. - person fabiopagoti; 11.09.2012