Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: Microsoft.Azure. Workflows.Sdk
Definiert den Fluent-Chaining-Vertrag zur Zusammensetzung von Workflow-Operationen in sequentielle und parallele Ausführungspipelines unter Verwendung des Methodenmusters Then() . Sowohl IWorkflowOperation als auch OperationChain implementieren diese Schnittstelle, sodass Sie lineare und verzweigte Workflows flüssig zusammensetzen können.
Verwendung
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet");
var response = WorkflowActions.BuiltIn.Response(responseBody: () => $"{compose.Output}").WithName("Reply");
trigger
.Then(compose)
.Then(response);
Methodik
Dann (IWorkflowAction)
Verkettet eine anschließende IWorkflowAction, die nach erfolgreichem Abschluss des aktuellen Knotens ausgeführt wird. Das ist die übliche Überlastung beim Aufbau sequentieller Workflows.
OperationChain Then(IWorkflowAction action)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| action | Die Aktion, um an die aktuelle Kette anzuhängen. | IWorkflowAction | Yes |
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet");
var response = WorkflowActions.BuiltIn.Response(responseBody: () => $"{compose.Output}").WithName("Reply");
trigger
.Then(compose)
.Then(response);
Dann(IWorkflowAction, FlowStatus[])
Kettet eine anschließende IWorkflowAction mit expliziten FlowStatus Bedingungen. Verwenden Sie diese Überlastung, wenn die angehängte Aktion erst ausgeführt werden sollte, nachdem die vorherige Aktion einen der angegebenen Statusse erreicht hat.
OperationChain Then(IWorkflowAction action, FlowStatus[] runAfter)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| action | Die Aktion, um an die aktuelle Kette anzuhängen. | IWorkflowAction | Yes |
| runAfter | Die Statuswerte, die es ermöglichen, die angehängte Aktion auszuführen. | FlowStatus[] | Yes |
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var process = WorkflowActions.BuiltIn.Compose(inputs: () => "Process").WithName("Process");
var errorHandler = WorkflowActions.BuiltIn.Compose(inputs: () => "Error occurred").WithName("HandleError");
trigger
.Then(process)
.Then(errorHandler, runAfter: new[] { FlowStatus.Failed, FlowStatus.TimedOut });
Dann(IWorkflowAction, RunAfter[])
Kettet eine anschließende IWorkflowAction mit expliziter Konfiguration pro Vorgänger RunAfter . Nutze diese Überladung in Fan-In-Szenarien, in denen die nächste Aktion auf mehrere Vorgängerketten warten muss.
OperationChain Then(IWorkflowAction action, RunAfter[] runAfter)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| action | Die Aktion zum Anhängen nach Abschluss der konfigurierten Vorgänger. | IWorkflowAction | Yes |
| runAfter | Die per-Vorgänger-Run-after-Definitionen steuert, wann die Aktion ausgeführt wird. | RunAfter[] | Yes |
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var leftChain = trigger
.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Left").WithName("Left"));
var rightChain = trigger
.Then(WorkflowActions.BuiltIn.Compose(inputs: () => "Right").WithName("Right"));
var merged = WorkflowActions.BuiltIn.Compose(inputs: () => "Done").WithName("Merged");
leftChain
.Join(rightChain)
.Then(merged, runAfter: new[]
{
new RunAfter(leftChain, FlowStatus.Succeeded),
new RunAfter(rightChain, FlowStatus.Succeeded),
});
Then(Func<IChainableNode, OperationChain[]>)
Teilt den aktuellen Knoten in mehrere parallele Zweige auf. Der Callback empfängt den aktuellen IChainableNode und muss OperationChain-Instanzen zurückgeben, die denselben Root-Knoten teilen.
OperationChain Then(Func<IChainableNode, OperationChain[]> branches)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| branches | Ein Callback, der einen oder mehrere Zweige vom aktuellen Knoten erzeugt. | Func<IChainableNode, OperationChain[]> | Yes |
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var branch1 = WorkflowActions.BuiltIn.Compose(inputs: () => "Branch 1").WithName("Branch1");
var branch2 = WorkflowActions.BuiltIn.Compose(inputs: () => "Branch 2").WithName("Branch2");
var merged = WorkflowActions.BuiltIn.Compose(inputs: () => "Merged").WithName("Merged");
trigger
.Then(parent => new[]
{
parent.Then(branch1),
parent.Then(branch2),
})
.Then(merged);
Verwandte Inhalte
- AgentToolContext-Klassendefinition
- IVariableWorkflowAction-Schnittstellendefinition
- IWorkflowAction-Schnittstellendefinition
- IWorkflowOperation-Schnittstellendefinition
- IWorkflowProvider Schnittstellendefinition
- IWorkflowTrigger-Schnittstellendefinition
- OperationChain-Klassendefinition
- Definition von Schnittstellen für typisierte Workflow-Aktionen
- Definition von Schnittstellen für typisierte Workflow-Triggers
- WorkflowActionBase-Klassendefinition
- WorkflowActions Klassendefinition
- WorkflowBuiltInActions Klassendefinition
- WorkflowBuiltInTriggers Klassendefinition
- Definition der WorkflowContext-Klasse
- WorkflowControlActions-Klassendefinition
- WorkflowFactory-Klassendefinition
- WorkflowManagedActions-Klassendefinition
- WorkflowManagedTriggers Klassendefinition
- WorkflowProviderExtensions-Klassendefinition
- WorkflowTriggerBase-Klassendefinition
- WorkflowTriggers Klassendefinition
- WorkflowVariableActions Klassendefinition