Ansicht
Dokumentation

ABENLDB_USAGE_EXECUTABLE - LDB USAGE EXECUTABLE

ABENLDB_USAGE_EXECUTABLE - LDB USAGE EXECUTABLE

ABAP Short Reference   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Verknüpfung mit ausführbaren Programmen

Funktionsweise von Verknüpfungen

Wenn ein ausführbares Programm mit einer logischen Datenbank verknüpft ist, d.h. die logische Datenbank ist in den Programmattributen eingetragen, bilden die Unterprogramme des Datenbankprogramms mit den Reporting-Ereignisblöcken des ausführbaren Programms ein modularisiertes Gesamtprogramm zum Lesen und Verarbeiten von Daten. Die einzelnen Verarbeitungsblöcke werden in bestimmter, vorgegebener Reihenfolge vom Laufzeit-Framework aufgerufen. Dabei steuern Struktur, Selektionen und PUT-Anweisungen der logischen Datenbank sowie die GET-Anweisungen des ausführbaren Programms das Laufzeitverhalten.

Die Aufrufe des Laufzeit-Frameworks hängen zum einen von der Struktur der logischen Datenbank und zum anderen von der Definition des ausführbaren Programms ab. Die Struktur der logischen Datenbank bestimmt, in welcher Reihenfolge die Unterprogramme der logischen Datenbank aufgerufen werden, die wiederum GET-Ereignisblöcke im ausführbaren Programm aufrufen. Die im ausführbaren Programm definierten GET-Ereignisblöcke bestimmen die Lesetiefe der logischen Datenbank. NODES- oder TABLES-Anweisungen im globalen Deklarationsteil des ausführbaren Programms bestimmen welche der in der logischen Datenbank definierten Eingabefelder auf dem Selektionsbild aufgenommen werden und definieren Schnittstellen-Arbeitsbereiche für die Datenübergabe zwischen logischer Datenbank und ausführbarem Programm.

Der eigentliche Zugriff auf die Datenbank erfolgt in aller Regel über -Anweisungen, die in den put_node-Unterprogrammen implementiert sind. Die eingelesenen Daten werden über die Schnittstellen-Arbeitsbereiche an das ausführbare Programm übergeben. Nach dem Einlesen der Daten im logischen Datenbankprogramm hat das ausführbare Programm die Möglichkeit diese Daten in den GET-Ereignisblöcken zu verarbeiten. Dadurch wird eine Trennung von Datenselektion und Datenverarbeitung erreicht.

Selektionsbild

Wenn eine logische Datenbank in den Attributen eines ausführbaren Programms angegeben ist, beeinflusst diese das Standardselektionsbild des Programms. Das Standardselektionsbild enthält sowohl die Selektionen (Selektionskriterien und Parameter) der logischen Datenbank als auch die programmspezifischen Selektionen. Das ausführbare Programm bestimmt durch die Deklaration von Schnittstellen-Arbeitsbereichen, welche datenbankspezifischen Selektionen für seine Datenauswertung relevant sind und auf dem Selektionsbild erscheinen sollen.

Laufzeitverhalten

Im Folgenden ist die Reihenfolge aufgeführt, in der das ABAP-Laufzeit-Framework die Unterprogramme der logischen Datenbank und die Ereignisblöcke im ausführbaren Programm aufruft, wobei die Unterprogramme in der Regel vor den Ereignisblöcken ausgeführt werden. Hierfür werden im Laufzeit-Framework verschiedene Prozessoren (Selektionsbildprozessor, Reporting-Prozessor) hintereinander ausgeführt, siehe auch Ablauf eines ausführbaren Programms.

  1. Initialisierungen vor der Selektionsbildverarbeitung.
Unterprogramm init
Dieses Unterprogramm wird ein einziges mal vor dem ersten Senden des Selektionsbilds aufgerufen.
Ereignisblock INITIALIZATION.
Dieses Ereignis tritt ein einziges mal vor dem ersten Senden des Selektionsbilds auf.
  1. PBO des Selektionsbilds. Initialisierungen vor jedem Senden des Selektionsbilds (z.B. Vorschlagswerte für Schlüsselfelder bestimmen).
Unterprogramm pbo
Dieses Unterprogramm wird vor jedem erneuten Senden des Selektionsbilds aufgerufen.
Ereignisblock AT SELECTION-SCREEN OUTPUT
Dieses Ereignis tritt vor jedem erneuten Senden des Selektionsbilds auf.
  1. Das Selektionsbild wird angezeigt und der Benutzer kann Werte in die Eingabefelder eingeben.
  2. Eventuell Anforderung von Eingabehilfe (F4) und Feldhilfe (F1).
Unterprogramme ...val und ...hlp
Fordert der Benutzer Eingabehilfe oder Feldhilfe zu datenbankspezifischen Parametern oder Selektionskriterien an, werden diese Unterprogramme entsprechend aufgerufen.
Ereignisblöcke AT SELECTION-SCREEN ON VALUE-REQUEST FOR ... und AT SELECTION-SCREEN ON HELP-REQUEST FOR ...
Fordert der Benutzer Eingabehilfe oder Feldhilfe zu programmspezifischen Parametern oder Selektionskriterien an, werden die entsprechenden Ereignisse ausgelöst.
  1. PAI des Selektionsbilds. Überprüfung ob die Benutzereingaben korrekt, vollständig und plausibel sind. Außerdem wird eine Berechtigungsprüfung des Benutzers durchgeführt. Im Fehlerfall können ein Dialog mit dem Benutzer geführt und Felder für neue Eingaben wieder eingabebereit gemacht werden.
Unterprogramm pai USING fname mark.
Die Schnittstellenparameter fname und mark werden vom Laufzeit-Framework übergeben. fname enthält den Namen eines Selektionskriteriums oder Parameters auf dem Selektionsbild. Falls mark initial ist, hat der Benutzer eine einfache Einzelwert- oder Intervallselektion eingegeben. Falls mark den Wert "*" hat, hat der Benutzer auch Eintragungen auf dem Bild Mehrfachselektion vorgenommen. Mit einer Kombination aus "*" für fname und "ANY" für mark können bei einer Benutzeraktion alle Eingaben auf einmal überprüft werden.
Ereignisblöcke AT SELECTION-SCREEN ON ... und AT SELECTION-SCREEN ohne Zusatz.
Ereignisse zur Verarbeitung eines bestimmten Eingabefelds, zur Verarbeitung von Mehrfachselektionen und zur Verarbeitung aller Benutzereingaben.
  1. Arbeiten vor dem Lesen von Daten.
Unterprogramm before_event mit Parameter "START-OF-SELECTION"
Die logische Datenbank kann vor dem Lesen der Daten Aktionen ausführen, wie z.B. interne Tabellen initialisieren etc.
Ereignisblock START-OF-SELECTION
Erstes Reporting-Ereignis nach der Selektionsbildverarbeitung. In diesem Ereignisblock können vorbereitende Arbeiten im Programm ausgeführt werden.
  1. Lesen von Daten in der logischen Datenbank und Verarbeitung im ausführbaren Programm.
Unterprogramme put_node
Die logische Datenbank liest die ausgewählten Daten des Knotens node
Ereignisblock GET table $[LATE$]
Dieses Ereignis wird durch die PUT-Anweisung in obigem Unterprogramm ausgelöst. In diesem Ereignisblock können die zu node gelesenen Daten dem entsprechenden Schnittstellen-Arbeitsbereich entnommen werden.
  1. Arbeiten nach dem Lesen von Daten.
Unterprogramm after_event mit Parameter "END-OF-SELECTION"
Die logische Datenbank kann nach dem Lesen der Daten Aktionen ausführen, wie z.B. Speicherplatz freigeben.
Ereignisblock END-OF-SELECTION
Letztes Reporting-Ereignis. In diesem Ereignisblock können alle zwischengespeicherten Daten bearbeitet werden (z.B. Sortieren).
  1. Falls während obiger Schritte in eine klassische Liste geschrieben wurde, übernimmt der Listenprozessor im Laufzeit-Framework die Kontrolle und zeigt die Liste an.

Hinweis

Berechtigungsprüfungen mit der Anweisung AUTHORITY-CHECK sind in den folgenden Unterprogrammen des Datenbankprogramms bzw. Ereignisblöcken des ausführbaren Programms sinnvoll:

  • Unterprogramme pai und authority_check...
  • Ereignisblöcke AT SELECTION SCREEN ... und GET

Berechtigungsprüfungen sollten zentral und wiederverwendbar im logischen Datenbankprogramm implementiert werden. Wo die Berechtigungsprüfungen im Einzelfall platziert werden, ob im Datenbankprogramm oder im ausführbaren Programm, kann aber u.a. von Folgendem abhängen:

  • Der Struktur der logischen Datenbank. Es sollte z.B. eine Buchungskreisberechtigung nur geprüft werden, wenn zur Laufzeit auch eine Zeile mit dem Feld Buchungskreis gelesen wird.
  • Performance. Wiederholte Prüfungen z.B. innerhalb von SELECT-Schleifen sollten vermieden werden.

Logische Datenbank, Verknüpfung mit Programm






ABAP Short Reference   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10413 Date: 20240523 Time: 181924     sap01-206 ( 171 ms )