Ansicht
Dokumentation

ABAPINSERT_REPORT - INSERT REPORT

ABAPINSERT_REPORT - INSERT REPORT

rdisp/max_wprun_time - Maximum work process run time   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

INSERT REPORT

Kurzreferenz



INSERT REPORT prog FROM itab
              $[MAXIMUM WIDTH INTO wid$]
              ${ $[KEEPING DIRECTORY ENTRY$]
              $| ${ $[PROGRAM TYPE pt$]
                  $[FIXED-POINT ARITHMETIC fp$]
                  $[VERSION vs$] $}
              $| $[DIRECTORY ENTRY dir$] $}.

Zusätze:

1. ... MAXIMUM WIDTH INTO wid

2. ... KEEPING DIRECTORY ENTRY

3. ... PROGRAM TYPE pt

4. ... FIXED-POINT ARITHMETIC fp

5. ... VERSION vs

6. ... DIRECTORY ENTRY dir

Wirkung

Diese Anweisung stellt den Inhalt von itab als Quelltext in das in prog angegebene ABAP-Programm im Repository. Falls bereits ein Programm mit dem angegebenen Namen existiert, wird sein Quelltext überschrieben. Andernfalls wird ein neues Programm mit dem in prog angegebenen Namen und dem Quelltext aus itab im Repository angelegt.

Die Zusätze, die der Bestimmung von Programmeigenschaften dienen, legen diese in der Systemtabelle TRDIR an.

Wenn keiner der Zusätze angegeben ist, werden beim Anlegen eines neuen Programms folgende Standardwerte gesetzt:

  • Das Anlegedatum und das Datum der letzten Änderung sowie die zugehörigen Uhrzeiten werden auf den aktuellen Wert gesetzt.
  • Der Programmautor und der letzte Änderer werden auf den aktuellen Benutzer gesetzt.
  • Der Programmstatus wird standardmäßig auf aktiv gesetzt. Bei seiner ersten Ausführung, wird das Programm kompiliert.
  • Die Anwendung wird auf den Wert des aktuellen Programms gesetzt.
  • Die Festpunktarithmetik ist eingeschaltet.

Wenn keiner der Zusätze angegeben ist, werden beim Überschreiben eines vorhandenen Programms dessen Eigenschaften beibehalten, mit folgenden Ausnahmen:

  • Datum und Uhrzeit der letzten Änderung werden auf den aktuellen Wert gesetzt.
  • Der letzte Änderer wird auf den aktuellen Benutzer gesetzt.
  • Die Versionsnummer wird um eins erhöht.
  • Wenn das aktuelle Programm ein Programm der ABAP-Sprachversion ist, wird das überschriebene Programm immer auf diese Sprachversion gesetzt.

  • In anderen ABAP-Sprachversionen kann die Anweisung INSERT REPORT derzeit nicht verwendet werden.

Für itab ist eine Standardtabelle ohne sekundäre Tabellenschlüssel erlaubt. Eine Quelltextzeile in itab muss zeichenartig sein und darf maximal 255 Zeichen enthalten, wobei schließende Leerzeichen bei Zeilentypen fester Länge nicht berücksichtigt werden. prog muss ein zeichenartiges flaches Datenobjekt sein, das maximal 30 Zeichen enthalten darf und für dessen Inhalt die Groß-/Kleinschreibung keine Rolle spielt.

Systemfelder

sy-subrc Bedeutung
0 Das in prog angegebene Programm wurde erfolgreich angelegt oder überschrieben.
4 Beim Anlegen oder Überschreiben von dem in prog angegebenen Programm trat ein Fehler auf.
Siehe ABAP Command Injections.

Hinweise

  • Die Anweisung INSERT REPORT darf nur mit höchster Vorsicht verwendet werden, da bereits bestehende Programme vollständig und ohne Warnung überschrieben werden. Ein ungewolltes Überschreiben kann dadurch verhindert werden, dass man überprüft, ob der angegebene Name bereits in der Spalte NAME der Systemtabelle TRDIR vorhanden ist.
  • Wenn mit INSERT REPORT ein neues Programm erzeugt wird, wird dieses keinem Paket zugeordnet, sodass es nicht an das Change and Transport System (CTS) angeschlossen ist. Das Programm muss entweder in der ABAP Workbench einem Paket zugeordnet werden, oder es ist nur für temporäre Aufgaben im aktuellen System geeignet.
  • Zur Verwendung der Anweisung INSERT REPORT für Programme, die beim Anlegen in der ABAP Workbench in einem Rahmenprogramm und mit Include-Programmen organisiert werden, ist eine genaue Kenntnis des Aufbaus der Programme und ihrer Namen unerlässlich.
  • Beim Anlegen eines Programms sollte der Programmname den Namenskonventionen der ABAP Workbench genügen, wenn es danach mit deren Werkzeugen bearbeitet werden soll.
  • INSERT REPORT sollte nur in Ausnahmefällen in Anwendungsprogrammen verwendet werden. ABAP bietet viele andere Mittel der dynamischen Programmierung, welche eine dynamische Quelltexterstellung in der Regel unnötig machen (siehe Aufzählung unter Dynamische Programmbearbeitung).

Zusatz 1

... MAXIMUM WIDTH INTO wid

Wirkung

Bei Verwendung des Zusatzes MAXIMUM WIDTH wird die Anzahl der Zeichen der längsten Quelltextzeile in itab der Variablen wid zugewiesen, für die der Datentyp i erwartet wird.

Zusatz 2

... KEEPING DIRECTORY ENTRY

Wirkung

Dieser Zusatz wirkt nur beim Überschreiben eines Programms. Die Anweisung verhält sich so, als ob keine Zusätze angegeben sind (siehe oben), mit der Ausnahme, dass die ABAP-Sprachversion im überschriebenen Programm erhalten bleibt.

Zusatz 3

... PROGRAM TYPE pt

Wirkung

Dieser Zusatz legt den Programmtyp des erzeugten oder überschriebenen Programms gemäß der Angabe in pt fest. pt muss ein Datenobjekt vom Datentyp c der Länge 1 sein, das eine gültige Kennung für einen Programmtyp enthält. Die folgende Tabelle zeigt die Kennungen aller ABAP-Programmtypen, wobei die Großschreibung relevant ist.

ID Programmtyp
1 Ausführbares Programm
F Function-Pool bzw. Funktionsgruppe
I Include Programm
J Interface-Pool
K Class-Pool
M Modul-Pool
S Subroutinen-Pool
T Typ-Pool oder Typgruppe

Zusatz 4

... FIXED-POINT ARITHMETIC fp

Wirkung

Dieser Zusatz legt die Eigenschaft Festpunktarithmetik des erzeugten oder überschriebenen Programms gemäß der Angabe in fp fest. fp muss ein Datenobjekt vom Datentyp c der Länge 1 sein, das entweder den Wert "X" oder " " enthält. Der Wert "X" setzt die Eigenschaft Festpunktarithmetik, der Wert " " schaltet sie aus.

Zusatz 5

... VERSION vs

Wirkung

Dieser Zusatz legt die ABAP-Sprachversion für das erzeugte oder überschriebene Programm gemäß der Angabe in vs fest. vs muss ein Datenobjekt vom Datentyp c der Länge 1 sein, das folgende Werte für die Versionskennung haben kann:

vs ABAP-Sprachversion Bedeutung
X Grundversion, Unicode-Prüfung aktiviert
2 eingeschränkter Sprachumfang für Erweiterungen durch Key-User
3 eingeschränkte Verwendung von externen Repository-Objekten und Verbot von dynamischen Sprachelementen
4 eingeschränkte Verwendung von externen Repository-Objekten ohne Verbot von dynamischen Sprachelementen
5 eingeschränkter Sprachempfang für Entwicklungen auf der .
- obsolet, Unicode-Prüfung deaktiviert

Technisch gesehen versorgt der Zusatz die Spalte UCCHECK der Datenbanktabelle TRDIR. Andere Werte als die hier gezeigten sollten nicht angegeben werden. Falls falsche Werte statisch erkennbar als Literal angegeben werden kommt es zu einem Syntaxfehler. Ein nicht erkennbarer Wert wird dagegen immer in der Datenbanktabelle TRDIR gespeichert. Werte die in obiger Tabelle nicht vorkommen wirken dann wie eine Version, die keinerlei Sprachelemente unterstützt.

Hinweis

Ein obsoleter Zusatz UNICODE ENABLING hat die gleiche Bedeutung wie VERSION.

Zusatz 6

... DIRECTORY ENTRY dir

Wirkung

Dieser Zusatz legt die Programmeigenschaften für das erzeugte oder überschriebene Programm gemäß den Angaben in dir fest. dir muss eine Struktur vom Datentyp TRDIR aus dem ABAP Dictionary sein. In den Komponenten dieser Struktur können die gewünschten Programmeigenschaften angegeben werden. Ungültige Inhalte führen zu ungültigen Programmeigenschaften. Aus dir werden alle Programmeigenschaften bis auf das Anlege- bzw. Änderungsdatum und die zugehörigen Uhrzeiten, Programmautor bzw. letzter Änderer und Versionsnummer entnommen. Letztere werden auf die gleichen Werte gesetzt, wie wenn keine Angabe gemacht wurde.

Hinweis

Es wird dringend empfohlen, bei Verwendung des Zusatzes DIRECTORY ENTRY den Inhalt der Struktur dir ausschließlich durch Auslesen der Eigenschaften eines vorhandenen Programms aus der Datenbanktabelle TRDIR und nachfolgende gezielte Änderung einzelner Komponenten zu setzen.

Beispiel

Ansatzweises Umstellen eines Programms auf Unicode. Ein Programm der obsoleten Sprachversion wird eingelesen und die Anweisung DESCRIBE FIELD exemplarisch auf die Syntax für Unicode-Systeme umgestellt. Danach wird der Quelltext des Programms mit dem modifizierten Quelltext überschrieben und die ABAP-Sprachversion auf gesetzt.

DATA: itab TYPE TABLE OF string,
      prog TYPE sy-repid,
      uc   TYPE trdir-uccheck.

FIELD-SYMBOLS  line> TYPE string.

prog = ...
SELECT SINGLE uccheck
       FROM  trdir
       WHERE name    = @prog AND
             uccheck = ' '
       INTO  (@uc).

IF sy-subrc = 0.
  READ REPORT prog INTO itab.
  LOOP AT itab ASSIGNING line>.
    TRANSLATE line> TO UPPER CASE.
    IF line> CS 'DESCRIBE FIELD' AND
       line> CS 'LENGTH' AND
       line> NS 'MODE'.
      REPLACE '.' IN line> WITH ' IN CHARACTER MODE.'.
    ENDIF.
    ...
  ENDLOOP.
  SYNTAX-CHECK FOR itab ...
  IF sy-subrc = 0.
    INSERT REPORT prog FROM itab VERSION 'X'.
  ENDIF.
ENDIF.


Ausnahmen

Behandelbare Ausnahmen

CX_SY_WRITE_SRC_LINE_TOO_LONG

  • Ursache: Eine Zeile im Quelltext umfasst mehr als 255 Zeichen.
    Laufzeitfehler: INSERT_REPORT_LINE_TOO_LONG


Unbehandelbare Ausnahmen

  • Ursache: Der Programmname prog ist intern reserviert; er beginnt mit '%_T'.
    Laufzeitfehler: INSERT_PROGRAM_INTERNAL_NAME
  • Ursache: Der Programmname prog beginnt mit einem Leerzeichen. Dies ist nicht zulässig.
    Laufzeitfehler: INSERT_PROGRAM_NAME_BLANK
  • Ursache: Der Programmname prog ist zu lang; er darf höchstens 40 Zeichen lang sein.
    Laufzeitfehler: INSERT_PROGRAM_NAME_TOO_LONG
  • Ursache: Suffix 2 innerhalb des Programmnamens prog ist unzulässig bzw. entspricht nicht der Angabe apptype.
    Laufzeitfehler: INSERT_REPORT_BAD_APPENDAGE
  • Ursache: Die Angabe apptype ist ungültig. Zulässige Werte sind in der Typgruppe SREXT definiert.
    Laufzeitfehler: INSERT_REPORT_BAD_APPTYPE
  • Ursache: Suffix 1 innerhalb des Programmnamens prog ist unzulässig bzw. entspricht nicht der Angabe exttype.
    Laufzeitfehler: INSERT_REPORT_BAD_EXTENSION
  • Ursache: Die Angabe exttype ist ungültig. Zulässige Werte sind in der Typgruppe SREXT definiert.
    Laufzeitfehler: INSERT_REPORT_BAD_EXTTYPE
  • Ursache: Der Wert des Feldes uc ist nicht 'X' oder ' '.
    Laufzeitfehler: INSERT_REPORT_ILLEGAL_FLAG
  • Ursache: Der Wert des Feldes pt ist nicht '1', 'I', 'S' , 'M', 'F', 'J' oder 'K'.
    Laufzeitfehler: INSERT_REPORT_ILLEGAL_PROGTYPE
  • Ursache: Der Programmname prog ist länger als 30 Zeichen und das Programm existiert noch nicht in der Bibliothek. Ohne den Zusatz ... APPENDAGE TYPE apptype kann das Programm nicht eingefügt werden.
    Laufzeitfehler: INSERT_REPORT_NO_APPTYPE
  • Ursache: Der Programmname prog ist länger als 30 Zeichen und das Programm existiert noch nicht in der Bibliothek. Ohne den Zusatz ... EXTENSION TYPE exttype kann das Programm nicht eingefügt werden.
    Laufzeitfehler: INSERT_REPORT_NO_EXTTYPE







General Material Data   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 24821 Date: 20240426 Time: 154847     sap01-206 ( 265 ms )