SAPscript-Textbaustein lesen mit Funktionsbaustein READ TEXT und speichern mit SAVE TEXT
Aus SAP-Wiki
(Weitergeleitet von SAPscript-Textbaustein lesen mit Funktionsbaustein READ TEXT und Speichern mit SAVE TEXT)
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)





