У меня проблема с ABAP. У меня есть следующий код из книги:
METHOD make_reservation.
DATA: license_plate TYPE zcars-license_plate,
reservation_wa LIKE LINE OF reservation_tab,
reservation_num TYPE i,
mess TYPE string.
reservation_num = lines( reservation_tab ).
SELECT license_plate FROM zcars INTO (license_plate) WHERE category = category.
LOOP AT reservation_tab
TRANSPORTING NO FIELDS
WHERE license_plate = license_plate
AND NOT ( date_from > date_to OR date_to < date_from ).
ENDLOOP.
IF sy-subrc <> 0.
reservation_wa-reservation_id = reservation_num + 1.
reservation_wa-customer_id = customer.
reservation_wa-license_plate = license_plate.
reservation_wa-date_from = date_from.
reservation_wa-date_to = date_to.
INSERT reservation_wa INTO TABLE reservation_tab.
IF sy-subrc <> 0.
CONCATENATE license_plate ' reserved!' INTO mess.
MESSAGE mess TYPE 'I'.
ELSE.
MESSAGE 'internal error!' TYPE 'I' DISPLAY LIKE 'E'.
LEAVE PROGRAM.
ENDIF.
RETURN.
ENDIF.
ENDSELECT.
RAISE EXCEPTION TYPE zcx_no_car_available.
ENDMETHOD.
проблема в том, что строка INSERT reservation_wa INTO TABLE reservation_tab.
работает неправильно, и я всегда получаю sy-subrc <> 0
. Это приводит к сообщению "внутренняя ошибка!"
а теперь мой вопрос: я устал его отлаживать, но не могу найти причину, по которой этот оператор не вставляет данные. Как я могу узнать подробное сообщение об ошибке, что пошло не так с этим оператором SQL?
METHOD
иLEAVE PROGRAM
в одном примере? Пожалуйста, выбросьте эту книгу как можно скорее. ;-) - person vwegert   schedule 16.01.2014METHOD
исходит из локального класса в отчете, поэтому в примере естьLEAVE PROGRAM
. - person Jagger   schedule 17.01.2014