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.

READ TEXT1.jpg


READ TEXT2.jpg


READ TEXT3.jpg


READ TEXT4.jpg


READ TEXT5.jpg


READ TEXT6.jpg

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