Table of Contents

Metadaten, erste Action und Logging

Ausgehend vom Projekt aus Basic Setup definieren Sie die Modulmetadaten und eine Action zum Zählen von Artikeln.

Modulmetadaten definieren

Die Modulklasse in MainModule.cs erbt von BpModule:

namespace Meinefirma.Beispiel;

public sealed class MainModule : BpModule
{
    public override string ModuleName => "Mein Modul";

    public override string ModuleVersion => "1.0.0";

    public override string ModuleDescription => "Beispiele für den Datenzugriff mit dem Actions SDK.";
}

Jedes Modul enthält genau eine Klasse, die von BpModule erbt. Die überschriebenen Properties definieren Anzeigename, Version und Beschreibung des Moduls in Studio. Name und Version müssen mit name und version in der manifest.json übereinstimmen.

Action hinzufügen

[Action] veröffentlicht eine Methode als ausführbare Funktion. Ergänzen Sie die Artikelzählung in der Modulklasse; das COM-Profil und die Modellreferenz sind unter Basic Setup beschrieben:

public sealed class MainModule(IBpSession session) : BpModule
{
    public override string ModuleName => "Mein Modul";
    public override string ModuleVersion => "1.0.0";
    public override string ModuleDescription => "Beispiele für den Datenzugriff mit dem Actions SDK.";

    [Action("artikel-zaehlen", Display = "Artikel zählen")]
    public int ArtikelZaehlen()
    {
        return session.QueryDataSet<Artikel>().Count();
    }
}

IBpSession greift auf den Mandanten des gewählten Verbindungsprofils zu. QueryDataSet<Artikel>() ist dabei der Datenzugriff des BpNexT.NET SDK. Weitere Abfragen und Schreiboperationen verwenden Sie genauso; siehe SDK verwenden.

artikel-zaehlen ist die dauerhafte ID der Action; Display legt den Anzeigenamen fest. Behalten Sie die ID nach der Veröffentlichung bei, damit bestehende Aufrufe und Zeitpläne weiter auf dieselbe Action verweisen.

Der Rückgabewert erscheint als Ergebnis in der Ausführungshistorie.

Modul debuggen

Beim ersten Build erzeugt die Vorlage das Debugprofil für die installierte Runtime:

dotnet build

Wählen Sie das erzeugte Runtime-Debugprofil und starten Sie mit F5. Die Runtime lädt das Modul aus der Build-Ausgabe; Breakpoints im Modulcode sind damit aktiv.

Prüfen Sie bei Startproblemen zuerst die folgenden Punkte:

  • Port belegt: Stoppen Sie die bereits laufende Runtime vor dem Debugstart.
  • Abweichender Installationspfad: Setzen Sie BPNEXT_HOME auf das Runtime-Verzeichnis, entfernen Sie die erzeugte Properties/launchSettings.json und bauen Sie erneut.

Action in Studio ausführen

Öffnen Sie in Studio unter Pakete das mit dev markierte Modul. Prüfen Sie das Verbindungsprofil und starten Sie Artikel zählen über Ausführen.

Unter Ausführungen in Studio finden Sie Status, Eingabe, Ergebnis, Protokoll, Dauer und Auslöser.

Logging ergänzen

Meldungen über ILogger<T> erscheinen im Protokoll der jeweiligen Ausführung:

public sealed class MainModule(
    IBpSession session,
    ILogger<MainModule> logger) : BpModule
{
    // ModuleName, ModuleVersion und ModuleDescription bleiben unverändert.

    [Action("artikel-zaehlen", Display = "Artikel zählen")]
    public int ArtikelZaehlen()
    {
        var anzahl = session.QueryDataSet<Artikel>().Count();
        logger.LogInformation("{Count} Artikel gezählt", anzahl);
        return anzahl;
    }
}

Unbehandelte Exceptions werden im Ausführungsdetail mit Fehlermeldung und Stacktrace als Fehlgeschlagen protokolliert.

Für die dauerhafte Installation erstellen Sie ein Paket.