.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
| Paket | Beschreibung |
|---|---|
ProcessCube.Engine.Client | Haupt-Clientbibliothek mit allen API-Clients |
ProcessCube.Engine.Core | Identitäten, Backoff-Strategien, gemeinsame Utilities |
ProcessCube.Engine.Client.Extensions.Hosting | .NET Generic Host Integration (DI, Health Checks, Hosted Workers) |
ProcessCube.Engine.Client.Extensions.OAuth20 | OAuth 2.0 / OIDC Authentifizierung |
ProcessCube.Engine.TestCaseFixture | Docker-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.OAuth20Voraussetzungen
- .NET 6.0 oder höher (Hosting-Extension)
- .NET Standard 2.1 (Client, Core, OAuth20)
- Eine laufende ProcessCube® Engine
API-Clients
| Client | Beschreibung |
|---|---|
| ProcessDefinitionsClient | BPMN-Prozessdefinitionen verwalten, deployen und starten |
| ProcessInstancesClient | Laufende Prozessinstanzen abfragen, beenden und neu starten |
| UserTaskClient | User Tasks abfragen, reservieren und abschließen |
| ExternalTaskClient | External Tasks mit Workers verarbeiten |
| EventClient | Signals und Messages an die Engine senden |
| FlowNodeInstancesClient | Einzelne Knoten innerhalb von Prozessinstanzen abfragen |
| ApplicationInfoClient | Engine-Metadaten und Authority-Adresse abrufen |
Weiterführende Themen
- Getting Started — Erste Schritte und Installation
- Authentifizierung — OAuth 2.0, Azure, Identitätssystem
- External Task Workers — Handler implementieren und konfigurieren
- Erweiterte Konfiguration — Worker-Settings, Health Checks, Processing-Controller