Table of Contents

Meldungen behandeln

microtech ERP zeigt bei manchen Vorgängen ein Meldungsfenster an und wartet auf eine Auswahl. Ohne Behandlung blockiert das den Ablauf. Mit SubscribeToNotifications beantworten Sie diese Meldungen programmatisch.

Abonnieren

using var subscription = bpApp.SubscribeToNotifications(request =>
{
    Console.WriteLine(request.Text);

    foreach (var button in request.Buttons)
        Console.WriteLine($"  {button.ModalResult}: {button.Caption}");

    // Rückgabe 0 verwendet die vorausgewählte Schaltfläche
    return 0;
});

Der Handler erhält einen MeldFensterRequest und gibt das ModalResult der Schaltfläche zurück, die microtech ERP auswählen soll. Der Rückgabewert 0 verwendet DefaultResult, also die fokussierte Schaltfläche oder, falls keine fokussiert ist, die erste.

Die Methode liefert ein IDisposable. Beim Verlassen des using-Blocks wird das Abonnement wieder gelöst; ohne Dispose bleibt der Handler für die Lebensdauer der Verbindung aktiv.

Eine bestimmte Schaltfläche wählen

FindByCaption sucht eine Schaltfläche anhand ihrer Beschriftung; der Vergleich ignoriert Groß- und Kleinschreibung.

using var subscription = bpApp.SubscribeToNotifications(request =>
{
    var ja = request.FindByCaption("&Ja");
    return ja?.ModalResult ?? request.DefaultResult;
});

Fehler im Handler

Wirft der Handler eine Ausnahme, wird sie an onError gemeldet und microtech ERP erhält DefaultResult. Der Ablauf im ERP läuft also weiter.

using var subscription = bpApp.SubscribeToNotifications(
    request => request.DefaultResult,
    onError: ex => Console.WriteLine($"Fehler in der Meldungsbehandlung: {ex.Message}"));

MeldFensterRequest

Element Bedeutung
Text Text der Meldung
Buttons Verfügbare Schaltflächen als MeldFensterButton (ModalResult, Caption, Focused)
DefaultResult ModalResult der fokussierten, sonst der ersten Schaltfläche, sonst 0
FindByCaption(caption) Schaltfläche anhand der Beschriftung, sonst null