Beispielsammlung, Leitfaden > Ermittlung der Fehlermeldung und -nummer

Ermittlung der Fehlermeldung und -nummer

Ziel: Bei der Auftretung eines Fehlers sollen dessen Meldungstext und Nummer ermittelt und per E-Mail weitergeleitet werden.

Verwendete Objekte: beliebiges aktivierbares Objekt

Verwendete Script-Sprachmittel: ACTIVATE_UC_OBJECT, GET_MSG_TXT, :ON_ERROR, PRINT, SEND_MAIL, SYS_ACT_ME_NAME, SYS_ACT_ME_NR, SYS_LAST_ERR_INS, SYS_LAST_ERR_NR, UC_CRLF, XML_CLOSE, XML_GET_NODE_TEXT und XML_OPEN


Beispiel

Tritt in der Verarbeitung eines Scriptes ein Fehler auf, so wird eine Meldung mit entsprechendem Text und Nummer erzeugt. Sie können auf diese Informationen zugreifen, um jene Werte in weiterer Folge verwenden zu können. So ist es möglich, bestimmte Reaktionen auf eingetretene Fehler zu definieren.

Aufgabe

Das folgende Beispiel zeigt, wie eine gesamte Fehlermeldung ermittelt und per E-Mail an einen Empfänger weitergeleitet wird.

Ausgangspunkt ist die Aktivierung eines Objektes mit Namen "MAWI.ABSCHLUSS". Da der Name an mehr als einer Stelle verwendet wird, bietet sich die Möglichkeit an, für jenen eine Script-Variable zu definieren. Sollte die Aktivierung des Objektes nicht möglich sein, gibt die Script-Funktion ACTIVATE_UC_OBJECT den Wert 0 zurück. In so einem Fall können die Informationen zum zuletzt aufgetretenen Fehler ermittelt werden.

Wenden Sie die folgenden Script-Sprachmittel dabei an:

Die Werte können beispielsweise mit einer E-Mail zur Benachrichtigung an einen Empfänger geschickt werden. Da in vielen Fällen die Zuständigkeiten innerhalb eines Automation Engine Systems auf verschiedene Personen aufgeteilt sind, ist die Hinterlegung einer Ansprechperson von Vorteil. Diese kann über die Dokumentations-Registerkarte bei jedem Objekt vermerkt werden. Nutzen Sie hierbei die Objektvorlagen, um diese und andere Informationen festzuhalten. Wird ein Objekt mit einer Vorlage angelegt, übernimmt sie die zuvor definierten Inhalte.

Die folgende Abbildung zeigt eine strukturierte Dokumentations-Registerkarte. Sie hat den Vorteil, dass sie mit speziellen Script-Sprachmitteln (XML*) ausgelesen werden kann.

Mit der Script-Funktion XML_GET_NODE_TEXT können Sie die Ansprechperson ermitteln. Sie wird als Empfänger-Adresse des E-Mails benutzt, das mit SEND_MAIL gesendet werden kann. Das E-Mail enthält den Namen des zu startenden Objektes und den Namen sowie die RunID der Aufgabe, in der der Aktivierungsversuch stattfand.

Hinweis zu :ON_ERROR:

Bei einigen Script-Sprachmitteln, zu denen auch ACTIVATE_UC_OBJECT gehört, können Sie selbst bestimmen, ob bei einem Fehler die Script-Prozessierung abbricht. In diesem Beispiel wird ":ON_ERROR RESUME" angegeben, damit der aufgetretene Fehler analysiert werden kann. Bei ":ON_ERROR ABEND" würde das Script in der Zeile mit ACTIVATE_UC_OBJECT abbrechen.

Folgendes Script zeigt die einzelnen Schritte zum zuvor erläuterten Ablauf:

!An email message should be sent
!when the object cannot be activated.


:
SET&obj_to_be_started# = 'MM.ENDOFMONTH' 

:
ON_ERROR RESUME
:
SET&start# = ACTIVATE_UC_OBJECT(&obj_to_be_started#)


:
IF&start# = 0

:  
SET&error_nr# = SYS_LAST_ERR_NR()
:  
SET&error_var# = SYS_LAST_ERR_INS()
:  
SET&message# = GET_MSG_TXT(&error_nr,&error_var#)
:  
PRINT'&message#'

!Retrieving the contact person

:  
SET&xmldocu# = XML_OPEN(,'@Description')
:  
SET&contact# = XML_GET_NODE_TEXT(&xmldocu#)
:  
XML_CLOSE

:  
SET&obj_name# = SYS_ACT_ME_NAME()
:  
SET&obj_runnr# = SYS_ACT_ME_NR()

!Linebreak

:  
SET&to# = UC_CRLF()

:  
SET&ret_mail# = SEND_MAIL('&contact#@automic.at',,'The task &obj_to_be_started# could not be started!','NAME: &obj_name# / RunID: &obj_runnr# &to#&to# MESSAGE: &Message#')

:
ENDIF

Damit das E-Mail erfolgreich gesendet werden kann, muss die E-Mail-Kopplung eines Agenten aktiv sein!

 


Automic Documentation - Tutorials - Automic Blog - Resources - Training & Services - Automic YouTube Channel - Download Center - Support

Copyright © 2016 Automic Software GmbH