SAPscript-Headertabelle STXH

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Oftmals will man als Entwickler nur feststellen, ob ein SAPscript-Textbaustein vorhanden ist oder nicht. Hier reicht es die Tabelle STXH abzufragen.

Siehe: Tabellenbeziehungen SAPscript-Textbausteine.

Grundlagen

  • SAP speichert Standardtexte (Transaktion SO10) in den Tabellen STXH, STXL und STXB ab. Die Kopftabelle STXH ist bei einem SO10-Textbaustein immer gefüllt. Die Tabelle STXL speichert Textzeilen im ITF-Format. STXL ist eine nicht-transparente Tabelle, auf die mit IMPORT FROM DATABASE / EXPORT TO DATABASE zugegriffen wird. Die Textzeilen werden in komprimierter Form abgelegt.
  • Ist im Feld TDTEXTTYPE des Textheaders ein Textformat angegeben, so handelt es sich um einen Textbaustein in einem Fremdformat. Die Zeilen solcher Texte werden in der Tabelle STXB abgelegt. Diese Tabelle ist so definiert, daß auch nicht darstellbare Zeichen (HEX-Codes < SPACE) hier abgelegt werden können. STXB ist ebenfalls eine nicht-transparente Tabelle, auf die mit IMPORT FROM DATABASE / EXPORT TO DATABASE zugegriffen wird. Die Textzeilen werden komprimiert gespeichert.
  • Um das Vorhandensein eines Textbausteins zu prüfen, ist es performanter die Tabelle STXH zu lesen als den Text mit dem Funktionsbaustein READ_TEXT zu lesen. Interessant ist hier auch das Feld STXH-TDTXTLINES, weil in diesem Feld die Anzahl der Textzeilen des Textbausteins abgelegt sind. So kann man feststellen, dass nicht nur der Textbaustein vorhanden ist, sondern dass auch Text darin gespeichert ist.

Tabelle STXH

STXH1.jpg

Coding

Data: lv_text_exist type xfeld,
      lv_tdname     type stxh-tdname.

"füllen lv_tdname

Select single
  TDTXTLINES            "Anzahl Textzeilen in Textbaustein
  into lv_TDTXTLINES    
  from stxh             "Kopftabelle SAPscript-Textbausteine
  where TDOBJECT = 'TEXT'
    and TDNAME   = lv_tdname
    and TDID     = 'ST'
    and TDSPRAS  = 'D'.
  
if sy-subrc = 0 and
   lv_TDTXTLINES > 0.   "Textbaustein hat Textzeilen
   lv_text_exist = 'X'. "Textbaustein existiert und enthält Zeichen
endif.

Funktionsbaustein READ_TEXT

Web-Links