Skip to Content
Client LibrariesDotnet.NET Client

.NET Client

Offizieller .NET-Client für die ProcessCube® Engine. Bietet typisierte API-Clients für die Interaktion mit Prozessdefinitionen, Prozessinstanzen, External Tasks, User Tasks, Events und Flow-Node-Instanzen.

NuGet-Pakete

PaketBeschreibung
ProcessCube.Engine.ClientHaupt-Clientbibliothek mit allen API-Clients
ProcessCube.Engine.CoreIdentitäten, Backoff-Strategien, gemeinsame Utilities
ProcessCube.Engine.Client.Extensions.Hosting.NET Generic Host Integration (DI, Health Checks, Hosted Workers)
ProcessCube.Engine.Client.Extensions.OAuth20OAuth 2.0 / OIDC Authentifizierung
ProcessCube.Engine.TestCaseFixtureDocker-basierte Testfixtures für Integrationstests

Architektur

Die ClientFactory ist der zentrale Einstiegspunkt. Sie erzeugt typisierte Clients für jeden Bereich der Engine-API. Jeder Client nutzt intern einen IApiClient für die HTTP-Kommunikation mit Bearer-Token-Authentifizierung.

Schnellstart

Standalone-Nutzung (ohne Dependency Injection)

using ProcessCube.Engine; Uri engineUrl = new Uri("http://localhost:56000"); // Prozessdefinitionen abfragen IProcessDefinitionsClient processDefinitions = ClientFactory.CreateProcessDefinitionsClient(engineUrl); IReadOnlyList<ProcessDefinition> definitions = await processDefinitions.GetProcessDefinitionsAsync(CancellationToken.None); // Prozessinstanz starten StartProcessInstanceResponse result = await processDefinitions.StartProcessInstanceAsync( processModelId: "MeinProzess", startEventId: "StartEvent_1", initialToken: new { Kunde = "Max Mustermann" }, correlationId: null, callerId: null, CancellationToken.None); // Prozessinstanzen abfragen IProcessInstancesClient processInstances = ClientFactory.CreateProcessInstancesClient(engineUrl); IReadOnlyList<ProcessInstance> instances = await processInstances.QueryAsync( options => { options.FilterByProcessModelId("MeinProzess"); options.FilterByState(ProcessState.Running); }, CancellationToken.None);

Mit .NET Generic Host (Dependency Injection)

IHostBuilder hostBuilder = Host.CreateDefaultBuilder(args); hostBuilder.UseExternalTaskWorkers((context, options) => { options.ConfigureWorkers(context.Configuration.GetSection("ProcessCubeEngine")); options.AuthenticateUsingOAuth20ClientCredentials(); });
{ "ProcessCubeEngine": { "Url": "http://localhost:56000", "IsEnabled": true, "Default": { "MaxParallelWorkerCount": 10, "LockDuration": "00:00:30", "LongPollingDuration": "00:01:00" } } }

Installation

# Haupt-Client dotnet add package ProcessCube.Engine.Client # Mit .NET Generic Host Integration dotnet add package ProcessCube.Engine.Client.Extensions.Hosting # Mit OAuth 2.0 Authentifizierung dotnet add package ProcessCube.Engine.Client.Extensions.OAuth20

Voraussetzungen

  • .NET 6.0 oder höher (Hosting-Extension)
  • .NET Standard 2.1 (Client, Core, OAuth20)
  • Eine laufende ProcessCube® Engine

API-Clients

ClientBeschreibung
ProcessDefinitionsClientBPMN-Prozessdefinitionen verwalten, deployen und starten
ProcessInstancesClientLaufende Prozessinstanzen abfragen, beenden und neu starten
UserTaskClientUser Tasks abfragen, reservieren und abschließen
ExternalTaskClientExternal Tasks mit Workers verarbeiten
EventClientSignals und Messages an die Engine senden
FlowNodeInstancesClientEinzelne Knoten innerhalb von Prozessinstanzen abfragen
ApplicationInfoClientEngine-Metadaten und Authority-Adresse abrufen

Weiterführende Themen