READ_TEXTテキスト取得

概要

ロングテキストを取得する汎用モジュールです。伝票やマスタ等に登録したテキストは普通のSQLでは取得できないため、当汎用モジュールでデータを取得します。

パラメータ

読込テキストのオブジェクト(OBJECT)、テキストID(ID)、テキスト名(NAME)のパラメータがキー項目です。取得したテキストデータは読込テキスト行(LINES)に格納されます。

パラメータ一覧
種別パラメータ説明
インポート CLIENT クライアント
ID 読込テキストのテキストID
LANGUAGE 読込テキストの言語
NAME 読込テキスト名
OBJECT 読込テキストのオブジェクト
ARCHIVE_HANDLE アーカイブハンドル
LOCAL_CAT ローカルテキストカタログ
エクスポート HEADER 読込テキストのヘッダ
OLD_LINE_COUNTER 行カウンタ
テーブル LINES 読込テキスト行
例外 ID 無効なテキストID
LANGUAGE 無効な言語
NAME 無効なテキスト名
NOT_FOUND テキストがありません
OBJECT 無効なテキストオブジェクト
REFERENCE_CHECK 参照チェーン中断
WRONG_ACCESS_TO_ARCHIVE アーカイブハンドルへのアクセスが無効

インポートパラメータを設定する

読込テキストのオブジェクト(OBJECT)、テキストID(ID)、テキスト名(NAME)の設定は必須です。テキスト名にはテキストオブジェクトごとに決まっている伝票番号などの値を設定します。取得するテキストの言語もパラメータに指定する必要があります。
設定例:インポートパラメータ
項目項目名称設定値
LANGUAGE 読込テキストの言語 J
OBJECT テキストのオブジェクト EKKO
ID テキストID F01
NAME 読込テキスト名 4500000001

サンプルコード

購買伝票のテキストの情報を取得する例です。取得したテキスト情報はLINESパラメータに格納されます。取得したテキストはSAP Script形式で格納されるため特殊文字はエスケープされた状態となります。
DATA: LV_OBJECT           TYPE THEAD-TDOBJECT,
      LV_ID               TYPE THEAD-TDID,
      LV_NAME             TYPE THEAD-TDNAME,
      LS_HEADER           TYPE THEAD,
      LV_OLD_LINE_COUNTER TYPE THEAD-TDTXTLINES,
      LT_LINES            TYPE TABLE OF TLINE.

* パラメータに値を設定する
LV_OBJECT    = 'EKKO'.       " テキストオブジェクト
LV_ID        = 'F01'.        " テキストID
LV_NAME      = '4500000001'. " テキスト名

CALL FUNCTION 'READ_TEXT'
  EXPORTING
    ID                      = LV_ID
    LANGUAGE                = SY-LANGU
    NAME                    = LV_NAME
    OBJECT                  = LV_OBJECT
  IMPORTING
    HEADER                  = LS_HEADER
    OLD_LINE_COUNTER        = LV_OLD_LINE_COUNTER
  TABLES
    LINES                   = LT_LINES
  EXCEPTIONS
    ID                      = 1
    LANGUAGE                = 2
    NAME                    = 3
    NOT_FOUND               = 4
    OBJECT                  = 5
    REFERENCE_CHECK         = 6
    WRONG_ACCESS_TO_ARCHIVE = 6
    OTHERS                  = 7
  .

* エラーの場合
IF SY-SUBRC <> 0.
*  エラー処理
ELSE.
*  正常処理
ENDIF.

  

* 内部コメントの取得
    CALL FUNCTION 'READ_TEXT'
      EXPORTING
        CLIENT                  = SY-MANDT         " 現在のクライアント
        ID                      = C_ID_IVER        " 【固定値】'IVER'
        LANGUAGE                = SY-LANGU         " ログイン言語
        NAME                    = L_WK_NAME        " 品目コード
        OBJECT                  = C_OB_MATERIAL    " 【固定値】'MATERIAL'
      TABLES
        LINES                   = L_IT_LINES_CMMNT
      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.

* 文字化け防止
      CALL FUNCTION 'CONVERT_ITF_TO_STREAM_TEXT'
        EXPORTING
          LANGUAGE    = SY-LANGU
        TABLES
          ITF_TEXT    = L_IT_LINES_CMMNT
          TEXT_STREAM = L_IT_LINES_CMMNT_EXT.

      READ TABLE L_IT_LINES_CMMNT_EXT INDEX 1
      INTO L_WA_LINES_CMMNT_EXT.

      L_WK_CMMNT = L_WA_LINES_CMMNT_EXT-TDLINE.

    ENDIF.

  

posted @ 2019-12-06 10:14  Park_SAP  阅读(3307)  评论(0)    收藏  举报