[ABAP] SAPscript-Texte: Clusterdaten ohne READ_TEXT direkt aus Tabelle STXL lesen

TYPES: BEGIN OF ty_s_stxl_raw,
         clustr TYPE stxl-clustr,
         clustd TYPE stxl-clustd,
       END OF ty_s_stxl_raw.

TYPES: ty_t_stxl_raw TYPE STANDARD TABLE OF ty_s_stxl_raw.

PARAMETERS: p_tdobj TYPE ttxob-tdobject DEFAULT 'TEXT'.
PARAMETERS: p_tdname TYPE stxh-tdname MATCHCODE OBJECT icl_stxh DEFAULT 'ADDRESS'.
PARAMETERS: p_tdid TYPE ttxid-tdid DEFAULT 'ST'.

START-OF-SELECTION.

* STXD SAPscript Text-Datei Header
  SELECT FROM stxh
    FIELDS
      tdname,
      tdobject,
      tdid
    WHERE tdobject = @p_tdobj
      AND tdname   = @p_tdname
      AND tdid     = @p_tdid
      AND tdspras  = @sy-langu
    INTO TABLE @DATA(it_stxh).

  IF sy-subrc = 0.

* STXD SAPscript Text-Datei Lines
    SELECT FROM stxl
      FIELDS
        tdname,
        clustr,
        clustd
      FOR ALL ENTRIES IN @it_stxh
      WHERE relid    = 'TX'
        AND tdobject = @it_stxh-tdobject
        AND tdname   = @it_stxh-tdname
        AND tdid     = @it_stxh-tdid
        AND tdspras  = @sy-langu
      INTO TABLE @DATA(it_stxl)
      PACKAGE SIZE 3000. " Datenmenge bei SELECT begrenzen, um Laufzeitfehler zu vermeiden

      DATA: it_stxl_raw TYPE ty_t_stxl_raw.
      CLEAR: it_stxl_raw.

      LOOP AT it_stxl ASSIGNING FIELD-SYMBOL(<stxl>).

        APPEND VALUE ty_s_stxl_raw( clustr = <stxl>-clustr
                                    clustd = <stxl>-clustd ) TO it_stxl_raw.

        DATA(it_lines) = VALUE tline_t( ).

* Zeilen aus Datencluster lesen
        IMPORT tline = it_lines FROM INTERNAL TABLE it_stxl_raw.

        LOOP AT it_lines ASSIGNING FIELD-SYMBOL(<l>).
          WRITE: / <stxl>-tdname, <l>-tdformat, <l>-tdline.
        ENDLOOP.

      ENDLOOP.

    ENDSELECT.

  ENDIF.

Links

[SAPscript] UltraEdit: Syntaxhighlighting von SAPscript-Formularen

Einleitung

SAPscript-Formulare mittels SAP Transaktion SE71 zu editieren ist zugegebenermaßen nicht besonders komfortabel. Es gibt jedoch zwei Möglichkeiten den SAPscript-Code zu extrahieren und mittels Texteditor zu bearbeiten.

Möglichkeit 1: SE71 Formularinfo

In der Transaktion SE71 kann über Menü -> Hilfsmittel -> Formularinfo der Gesamtinhalt eines Anwendungsformulars angezeigt und als Textdatei heruntergeladen werden.

Möglichkeit 2: Download mit Report RSTXSCRP

Die SAP hat im System den Report RSTXSCRP zur Verfügung gestellt, mit dessen Hilfe beliebige Formulare als Textdatei (*.FOR) heruntergeladen und gespeichert werden können.

Texteditoren

Die so gewonnenen Textdateien können mit jedem beliebigen Texteditor angeschaut werden. Sehr gut geeignet zum editieren von beliebigem Code ist neben dem frei verfügbaren Notepad++ auch das kommerziell vertriebene UltraEdit.

Syntax-Highlighting

Für UltraEdit stelle ich hierzu frei verfügbare „Wordfiles“ als *.uew-Dateien zur Verfügung. Mit diesen ist es möglich, SAPscript-Textdateien per Syntax-Highlighting und Code-Folding (z.B. IF- und PROTECT-Statements) darzustellen. Die aus SAP extrahierten Textfiles können somit übersichtlich angezeigt werden.

Downloads

Links