1. 程式人生 > >SAP長文字讀取

SAP長文字讀取

長文字涉及到兩個表格:

 STXH(擡頭),STXL(行專案)中。

1 讀取方法  READ_TEXT ,結果放在一個表中,迴圈讀出

2 難點: 引數查詢

方法: 先維護一個,然後在底表 STXH中 按時間找到那一條,然後就可以知道引數了。

 3 容易遺漏的語言問題

3.1  先從 stxh 讀取語言

3.2  CONVERSION_EXIT_ISOLA_INPUT 轉換為 READ_TEXT 需要的 language引數

 

 

 

讀取函式

 CALL FUNCTION 'READ_TEXT'
          EXPORTING
            client                  = sy-mandt
            id                      = lv_id
            language                = lv_langu
            name                    = lv_name
            object                  = 'VBBP'
*           ARCHIVE_HANDLE          = 0
*           LOCAL_CAT               = ' '
*   IMPORTING
*           HEADER                  =
*           OLD_LINE_COUNTER        =
          TABLES
            lines                   = lt_tline
          EXCEPTIONS
            id                      = 1
            language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
            OTHERS                  = 8.
        IF sy-subrc <> 0.
* Implement suitable error handling here
        ENDIF.

        LOOP AT lt_tline .
          IF gs_out_item-bz1 IS INITIAL.
            gs_out_item-bz1 = lt_tline-tdline.
          ELSE.
            CONCATENATE gs_out_item-bz1 lt_tline-tdline INTO gs_out_item-bz1.
          ENDIF.
        ENDLOOP.

 

查詢函式引數

容易遺漏的語言問題

  CLEAR:  lv_tdspras.
      SELECT SINGLE  tdspras INTO lv_tdspras
        FROM stxh
        WHERE tdname = gs_out-vbeln  AND   tdobject = 'VBBK' .

      CALL FUNCTION 'CONVERSION_EXIT_ISOLA_INPUT'
        EXPORTING
          input            = lv_tdspras
        IMPORTING
          output           = lv_langu
        EXCEPTIONS
          unknown_language = 1
          OTHERS           = 2.
      IF sy-subrc <> 0.
      ENDIF.