Anfang des Inhaltsbereichs

Hintergrunddokumentation Nachrichten bearbeiten  Dokument im Navigationsbaum lokalisieren

Bisher sind Nachrichten passiv behandelt worden: Wenn sie aufgetreten sind, hat sie das Protokoll aufgezeichnet. eCATT bietet nun bessere Möglichkeiten für die Bearbeitung von Nachrichten. Der MESSAGE…ENDMESSAGE-Block spielt dabei die wichtigste Rolle.

Die einfachste Funktion des MESSAGE…ENDMESSAGE-Blocks ist das Sammeln aller Nachrichten, die von Befehlen ausgelöst werden, die sich zwischen den Befehlen MESSAGE und ENDMESSAGE befinden. Der Befehl MESSAGE ermöglicht es Ihnen auch anzugeben, wie eCATT auf bestimmte Nachrichtenkategorien oder sogar spezifische Nachrichten reagieren soll.

Wenn Sie die Transaktion EC_TUTORIAL_SAPGUI aufgezeichnet und eine erfolgreiche Buchung durchgeführt haben, erscheint eine Erfolgsmeldung. Bei jeder Ausführung dieses Testskripts wollen Sie sicherstellen, dass diese bestimmte Erfolgsmeldung erscheint. Sie definieren deswegen eine Regel in der Kommandoschnittstelle des MESSAGE-Befehls, durch die das Skript jedesmal fehlschlägt, wenn die Nachricht nicht auftritt.

Im ersten Teil der folgenden Übung werden Sie einen MESSAGE…ENDMESSAGE-Block anlegen, der keine Befehle enthält. Mithilfe der Startoptionen werden Sie den Abbruch der Ausführung herbeiführen, wenn die erforderliche Nachricht nicht angezeigt wird. Im zweiten Teil der Übung werden Sie den ENDMESSAGE-Befehl so platzieren, dass der Block SAPGUI-Befehle enthält, die Sie zuvor aufgezeichnet haben. Bei korrekter Wiedergabe der Transaktion wird die erforderliche Nachricht erscheinen und das Testskript vollständig ausgeführt. Am Ende werden Sie einige Programmzeilen schreiben, um den variablen Teil der Nachricht zu extrahieren und ihn damit für eine mögliche Weiterverwendung verfügbar zu machen.

Vorgehensweise

       1.      Doppelklicken Sie im Befehl-Editor auf die Kommandoschnittstelle vom SAPGUI-Befehl, der den Nachrichtentext Flight was booked successfully. enthält. Wenn Sie beim Aufzeichnen keine Fehler gemacht haben, wird dies der letzte SAPGUI-Befehl in Ihrem Skript sein.

Diese Grafik wird im zugehörigen Text erklärt

Die obige Abbildung zeigt die Anzeige der Kommandoschnittstelle im Easy Mode Diese Grafik wird im zugehörigen Text erklärt. Neben dem Message-Knoten erscheint der Nachrichtentyp (S), die Nachrichten-ID (ECDEMO) und die Nachrichtennummer (024). Der variable Teil dieser Nachricht wird neben dem Parameter 1-Knoten aufgezeichnet. Sie können die Nachrichtenteile einer SAPGUI-Kommandoschnittstelle nicht parametrisieren.

       2.      Fügen Sie ein paar leere Zeilen in den Befehl-Editor vor den SAPGUI-Befehlen ein. Positionieren Sie den Cursor vor die bestehenden Befehle.

Diese Grafik wird im zugehörigen Text erklärt

       3.      Verwenden Sie die Funktion Muster, um den MESSAGE…ENDMESSAGE-Block einzufügen. Akzeptieren Sie den vorgegebenen Schnittstellennamen.

Diese Grafik wird im zugehörigen Text erklärt

Diese Grafik wird im zugehörigen Text erklärt

       4.      Doppelklicken Sie auf die Kommandoschnittstelle (MSG_1) des MESSAGE-Befehls. Die Kommandoschnittstelle erscheint im Struktur-Editor rechts neben dem Befehl-Editor.

       5.      Wählen Sie Diese Grafik wird im zugehörigen Text erklärt und geben Sie Folgendes ein:

Diese Grafik wird im zugehörigen Text erklärt

Sie haben eine Regel definiert, die das Auslösen einer bestimmten Nachricht voraussetzt.

       6.      Ändern Sie in den Startoptionen das Fehlerverhalten, damit der Startvorgang beenden wird, wenn ein Fehler auftritt.

Diese Grafik wird im zugehörigen Text erklärt

       7.      Führen Sie das Skript aus.

Das Protokoll zeigt, dass die erforderliche Nachricht nicht aufgetreten ist.

Diese Grafik wird im zugehörigen Text erklärt

       8.      Kehren Sie zum Testskript zurück und verschieben Sie den ENDMESSAGE-Befehl durch die Verwendung von Ausschneiden und Einfügen so, dass er sich hinter den SAPGUI-Befehlen befindet.

Diese Grafik wird im zugehörigen Text erklärt

       9.      Führen Sie das Testskript aus. Das Prototokoll sollte diesmal nur grüne Ampeln aufweisen.

Diese Grafik wird im zugehörigen Text erklärt

Das Protokoll zeigt, dass die erforderliche Nachricht aufgetreten ist. Die Nachrichten unterscheiden sich je nach Art der Aufzeichnung. Da Sie keine Regeln angegeben haben, werden sie nach den standardmäßigen Regeln behandelt.

   10.      Kehren Sie zurück zum Testskript-Editor und fügen Sie die folgenden Zeilen am Ende des Testskripts ein:

V_MESSAGES = E_MSG_1[1]-MIDX.

E_BOOKINGNUMBER = E_MSG_1[V_MESSAGES]-MSGV1.

LOG ( E_BOOKINGNUMBER ).

Das Feld MIDX der ersten Reihe von der ENDMESSAGE-Kommandoschnittstelle enthält immer die Anzahl der im ENDMESSAGE-Befehl aufgezeichneten Nachrichten. Hier weisen Sie diesen Wert einem Parameter V_MESSAGES zu. (Anstelle der in vorherigen Releases erforderlichen Eingabe E_MSG_1[1]-MIDX, können Sie nun den speziellen Parameter &TFILL verwenden).

Die zweite Anweisung weist dem Parameter E_BOOKINGNUMBER den ersten variablen Teil der letzten Nachricht zu. Gehen Sie für diese Übung davon aus, dass die Nachricht immer die letzte ist. Ist dies nicht der Fall, können Sie die Kommandoschnittstelle auch mit Schleifen durchsuchen, um die von Ihnen gewünschte Nachricht zu finden.

Die dritte Anweisung ist ein hilfreicher Befehl, der den verwendeten extrahierten Wert anzeigt.

   11.      Legen Sie in der Parameterliste den Exportparameter E_BOOKINGNUMBER und die lokale Variable V_MESSAGES an. Sie können Diese Grafik wird im zugehörigen Text erklärt verwenden, um zwischen der Anzeige der Parameter und der von Kommandoschnittstellen in der Parameterliste umzuschalten.

Diese Grafik wird im zugehörigen Text erklärt

   12.      Speichern Sie das Testskript und führen Sie es aus.

Diese Grafik wird im zugehörigen Text erklärt

Ergebnis

Sie haben eine Nachricht aufgezeichnet und den Wert von ihrem variablen Teil gelesen.

 

Ende des Inhaltsbereichs