SAPの受注伝票、出荷伝票などにはテキスト項目があります。テキストとは通常の項目とは違い、テキスト形式で改行して複数行書くようなことも可能です。これら伝票のテキスト項目にはメモのように書き込んでおいて、帳票などに印字するような使い方が可能になります。SAP標準のテキストもありますが、カスタマイズしてテキストIDを追加することもできます。
新しいテキストIDを登録するには?
①Tr-Cd:VOTXNでテキストを登録したいラジオボタンをチェックして
Text Typesをクリックします。テキストIDとテキスト名称を入力し、新規登録します
②テキストIDを登録したあとは、Text Procedureで対象のオブジェクトに対して割当を
行います。Text Procedureとは、受注ヘッダ、受注明細、出荷ヘッダなど伝票種別ごとに定義されているので、どのText Procedureが適切かを確認し、テキストIDの割当を行います。
上記により、テキストIDがマスタやトランザクションデータで確認できるようになります。
アドオンでテキスト情報を取得、更新するには?
テキストの取得はSTXH、STXLテーブルにヘッダと明細の構成でありますが、一般的には、アドオン機能で伝票からテキストを取得するには、Read_textという汎用モジュールを使い、伝票にテキストを保存するにはSave_textという汎用モジュールを使います。
例えば、受注伝票テキスト項目から取得するには、汎用モジュールのパラメータに下記項目を設定して取得することが可能です。
LANGUAGE:J
OBJECT :VBBK
ID :0001
NAME :1000000001
販売伝票
VBBK:ヘッダ
VBBP:明細
購買伝票
■受注伝票からテキストを取得するサンプルプログラム
REPORT z_get_text_from_sales_order.
DATA: lv_vbeln TYPE vbeln, " 受注番号
lt_texts TYPE TABLE OF tline, " ヘッダテキスト
lv_text TYPE tline. " 取得したテキスト
PARAMETERS: p_vbeln TYPE vbeln. " 受注番号入力パラメータ
START-OF-SELECTION.
lv_vbeln = p_vbeln.
" ヘッダテキストを取得
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = '0001'
language = sy-langu
name = lv_vbeln
object = 'VBBK'
TABLES
lines = lt_texts
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.
" テキストが存在する場合、最初の行を取得
READ TABLE lt_texts INDEX 1 INTO lv_text.
IF sy-subrc = 0.
WRITE: / 'Text:', lv_text.
ELSE.
WRITE: / 'Text not found for Sales Order', lv_vbeln.
ENDIF.
ELSE.
WRITE: / 'Error reading text for Sales Order', lv_vbeln.
ENDIF.