Ansicht
Dokumentation
ABAPINSERT_REPORT - INSERT REPORT
rdisp/max_wprun_time - Maximum work process run time BAL Application Log DocumentationDiese Dokumentation steht unter dem Copyright der SAP AG.
INSERT REPORT
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:
- Die Originalsprache wird auf die im Profilparameter zcsa/system_language abgelegte Systemsprache 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.
- Der Programmtyp wird auf ausführbares Programm gesetzt.
- Die Anwendung wird auf den Wert des aktuellen Programms gesetzt.
- Mit dem Programm wird keine logische Datenbank verknüpft.
- Die Festpunktarithmetik ist eingeschaltet.
- Die Einstellung für die ABAP-Sprachversion wird vom aktuellen Programm übernommen.
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.
- Die ABAP-Sprachversion wird wie folgt gesetzt:
- 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
-
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 )