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
Vorgehensweise
Die Farbgebung des Eintrags ändert sich.
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 ).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.Ergebnis
Methode ohne Parameter testen
Wenn der Objekttyp noch Fehler hat, werden Sie darauf hingewiesen. Versuchen Sie, über die Fehlerübersicht (Springen
® Fehlerliste) diese Fehler zu beheben.Sie gelangen auf das Bild Testen Objekttyp <Objektname>: keine Instanz gebunden.
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
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.
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.