Meldungsklassen

1) Meldungsgruppen können zu Meldungsklassen zu gruppiert werden, und diesen Meldungsklassen können Condition-Handler zugeordnet werden. Meldungen aus den so definierten Meldungsgruppen werden ausschließlich von Handlern für diese Klasse behandelt, und nie von den (anwendungsseitig installierten) Severity-Handlern.

Durch diese Erweiterung wird folgendes erreicht:

  • Conditions aus bestimmten Meldungsklassen (z.B. von der Infrastruktur gesetzte Conditions) werden in allen Modulen einheitlich behandelt, ohne dass Source-Änderungen in Anwendungsmodulen notwendig sind.
  • Es wird vermieden, dass Conditions aus diesen Meldungsgruppen in den anwendungseigenen Severity-Handlern oder anderen (nicht zuständigen) Class-Handlern ankommen. Die Handler brauchen dadurch nicht mit Conditions unbekannter Herkunft zu rechnen.
  • Durch dass der Class-Handler für Infrastruktur-Conditions von der Infrastruktur als Proc-Handler installiert wird, kann er auch von COBOL-Modulen genutzt werden, ohne dass dafür das Modul verlassen werden muss.
  • Bei Hinzufügen neuer Meldungsgruppen genügt die Zuordnung zu einer Klasse, um das Condition-Handling dafür – außerhalb der Severity-Handler - zu regeln.

Zuordnung zu einer Meldungsklasse

Für Meldungsklassen steht in Rochade der Dokumenttyp IM_MELDUNGSKLASSE zur Verfügung. Das Anlegen neuer Meldungsklassen ist jedoch nur mit den entsprechenden Berechtigungen möglich.

Bei der Bearbeitung einer Meldungsgruppe kann über das Rochade-Attribut GEHOERT_ZU_MELDUNGSKLASSE oder durch Auswahl in der Listbox von MessEdge die Meldungsgruppe einer Meldungsklasse zugeordnet werden.

Erweiterung der APIs

Beim Suchen von Conditionhandlern für eine Severity wird sichergestellt, dass Conditions, für die eine Meldungsklasse definiert ist, für die wiederum ein Klassenhandler installiert ist, an diesen Handler weitergeleitet werden statt an den Severity-Handler. Die Angabe eines Class-Handlers für eine Meldungsklasse hat also immer Vorrang vor dem Severity-Handler.

Wenn eine Meldung einer Klasse zugeordnet ist, Klassenhandler aber zur Laufzeit kein Klassenhanler installiert wurde, wird der Default-Conditionhandler ausgeführt. Hier besteht ebenfalls die Möglichkeit, bestimmte Meldungsklassen abweichend vom Standard zu behandeln.

Zum Setzen von Condition-Handlern pro Meldungsklasse stehen folgende Funktionen zur Verfügung:

C, C++

BOOL taaCndClassHdlReset (HTAASTME hStme);
BOOL taaCndClassHdlPop (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlClear (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlPush (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlReplace (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlIsControlGet (HTAASTME hStme, LPCSTR lpszClass);
TAACNDPROC taaCndClassHdlProcGet (HTAASTME hStme, LPCSTR lpszClass);
LPCSTR taaCndClassHdlProcStringGet (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlProcSet (HTAASTME hStme, LPCSTR lpszClass, LPCSTR lpszDll, LPCSTR lpszEntry);
BOOL taaCndClassHdlIsProcGet (HTAASTME hStme, LPCSTR lpszClass);
DWORD taaCndClassHdlIdGet (HTAASTME hStme, LPCSTR lpszClass);
BOOL taaCndClassHdlIdSet (HTAASTME hStme, LPCSTR lpszClass, DWORD dwId);
BOOL taaCndClassHdlIsIdGet (HTAASTME hStme, LPCSTR lpszClass);

Die Funktionen entsprechen den entsprechenden Funktionen für Severity-Condition-Handler.

COM (VB), .net

Entsprechend der bisherigen Methoden um Einsetzen von Handlern pro Severity, gibt es jetzt die Methoden auch für Class-Handler: cndClassHdlPush, cndClassHdlPop, cndClassHdlClear usw.

Eine genauere Beschreibung finden Sie in der TAA/VB-Dokumentation bzw. der → TAA/.net-Dokumentation.

COBOL

EXEC TAA ON CONDITIONCLASS <meldungsklasse> <aktion> END-EXEC

Eine genauere Beschreibung finden Sie in der TAA/COBOL-Dokumentation.

Hinweis: In COBOL ist nur die Installation von ID-Handlern möglich. Die Installation eines ID-Handlers für eine Klasse kann jedoch wieder dazu führen, dass während des Raise von Infrastruktur-Conditions das aktuelle Modul über Caller-Handle verlassen wird, um den ID-Handler im aufrufenden COBOL-Modul auszuführen; zu vermeiden wäre dies nur, indem der Klassen-Handler in jedem COBOL-Modul installiert wird.

1)
Ab V7.04
faq:allg:mldk · Zuletzt geändert: 10.04.2015 17:20

Copyright © 1992-2024 TeamWiSE Gesellschaft für Softwaretechnik mbH         Adressen |  Kontakt |  AGB |  Datenschutzerklärung |  Impressum