ABAPINSERT_REPORT - INSERT REPORT

CL_GUI_FRONTEND_SERVICES - Frontend Services   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

INSERT REPORT

Kurzreferenz



Syntax

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

Zusätze:

1. ... MAXIMUM WIDTH INTO wid

2. ... KEEPING DIRECTORY ENTRY

3. ... PROGRAM TYPE pt

4. ... FIXED-POINT ARITHMETIC fp

5. ... UNICODE ENABLING uc

6. ... DIRECTORY ENTRY dir

Wirkung

Diese Anweisung stellt den Inhalt von itab als Quelltext in das in prog angegebene ABAP-Programm imRepository.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 SystemtabelleTRDIR an.

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

  • Die Originalsprache wird auf die im Profilparameterzcsa/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 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 Unicode-Prüfung 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 Einstellung für die Unicode-Prüfung wird aktiviert, wenn das aktuelle Programm einUnicode-Programm ist und einNicht-Unicode-Programmüberschrieben wird. Die Einstellung bleibt aktiviert, wenn das aktuelle Programm ein Nicht-Unicode-Programm ist und ein Unicode-Programm überschrieben wird.

Für itab ist eine Standardtabelle ohnesekundäreTabellenschlüssel erlaubt. Der Zeilentyp von itab muss zeichenartig sein. Eine Quelltextzeilein itab darf maximal 255 Zeichen enthalten. prog muss ein zeichenartiges flaches Datenobjektsein, das maximal 30 Zeichen enthalten darf und für dessen Inhalt die Groß-/Kleinschreibung keine Rolle spielt.

Systemfelder

sy-subrcBedeutung
0Das in prog angegebene Programm wurde erfolgreich angelegt oder überschrieben.
4Beim Anlegen oder Überschreiben von dem in prog angegebenen Programm trat ein Fehler auf.

Hinweise

  • Die Anweisung INSERT REPORT darf nur mit höchster Vorsicht verwendet werden, da bereitsbestehende 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 Korrektur- und Transportwesen angeschlossen ist. Das Programm muss entweder inder 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 inRahmenprogrammen undInclude-Programmenorganisiert werden, ist eine genaue Kenntnis des Aufbaus der Programme und ihrer Namen unerlässlich.
  • Beim Anlegen eines Programms sollte der Programmname den Namenskonventionen derABAP Workbench genügen, wenn es danach mit deren Werkzeugen bearbeitet werden soll.
  • INSERT REPORT sollte nur in Ausnahmefällen in Anwendungsprogrammen verwendet werden. ABAPbietet viele andere Mittel der dynamischen Programmierung, welche eine dynamische Quelltexterstellung in der Regel unnötig machen (siehe Aufzählung unterDynamische Programmbearbeitung).


Zusatz 1

... MAXIMUM WIDTH INTO wid

Wirkung

Bei Verwendung des Zusatzes MAXIMUM WIDTH wird die Anzahl der Zeichen der längsten Quelltextzeilein 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 Einstellung für dieUnicode-Prüfung im überschriebenen Programm erhalten bleibt.

Hinweis

Mit dieser Einstellung können die Quelltexte vonNicht-Unicode-Programmen ausUnicode-Programmenüberschrieben werden, ohne dass implizit die Unicode-Prüfung eingeschaltet wird.

Zusatz 3

... PROGRAM TYPE pt

Wirkung

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

KennungProgrammtyp
1Ausführbares Programm
FFunktionsgruppe bzw. Function-Pool
IInclude-Programm
JInterface-Pool
KClass-Pool
MModul-Pool
SSubroutinen-Pool
TTypgruppe bzw. Typepool

Zusatz 4

... FIXED-POINT ARITHMETIC fp

Wirkung

Dieser Zusatz legt die Eigenschaft Festpunktarithmetik des erzeugten oder überschriebenen Programms gemäß derAngabe 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

... UNICODE ENABLING uc

Wirkung

Dieser Zusatz legt die Einstellung der Unicode-Prüfung für das erzeugte oder überschriebene Programm gemäßder Angabe in uc fest. uc muss ein Datenobjekt vom Datentyp c der Länge1 sein, das entweder den Wert "X" oder " " enthält. Der Wert "X" aktiviert die Unicode-Prüfung, der Wert " " deaktiviert sie.

Hinweis

Mit diesem Zusatz können die Quelltexte von Nicht-Unicode-Programmen aus Unicode-Programmen überschriebenwerden, ohne dass implizit die Unicode-Prüfung eingeschaltet wird. Umgekehrt können Unicode-Programme aus Nicht-Unicode Programmen erzeugt werden.

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 DatentypTRDIR aus dem ABAP Dictionary sein. In denKomponenten dieser Struktur können die gewünschten Programmeigenschaften angegeben werden.Ungültige Inhalte führen zu ungültigen Programmeigenschaften. Aus dir werdenalle Programmeigenschaften bis auf das Anlege- bzw. Änderungsdatum und die zugehörigenUhrzeiten, 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 Strukturdir ausschließlich durch Auslesen der Eigenschaften eines vorhandenen Programms aus der Datenbanktabelle TRDIR zu setzen.

Beispiel

Ansatzweises Umstellen eines Programms auf Unicode. Ein Nicht-Unicode-Programm wird eingelesen und die Anweisung DESCRIBE FIELD exemplarisch auf die Syntax fürUnicode-Systemeumgestellt. Danach wird der Quelltext des Programms mit dem modifizierten Quelltext überschrieben und die Unicode-Prüfung in den Programmeigenschaften aktiviert.

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
       INTO  (uc)
       WHERE name    = prog AND
             uccheck = ' '.

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 UNICODE ENABLING '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 TypgruppeSREXT 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 30Zeichen 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 30Zeichen 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







BAL Application Log Documentation   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 21181 Date: 20120526 Time: 213427     triton ( 515 ms )