SAPscript-Textbaustein lesen mit Funktionsbaustein READ TEXT und speichern mit SAVE TEXT
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Kategorie: Übersetzung.
Siehe Kategorie: Textbaustein.
Siehe Kategorie: SAPscript.
Mit dem Funktionsbaustein READ_TEXT kann man den Inhalt von Standardtexten bzw. SAPscript-Textbausteinen lesen, die in der Transaktion SO10 oder im Beleg, z. B. in der Lieferung, angelegt worden sind.
Der Funktionsbaustein READ_TEXT kann auch das Coding und Metadaten von einem SAPscript-Formular lesen.
SAP verwendet ebenfalls diesen Baustein, um SAPscript-Textbausteine zu lesen oder wenn Textbaustein über Dialogmasken in Smart Forms oder Adobe Interactive Forms angesprochen werden.
Smart Forms Textbausteine werden mit dem Funktionsbaustein SSFRT_READ_TEXTMODULE gelesen.
Muster Funktionsbaustein 'SAVE_TEXT'
CALL FUNCTION 'SAVE_TEXT' EXPORTING " CLIENT = SY-MANDT HEADER = " INSERT = ' ' " SAVEMODE_DIRECT = ' ' " OWNER_SPECIFIED = ' ' " LOCAL_CAT = ' ' " IMPORTING " FUNCTION = " NEWHEADER = TABLES LINES = " EXCEPTIONS " ID = 1 " LANGUAGE = 2 " NAME = 3 " OBJECT = 4 " OTHERS = 5 . IF SY-SUBRC <> 0. * Implement suitable error handling here ENDIF.
Muster Funktionsbaustein 'READ_TEXT'
CALL FUNCTION 'READ_TEXT' EXPORTING * CLIENT = SY-MANDT id = id language = language name = name object = object * ARCHIVE_HANDLE = 0 * LOCAL_CAT = ' ' * IMPORTING * HEADER = HEADER * OLD_LINE_COUNTER = OLD_LINE_COUNTER TABLES lines = lines * 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.
Coding CALL FUNCTION 'READ_TEXT'
DATA: ls_vbdkl TYPE vbdkl, lv_tdname TYPE tdobname, lt_tline TYPE tline_tab, ls_tline TYPE tline. ... lv_tdname = ls_vbdkl-VBELN. CALL FUNCTION 'READ_TEXT' EXPORTING id = 'Z015' language = p_iv_spras name = lv_tdname object = 'VBBK' "Lieferungkopf 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. "In itab lt_tline ist der Inhalt des Textbausteins ENDIF.
Textbaustein debuggen mit 'READ_TEXT'
- Setzt man einen Breakpoint an das Ende des Funktionsbausteins READ_TEXT, so lässt sich schön verfolgen welche Standardtexte in einem Formular aufgerufen werden und welchen Key-Schlüssel diese Standardtexte haben
- mit einem Watchpoint kann man einen bestimmten Textbaustein auch schnell finden und debuggen.
Mit Funktionsbaustein 'READ_TEXT' in String schreiben und Psydo-Tabelle in Formular ausgaben
- In speziellen Fällen möchte man im Formular einen Textbaustein nicht als Textbaustein ansprechen.
- In solchen Fällen kann man den Textbaustein im Druckprogramm oder im Coding des Formulars als mit "READ_TEXT" einlesen und dann in ein String-Objekt schreiben
- Mit dem "/n" bewirkt man einen Zeilenumbruch in der Ausgabe vom String
DAta: lv_string type string. CALL FUNCTION 'READ_TEXT' EXPORTING id = 'Z151' language = sy-langu name = lv_tdname object = 'TEXT' TABLES lines = lt_lines 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. * Langtext umformatieren LOOP AT lt_lines. IF sy-tabix = 1. lv_string = lt_lines-tdline. ELSE. IF lt_lines-tdformat = '*'. lv_string = |{ lv_string }\n{ lt_lines-tdline }|. ELSE. lv_string = |{ lv_string } { lt_lines-tdline }|. ENDIF. ENDIF. ENDLOOP. ELSE. lv_string = |*** Kein Standardtext "{ l_tdname }" definiert ***|. ENDIF.
Funktionsbaustein 'SAVE_TEXT'
- Mit dem Funktionsbaustein SAVE_TEXT lässt sich ein Standard-Textbaustein sowohl ändern als auch neu erstellen.
Data: ls_header type THEAD. data: lt_lines type standard table of tline, ls_lines type tline. ls_header-tdobject = 'TEXT'. ls_header-tdname = 'ZTESTTEXTBAUSTEIN'. ls_header-tdid = 'ST'. ls_header-tdspras = 'D'. ls_header-tdstyle = 'Z_STIL'. ls_header-tdtitle = 'Titel des Bausteins'. ls_lines-tdformat = '*'. ls_lines-tdline = space. append ls_lines to lt_lines. CALL FUNCTION 'SAVE_TEXT' EXPORTING * CLIENT = SY-MANDT header = ls_header * INSERT = ' ' * SAVEMODE_DIRECT = ' ' * OWNER_SPECIFIED = ' ' * LOCAL_CAT = ' ' * IMPORTING * FUNCTION = * NEWHEADER = tables lines = lt_lines EXCEPTIONS ID = 1 LANGUAGE = 2 NAME = 3 OBJECT = 4 OTHERS = 5. IF sy-subrc <> 0. * Implement suitable error handling here ENDIF.
Web-Links
Literatur
- Function Modules in ABAP: A Quick Reference Guide, von Tanmaya Gupta (EN), S. 359ff., 365f.
- Common SAP R/3 Functions Manual, von William Lawlor, S. 224 (EN)