Benutzer-Werkzeuge

Webseiten-Werkzeuge


Plugin installed incorrectly. Rename plugin directory 'swiftmail.backup' to 'swiftmail'.
software:cba:messages

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
software:cba:messages [2014/11/24 16:00]
max.neumaier
software:cba:messages [2014/12/16 16:31]
127.0.0.1 Externe Bearbeitung
Zeile 76: Zeile 76:
 |**I .. Informationen**|Informationen an den Nutzer| |**I .. Informationen**|Informationen an den Nutzer|
 |**Q .. Fragen**|Fragen an den Nutzer, die mit Ja oder Nein beantwortet werden können| |**Q .. Fragen**|Fragen an den Nutzer, die mit Ja oder Nein beantwortet werden können|
 +
 +
 +Die Klassifikation wird beim Aufruf der Funktion **setMessage** übergeben.
 +
 +Das Verhalten eines **setMessage**-Aufrufes wird durch das Flag bestimmt. Es kann folgende Werte beinhalten: ​
 +|**e .. Exception** |Die Meldung löst nach ihrer Behandlung einen CbaException aus, der in einer beliebigen Aufruf-Hierarchie-Ebene abgefangen werden kann.|
 +|**1 .. Logging-Level 1** |Logging- und Monitoring-Informationen für fatale Systemfehler|
 +|**2 .. Logging-Level 2** |Logging- und Monitoring-Informationen für fatale Konfigurationsfehler|
 +|**3 .. Logging-Level 3** |Logging- und Monitoring-Informationen für fatale Anwendungsfehler|
 +|**4 .. Logging-Level 4** |Logging- und Monitoring-Informationen für Systemfehler|
 +|**5 .. Logging-Level 5** |Logging- und Monitoring-Informationen für Konfigurationsfehler|
 +|**6 .. Logging-Level 6** |Logging- und Monitoring-Informationen für Anwendungsfehler|
 +|**7 .. Logging-Level 7** |anwendungsspezifische Logging- und Monitoring-Informationen|
 +|**8 .. Logging-Level 8** |anwendungsspezifische Logging- und Monitoring-Informationen|
 +|**9 .. Logging-Level 9** |anwendungsspezifische Logging- und Monitoring-Informationen|
 +Die Meldungen werden an das Logging und Monitoring weitergeleitet,​ wenn das angegebene Level kleiner oder gleich dem beim **saveMessage**-Aufruf angegebenen Level ist.
 +
 +-------
 +
 +===Verhalten===
 +Der Meldungs-Puffer wird zu Transaktions-Beginn automatisch durch Aufruf der Funktion **clearMessage** gelehrt. Der Transaktions-Beginn ist implizit durch einen Service-Aufruf gegeben, kann aber auch explizit durch Aufruf der Funktion **BlTransactionBegin** durch den Anwender ausgelöst werden. Es werden alle Meldungen der Transaktion im Meldungs-Puffer gesammelt, bis die nächste Transaktion begonnen hat. Damit kann auch nach Abschluss der Transaktion mit Hilfe der Funktion **getMessages** die Liste aller bei der letzten Transaktion aufgelaufenen Meldungen zurückgeliefert werden.
 +
 +Durch die gezielte Steuerung der Exceptions ist das Aufsammeln von Meldungen möglich, ohne dass der Programmablauf unterbrochen wird. Es können fehlertolerante Services implementiert werden, die z.B. fehlerfreie Informationen bearbeiten und fehlerbehaftete zurückweisen. Mit Hilfe der Meldungen sind die zurückgewiesenen Informationen und der Rückweisungsgrund eindeutig nachvollziehbar.
 +
 +In verteilten Anwendungen sorgt das CBA-Framework dafür, dass die Meldungen des aufgerufenen Services in die Meldungsliste der aufrufenden Anwendung überführt und ggf. ein Exception ausgelöst wird. Damit ist das Verhalten über Domänengrenzen hinweg einheitlich. ​
 +
 +------
 +
 +===System Meldungen===
 +System-Meldungen werden automatisch bei folgenden Ereignissen durch das CBA-Framework generiert:
 +
 +  *     im CBA-Framework erkannte Fehler
 +  *     ​Fehler untergelagerter Systeme (z.B. Datei-Verwaltung,​ Datenbank, ...)
 +  *     ​Beginn und Ende eines Service-Aufrufes
 +  *     ​Instanziierung einer Unit 
 +
 +Alle System-Meldungen des CBA-Framework werden über die Funktion setMessage generiert.
 +
 +-----
 +===Anwendung===
 +Meldungen werden im Programm-Code an verschiedenen Stellen generiert. Während einer Transaktion werden alle Meldungen im Meldungs-Puffer zwischengespeichert,​ sodass auch eine Folge von Meldungen erzeugt werden kann. Ein wichtiges Anwendungs-Beispiel dafür sind Validierungen. Die Validierung wird nicht beim ersten erkannten Fehler beendet, sondern wird fortgeführt. Dadurch kann ein besserer Bedienkomfort erreicht werden, weil in einem Zyklus mehrere Fehler beseitigt werden können. Durch eine gezielte Steuerung der Exceptions ist das Aufsammeln von Meldungen möglich, ohne dass der Programmablauf unterbrochen wird.
 +
 +Nachfolgend ein Beispiel für die Anwendung der Meldungs-Funktionen: ​
 +
 +<code java>
 +      string MyFunction (...)
 +        {
 +            string result = null;
 +            try
 +            {
 +                // ... gewünschte Funktionalität
 +
 +                // spezieller Fehler
 +                if (...) setMessage(1001,​ [par0]+"​|"​+[par1],​ "​E",​ "​e",​ null, null, 0);
 +                   // [par0] würde den Platzhalter {0} und [par1] den Platzhalter {1} ersetzen
 + // Flag  '​e'​ => nach Fehlerbehandlung wird ein CbaException ausgelöst
 +
 +                // ... weitere Funktionalität
 +
 +                // ... Rückgabe einer sprachabhängigen Meldung
 +                result = getMessageText (1002, ...+"​|"​+...+"​|"​+...);​
 +            }
 +            catch (CbaException se)
 +            {
 +                // Durchreichen einer bereits behandelten Exception
 +                throw se;
 +            }
 +            catch (Exception e)
 +            {
 +                // Behandlung einer neuen Exception
 +                setMessage(1000,​ e.Message, "​E",​ "​e”);​
 +            }
 +            finally
 +            {
 +                // ... abschliessende Massnahmen
 +            }
 +            return result;
 +         }
 +</​code> ​
software/cba/messages.txt · Zuletzt geändert: 2021/07/01 09:52 (Externe Bearbeitung)