Error handling with OPEN DATASET

March 2, 2019 | 541 views

Error handling with OPEN DATASET

Trong bài viết Đọc file CSV trên server sang Table Internal mình có sử dụng OPEN DATASET, tuy nhiên không có sửa dụng Try Catch, chỉ biết đọc SY-SUBRC khi có lỗi đọc file xảy ra, làm cho trong khi sử dụng ko thể biết là lỗi gì.

Vậy để đọc thông báo lỗi cụ thể khi gặp lỗi đọc file với OPEN DATASET, thì cần phải thêm Try Catch để hứng được lỗi hệ thống trả ra. Cách thực hiện như sau

Đầu tiên thêm 2 biến lw_message và lo_exception để hứng nội dung lỗi

    DATA: LW_MESSAGE   TYPE STRING,
          LO_EXCEPTION TYPE REF TO CX_ROOT.

Sau đó phần OPEN DATASET cần thực hiện

     TRY .
        OPEN DATASET LW_FULL_PATH FOR INPUT IN TEXT MODE ENCODING NON-UNICODE
                            WITH SMART LINEFEED MESSAGE LW_MESSAGE.
        IF SY-SUBRC IS NOT INITIAL.
          MESSAGE LW_MESSAGE
            TYPE 'E' RAISING READ_FILE.
        ENDIF.
      CATCH CX_ROOT INTO LO_EXCEPTION.
*     Gets error message
        CALL METHOD LO_EXCEPTION->IF_MESSAGE~GET_TEXT
          RECEIVING
            RESULT = LW_MESSAGE.

        MESSAGE LW_MESSAGE
           TYPE 'E' RAISING READ_FILE.
    ENDTRY.

Khi đó nội dung message lỗi sẽ được đưa vào biến Exception READ_FILE.

Link code