我正在试着做一个错误检查。当用户输入一个不存在的航空公司代码时,页面应该显示一条错误消息。问题是:我使用的是subrc,当我执行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语句之前使用if语句,消息就会显示出来。希望我已经解释清楚了。谢谢。
发布于 2012-09-06 03:10:13
该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。
https://stackoverflow.com/questions/12285724
复制相似问题