!--a11y-->
Nachrichtenbehandlung 
Alle in der Ausführung eines Skripts auftretenden Nachrichten werden im Protokoll aufgezeichnet. Sie können das Skript jedoch veranlassen, auch auf bestimmte Klassen von Nachrichten oder sogar spezifische Nachrichten während der Testskriptausführung zu reagieren. Dafür verwenden Sie MESSAGE…ENDMESSAGE-Blöcke. Diese Blöcke können Nachrichten aufzeichnen, die durch die folgenden Befehle ausgelöst werden: SAPGUI, TCD, LOGMSG, FUN, Inline ABAP, CALLSTATIC und CALLMETHOD. Die Nachrichten werden in der Kommandoschnittstelle des ENDMESSAGE-Befehls abgelegt und können programmatisch im Skript aufgerufen werden. Sie können beispielsweise alle gesammelten Nachrichten mit Schleifen durchsuchen und sie bei Bedarf bearbeiten.
MESSAGE ( MSG_1 ).
LOGMSG ( LOGMSG_1 ).
LOGMSG ( LOGMSG_2 ).
ENDMESSAGE ( E_MSG_1 ).
DO &TFILL.
IF ( E_MSG_1[&LPC]-MSGV1 = 'Testname' ).
LOG ( E_MSG_1[&LPC]-MSGV1 ).
ENDIF.
ENDDO.
Sie können in der MESSAGE-Kommandschnittstelle Regeln angeben und damit festlegen, wie eCATT auf die verschiedenen Nachrichten reagieren soll. In jeder Regel können Sie eine beliebige Kombination von Nachrichtentyp, -nummer oder –ID angeben. Wenn eine Nachricht auftritt, wird geprüft, ob die in der Kommandoschnittstelle angegebenen Regeln zutreffen. Wenn die Nachricht die Bedingungen einer Regel erfüllt, wird die Nachricht gemäß der Regel bearbeitet und für diese Nachricht keine weiteren Regeln geprüft. Wenn die Nachricht auf keine der vom Benutzer definierten Regeln zutrifft, werden die standardmäßigen eCATT-Regeln angewendet.

Da Regeln in der gleichen Reihenfolge bearbeitet werden, in der sie in der Kommandoschnittstelle angegeben wurden, sollte eine Regel umso höher in der Liste stehen, je spezifischer sie ist. Zum Beispiel:
MODE |
EXIT |
MSGTYP |
MSGID |
MSGNR |
‘F’ |
|
‘E’ |
|
007 |
‘A’ |
|
‘E’ |
|
|
In diesem Fall würde das Skript bei Auftreten der Fehlermeldung 007 als fehlgeschlagen gekennzeichnet, obwohl alle anderen Fehlermeldungen erlaubt sind. Würden die Regeln in dem obigen Beispiel vertauscht, würde die allgemeine Regel, die alle Fehlermeldungen erlaubt, immer bearbeitet und die spezifischere Regel, nach der die Fehlermeldung 007 ein Fehlschlagen des Skripts verursacht, niemals erreicht werden.
Nachrichten, die normalerweise ein Fehlschlagen des Skripts verursachen, können in der MESSAGE-Kommandoschnittstelle so definiert werden, dass sie erlaubt sind. Anwendungen, die innerhalb eines MESSAGE…ENDMESSAGE-Blocks beendet werden, müssen keinen Abbruch der Skriptausführung verursachen. Die Ausführung kann zum ENDMESSAGE-Befehl springen und von dort aus fortgesetzt werden. Diese Funktionen erlauben es Ihnen, robuste Skripte zu schreiben, weil Sie potenziell problematische Befehle in MESSAGE…ENDMESSAGE-Blöcke einfügen und die Nachrichtenregeln entsprechend definieren können.
MESSAGE…ENDMESSAGE-Blöcke können andere MESSAGE…ENDMESSAGE-Blöcke enthalten. Nachrichten, die in einem inneren Block aufgezeichnet wurden, werden nicht von einem äußeren Block aufgezeichnet.
Um vertrauter im Umgang mit den Regeln der Nachrichtenbehandlung zu werden, können Sie den Befehl LOGMSG für das Generieren von spezifischen Nachrichten verwenden. Zum Beispiel:
MESSAGE ( MSG_1 ).
MESSAGE ( MSG_2 ).
LOGMSG ( LOGMSG_1 ).
LOGMSG ( LOGMSG_2 ).
ENDMESSAGE ( E_MSG_2 ).
LOGMSG ( LOGMSG_3 ).
ENDMESSAGE ( E_MSG_1 ).
