Ansicht
Dokumentation

ABENLDB_EXAMPLE - LDB EXAMPLE

ABENLDB_EXAMPLE - LDB EXAMPLE

TXBHW - Original Tax Base Amount in Local Currency   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Beispiel einer logischen Datenbank

Dieses Beispiel zeigt alle wesentlichen Komponenten einer imaginären logischen Datenbank TEST_LDB.

Struktur

LFA1
  |
  |----LFB1
         |
         |----LFC1
         |
         |----BKPF

Selektionen im Selektions-Include

SELECT-OPTIONS: slifnr   FOR lfa1-lifnr,
                sbukrs   FOR lfb1-bukrs,
                sgjahr   FOR lfc1-gjahr,
                sbelnr   FOR bkpf-belnr.

Datenbankprogramm

*-------------------------------------------------------*
* DATABASE PROGRAM OF LOGICAL DATABASE TEST_LDB
*-------------------------------------------------------*
PROGRAM sapdbtest_ldb DEFINING DATABASE test_ldb.
NODES: lfa1,
       lfb1,
       lfc1,
       bkpf.
*-------------------------------------------------------*
* Initialize selection screen (processed before PBO)
*-------------------------------------------------------*
FORM init.
....
ENDFORM.
*-------------------------------------------------------*
* PBO of selection screen
*-------------------------------------------------------*
FORM pbo.
....
ENDFORM.
*-------------------------------------------------------*
* PAI of selection screen
*-------------------------------------------------------*
FORM pai USING fname mark.
  CASE fname.
    WHEN 'SLIFNR'.
     ....
    WHEN 'SBUKRS'.
     ....
    WHEN 'SGJAHR'.
     ....
    WHEN 'SBELNR'.
     ....
  ENDCASE.
ENDFORM.
*-------------------------------------------------------*
* Raise event GET lfa1
*-------------------------------------------------------*
FORM put_lfa1.
  SELECT * FROM lfa1
           WHERE lifnr IN @slifnr INTO @lfa1.
    PUT lfa1.
  ENDSELECT.
ENDFORM.
*-------------------------------------------------------*
* Raise event GET lfb1
*-------------------------------------------------------*
FORM put_lfb1.
  SELECT * FROM lfb1
           WHERE lifnr = @lfa1-lifnr
             AND bukrs IN @sbulrs
           INTO @lfb1.
    PUT lfb1.
  ENDSELECT.
ENDFORM.
*-------------------------------------------------------*
* Raise event GET lfc1
*-------------------------------------------------------*
FORM put_lfc1.
  SELECT * FROM lfc1
           WHERE lifnr = @lfa1-lifnr
             AND bukrs      =  @lfb1-bukrs
             AND gjahr      IN @sgjahr
           INTO lfc1.
    PUT lfc1.
  ENDSELECT.
ENDFORM.
*-------------------------------------------------------*
* Raise event GET bkpf
*-------------------------------------------------------*
FORM put_bkpf.
  SELECT * FROM bkpf
           WHERE bukrs      =  @lfb1-bukrs
             AND belnr      IN @sbelnr
             AND gjahr      IN @sgjahr
           INTO @bkpf.
    PUT bkpf.
  ENDSELECT.
ENDFORM.

Die PROGRAM-Anweisung hat den Zusatz DEFINING DATABASE test_ldb. Damit wird die Zugehörigkeit des Datenbankprogramms zur logischen Datenbank TEST_LDB definiert.

Die Knoten der Struktur werden mit der NODES-Anweisung deklariert. Dies erzeugt die notwendigen Schnittstellen-Arbeitsbereiche als Tabellenarbeitsbereiche. Die Anweisung TABLES ist für Datenbanktabellen als Knoten gleichwertig einsetzbar. Falls die Knoten keine Datenbanktabellen sind, müssen sie mit NODES deklariert werden. Die Schnittstellen-Arbeitsbereiche werden vom Datenbankprogramm und einem verknüpften ausführbaren Programm bzw. dem Funktionsbaustein LDB_PROCESS gemeinsam genutzt und dienen dadurch als die Schnittstelle für die Datenübergabe.

In den Unterprogrammen init und pbo können Initialisierungen des Selektionsbilds vorgenommen werden.

Im Unterprogramm pai können die Benutzereingaben auf dem Selektionsbild z.B. einer Berechtigungsprüfung unterzogen werden. Aber auch andere Prüfungen, wie für Plausibilität oder Wertebereich sind möglich. Für den negativen Ausgang einer Prüfung kann hier ein Fehlerdialog programmiert und das entsprechende Feld wird wieder eingabebereit gemacht werden.

In den Unterprogrammen put_... werden die Datenbanktabellen entsprechend der vom Benutzer eingegebenen Selektionskriterien ausgelesen und die zugehörigen GET-Ereignisse ausgelöst.

Dieses Programm soll nur den prinzipiellen Aufbau einer logischen Datenbank zeigen. Es sind keinerlei Maßnahmen zur Optimierung der Antwortzeiten unternommen worden. Die zeitliche Abfolge der Unterprogrammaufrufe wird durch die Struktur der logischen Datenbank bestimmt.






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

Length: 7193 Date: 20240523 Time: 165340     sap01-206 ( 62 ms )