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 |