Für das Ersetzen von Textsymbolen, globlen Feldern oder Systemsymbolen gibt es zwei SAP Funktionsbausteine.
1. REPLACE_TEXTSYMBOL
2. TEXT_SYMBOL_REPLACE
Bei Nutzung des Bausteins REPLACE_TEXTSYMBOL ist der Zeitpunkt der Verwendung sehr wichtig. Denn innerhalb diesen Bausteins wird auf die internen Tabellen itcvl, itcvd, itcvg zurückgegriffen.
Solange man ihn innerhalb einer Formularbearbeitung aufruft funktioniert er einwandfrei. Fehlerhaft wird die Nutzung nach dem Abschluss einer Formularbearbeitung END_FORM, denn durch den Funktionsbaustein SET_TEXTSYMBOL_PROGRAM werden die internen Tabellen initalisiert.
Daher ist die Nutzung des Funktionsbausteins TEXT_SYMBOL_REPLACE zu empfehlen. Hier spielt der Zeitpunkt keine Rolle.
Beispielcoding:
DATA: ls_header TYPE thead. DATA: ls_text type STXH_KEY. DATA: lt_tline type TABLE OF tline. DATA: gv_text type char255. ls_text-tdid = 'ST'. ls_text-tdspras = 'D'. ls_text-tdname = 'ZTEST_REPLACE'. ls_text-tdobject = 'TEXT'. gv_text = 'TEST!!!'. * SO10 Text lesen REFRESH lt_tline. CLEAR ls_header. CALL FUNCTION 'READ_TEXT' EXPORTING id = ls_text-tdid language = ls_text-tdspras name = ls_text-tdname object = ls_text-tdobject IMPORTING header = ls_header 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. * Symbole und globale Felder ersetzen CALL FUNCTION 'TEXT_SYMBOL_REPLACE' EXPORTING ENDLINE = 99999 header = ls_header * INIT = ' ' * OPTION_DIALOG = ' ' PROGRAM = sy-repid REPLACE_PROGRAM = 'X' REPLACE_STANDARD = 'X' REPLACE_SYSTEM = 'X' REPLACE_TEXT = 'X' STARTLINE = 1 * IMPORTING * CHANGED = * NEWHEADER = tables lines = lt_tline.