Show TOC Anfang des Inhaltsbereichs

Einstiegsbilder über SPA/GPA-Parameter füllen  Dokument im Navigationsbaum lokalisieren

Um die Eingabefelder eines aufgerufenen Dynpros mit Daten aus dem aufrufenden Programm zu versorgen kann die SPA/GPA-Technik verwendet werden. SPA/GPA-Parameter sind Werte, die im globalen benutzerbezogenen SAP-Memory gespeichert sind. Mit dem SAP-Memory können Werte transaktionsübergreifend zwischen Programmen übergeben werden. Das SAP-Memory steht einem Benutzer während der gesamten Dauer einer Terminalsitzung und für alle parallelen Modi zur Verfügung. Jeder SPA/GPA-Parameter wird durch eine 20-stellige Kennung identifiziert. Die Pflege von SPA/GPA-Parametern erfolgt beispielsweise im Repository Browser der ABAP Workbench. Die Speicherung von Werten in SPA/GPA-Parametern ist benutzerspezifisch.

ABAP-Programme haben über die Anweisungen SET PARAMETER und GET PARAMETER Zugriff auf die SPA/GPA-Parameter.

Zum Füllen eines SPA/GPA-Parameters verwendet man:

SET PARAMETER ID pid FIELD f.

Diese Anweisung speichert den Inhalt des Felds f unter der Kennung pid im SAP-Memory. Die Kennung pid kann aus zwanzig Zeichen bestehen. Die Anweisung überschreibt einen schon vorhandenen Wert mit der Kennung pid. Durch Doppelklick auf pid im ABAP-Editor können nichtvorhandene Parameter als Repository-Objekt erzeugt werden.

Zum Lesen eines SPA/GPA Parameters verwendet man:

GET PARAMETER ID pid FIELD f.

Diese Anweisung stellt den unter der Kennung pid abgelegten Wert in die Variable f. Falls das System keinen Wert zu pid im SAP-Memory findet, wird sy-subrc auf 4, ansonsten auf 0 gesetzt.

Um Einstiegsbilder über SPA/GPA-Parameter zu füllen, benötigt man normalerweise nur die Anweisung SET PARAMETER.

Die Voraussetzung für das Füllen von Eingabefeldern über SPA/GPA-Parameter ist eine Verknüpfung dieser Felder mit jeweils einem SPA/GPA-Parameter.

Bei Selektionsbildern erfolgt die Verknüpfung mit dem Zusatz MEMORY ID der Anweisungen PARAMETERS oder SELECT-OPTIONS. Wenn bei der Deklaration eines Parameters oder eines Selektionskriteriums eine SPA/GPA-Parameterkennung angegeben wird, ist das entsprechende Eingabefeld mit dem Parameter verknüpft.

Bei Dynpros erfolgt die Verknüpfung während der Definition des Dynpros mit dem Werkzeug Screen Painter. Beim Setzen der Feldattribute eines Eingabefelds kann im Attribut Parameter-Id die Kennung eines SPA/GPA-Parameters angegeben werden. In den Ankreuzfeldern SET-Parameter und GET-Parameter kann festgelegt werden, ob zum Zeitpunkt PBO das Dynprofeld mit dem Wert des SPA/GPA-Parameters gefüllt wird, bzw. ob zum Zeitpunkt PAI der SPA/GPA-Parameter mit der Benutzereingabe auf dem Dynpro gefüllt wird.

Wenn ein Eingabefeld mit SPA/GPA-Parametern verknüpft ist, wird es bei jedem Senden des Bildschirmbilds mit dem derzeitigen Wert des Parameters initialisiert. Solche Verknüpfungen mit SPA/GPA-Parametern sind normalerweise der Grund dafür, dass Eingabefelder auf den Bildschirmbildern des SAP-Systems bei wiederholten Aufrufen oft mit den alten Werten vorgefüllt sind.

Bei Programmaufrufen können diese Verknüpfungen ohne weiteren ABAP-Programmieraufwand ausgenutzt werden, wenn beispielsweise das aufrufende und das aufgerufene Programm dieselben Mussfelder auf ihren Einstiegsbildern haben. Das System überträgt dann die Eingabefeldinhalte des aufrufenden Programms automatisch in die Eingabefelder des aufgerufenen Programms

Um die Eingabefelder des aufgerufenen Programms programmgesteuert zu setzen verwendet man vor dem Programmaufruf die Anweisung SET PARAMETER. Diese Technik ist besonders dann zu empfehlen, wenn das Einstiegsbild übergangen werden soll, da hierfür alle Mussfelder gefüllt werden müssen.

Für das Setzen der SPA/GPA-Parameter vor dem Aufruf von Programmen muss bekannt sein, welche SPA/GPA-Parameter mit den Eingabefeldern des Einstiegsbilds verknüpft sind. Hierfür kann man beispielsweise das Programm starten, den Cursor auf den Eingabefeldern plazieren, und die F1-Hilfe wählen. Nach der Auswahl von Technische Info auf dem folgenden Dialogfenster, findet man den jeweils  zugehörigen SPA/GPA-Parameter im Feld Parameter-Id. Man kann sich natürlich auch die Definition des Einstiegsbilds im Screen Painter ansehen.

Beispiel

Die technische Info für das erste Eingabefeld des Einstiegsbilds einer Verbuchungstransaktion sieht beispielsweise folgendermaßen aus:

Diese Grafik wird im zugehörigen Text erklärt

Demnach hat der SPA/GPA-Parameter für das Eingabefeld Fluggesellschaft die Kennung CAR. Auf gleiche Weise finden Sie für die übrigen Eingabefelder die Kennungen CON, DAY und BOK.

Das folgende ausführbare Programm ist mit der logischen Datenbank F1S verknüpft und ruft die Verbuchungstransaktion auf:

REPORT bookings NO STANDARD PAGE HEADING.

TABLES sbook.

START-OF-SELECTION.
  WRITE: 'Select a booking',
       / '----------------'.
  SKIP.

GET sbook.
  WRITE: sbook-carrid, sbook-connid,
         sbook-fldate, sbook-bookid.
  HIDE:  sbook-carrid, sbook-connid,
         sbook-fldate, sbook-bookid.

AT LINE-SELECTION.
  SET PARAMETER ID: 'CAR' FIELD sbook-carrid,
                    'CON' FIELD sbook-connid,
                    'DAY' FIELD sbook-fldate,
                    'BOK' FIELD sbook-bookid.
  
CALL TRANSACTION 'BOOK'.

Die Grundliste des Programms zeigt Felder aus der Datenbanktabelle SBOOK entsprechend der Benutzereingaben auf dem Selektionsbild. Diese Daten werden auch im HIDE-Bereich jeder Zeile abgelegt.

Diese Grafik wird im zugehörigen Text erklärt

Wählt der Benutzer eine Zeile der Buchungsdaten durch Doppelklick aus, werden bei dem Ereignis AT LINE-SELECTION die abgelegten Daten aus dem HIDE-Bereich geholt und in die SPA/GPA-Parameter des Einstiegsbilds der Transaktion gestellt. Danach wird die Transaktion aufgerufen. Da das Einstiegsbild nicht mit AND SKIP FIRST SCREEN unterdrückt wird, erscheint es z.B. wie folgt gefüllt:

Diese Grafik wird im zugehörigen Text erklärt

Wäre der Zusatz AND SKIP FIRST SCREEN bei der Anweisung CALL TRANSACTION angegeben und ein Folgebild definiert, würde sofort das zweite Bild der Transaktion erscheinen, da alle Mussfelder ausgefüllt sind.

 

Ende des Inhaltsbereichs