Anfang des InhaltsbereichsVorgehensweisen Lektion 7: Methode Edit ohne Parameter anlegen  Dokument im Navigationsbaum lokalisieren

Verwendung

Sie legen in dieser Lektion die Methode Edit als Methode ohne Parameter an und implementieren sie.

Sie müssen diese Methode implementieren, wenn ihr Objekttyp das Interfaces IFEDIT unterstützt.

Voraussetzungen

Die Methode Edit ermöglicht die Bearbeitung des Objektes. Sie gehört zu den Methoden, die Ihr Objekttyp vom Interface IFEDIT erbt.

Diese Methode ist beim Interface zwar definiert, aber noch nicht implementiert. Das Programm Ihres Objekttyps muß also noch entsprechend erweitert werden. Dazu wird in der Implementierung der Methode Edit die objektspezifische Transaktion (oder der Funktionsbaustein) aufgerufen, mit der das Objekt bearbeitet werden kann. Für Kundenaufträge ist das die Transaktion VA02 .

Geerbte Objektmethoden

Wenn Sie eine Methode bearbeiten wollen, die Ihr Objekttyp von einem Interface oder von einem Supertypen geerbt hat, müssen Sie folgendes beachten:

Vom Interface IFEDIT werden folgende Eigenschaften und Ausnahmen der Methode Edit vererbt:

Die Methode Edit ist eine synchrone Methode, die mit Dialog abläuft, instanzabhängig ist und kein Ergebnis zurückliefert. (Die Aufgabe, in der diese Methode referenziert wird, wird in der Regel die Eigenschaft Verarbeitungsende bestätigen haben.)

Vorgehensweise

  1. Positionieren Sie den Cursor auf der Methode Edit .
  2. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.
  3. Die Farbgebung des Eintrags ändert sich.

  4. Öffnen Sie die Methodendefinition durch Doppelklick auf dem Methodennamen.
  5. Tragen Sie auf der Registerkarte ABAP/4 im Feld Name die Transaktion VA02 ein und markieren Sie Transaktion.
  6. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.
  7. Positionieren Sie den Cursor auf der Methode Edit .
  8. Wählen Sie Programm. Lassen Sie sich das Muster für die fehlende Methode erzeugen.
  9. Aus den Angaben zum ABAP-Funktionentyp wird eine (fast) vollständige Implementierung erzeugt:

    Die Methode wird zwischen den Makrobefehlen BEGIN_METHOD <Methodenname> CHANGING CONTAINER und END_METHOD implementiert.

    Bei der Implementierung der Aufrufe steht die eindeutige Kennung des Objektes in der Struktur der Schlüsselfelder unter dem Variablennamen OBJECT-KEY-SALESDOCUMENT zur Verfügung. Über Verarbeitungsparameter ("SET/GET-Parameter") wird aus diesem Schlüsselfeld das Eingabefeld im ersten Bild der Transaktion gefüllt. Dieses erste Bild wird dann beim Aufruf der Transaktion übersprungen ( ... AND SKIP FIRST SCREEN ).

  10. Ergänzen Sie die Implementierung der Methode Edit noch um die Zeile SWC_REFRESH_OBJECT SELF . Sie finden den Quelltext im Anhang in den Zeilen 98-102.
  11. Durch die standardmäßige Pufferung der Attributwerte kann es vorkommen, daß Attributänderungen, die bei der Bearbeitung eines Objektes auftreten, vom Laufzeitsystem nicht "wahrgenommen" werden.

    Daher rufen Sie nach der Ausführung von Methoden, durch die Attribute geändert worden sein könnten (Methoden Edit, Update, Change ,...), vor END_METHOD das Makro in der Form SWC_REFRESH_OBJECT SELF auf. Sie erzwingen damit, daß die Attributwerte vor dem nächsten Lesezugriff aufgefrischt werden und nicht mehr aus der internen Tabelle gelesen werden.

  12. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt und verlassen Sie den Programm-Editor.

Ergebnis

Methode ohne Parameter testen

  1. Damit der Objekttyp instanziiert und getestet werden kann, muß er zunächst generiert werden. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.
  2. Wenn der Objekttyp noch Fehler hat, werden Sie darauf hingewiesen. Versuchen Sie, über die Fehlerübersicht (Springen ® Fehlerliste) diese Fehler zu beheben.

  3. Um die Methode zu testen, wählen Sie Diese Grafik wird im zugehörigen Text erklärt.
  4. Sie gelangen auf das Bild Testen Objekttyp <Objektname>: keine Instanz gebunden.

  5. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt Instanz.
  6. Identifizieren Sie ein Objekt vom Typ Kundenauftrag, indem Sie die Nummer eines beliebigen Kundenauftrags eintragen. Lassen Sie sich ggf. durch die F4-Eingabehilfe unterstützen

  7. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.

Sie gelangen auf das Bild Testen Objekttyp <Objektname>, auf dem Sie Ihren Objekttyp testen können (Methoden ausführen, Werte der Attribute überprüfen).

Hinweise zum Aufruf- und Rückmeldeverhalten dieser Methode

Zur Verwendung der Methode in einem Workflow muß sie noch in einer Aufgabe gekapselt werden. Zur Laufzeit wird diese Aufgabe durch ein Workitem repräsentiert.

Wenn dieses Workitem von einem seiner Empfänger ausgeführt wird, ruft das Laufzeitsystem die Methode und damit indirekt die Transaktion auf. Da es sich bei der Methode Edit um eine synchrone Methode ohne Ergebnis handelt, ist das Workitem beendet, sobald die Methode einmal durchlaufen wurde. Dieses Systemverhalten ist in der Regel unerwünscht:

Wenn Sie sichergehen wollen, daß das Workitem nur dann in den Status beendet übergeht, wenn tatsächlich Änderungen am Kundenauftrag vorgenommen wurden, darf die Methode nicht als synchrone Objektmethode definiert sein. Vielmehr müssen Sie die Methode dann als asynchrone Methode definieren und ein beendendes Ereignis für die Aufgabe bereitstellen, das bei einer erfolgten Änderung des Objektes erzeugt wird.

Hinweis

Dieses Ereignis kann durch die Kopplung der Ereigniserzeugung an das Schreiben von Änderungsbelegen realisiert werden.

Wenn das Workitem wiederholt ausgeführt werden soll, müssen Sie in der Aufgabendefinition das Kennzeichen Verarbeitungsende bestätigen setzen.

Ende des Inhaltsbereichs