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
Bietet Factory-Methoden zur Erstellung von Kontrollflussaktionen, die verzweigen, gruppieren, wiederholen oder die Ausführung stoppen. Zugriff auf diese Klasse über WorkflowBuiltInActions mit WorkflowActions.BuiltIn.Control.
Verwendung
// Access control actions via WorkflowActions.BuiltIn.Control
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
var scope = WorkflowActions.BuiltIn.Control.Scope(() =>
{
var step1 = WorkflowActions.BuiltIn.Compose(inputs: () => "Process").WithName("Process");
return step1;
}).WithName("ProcessingScope");
trigger.Then(scope);
WorkflowFactory.CreateStatefulWorkflow("ControlFlowExample", trigger);
Methodik
Geltungsbereich
Erstellt eine Scope-Aktion, die verschachtelte Aktionen zu einer einzigen IWorkflowAction gruppiert.
IWorkflowAction Scope(Func<IChainableNode> actions)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| actions | Die Fabrik, die den verschachtelten Aktionsgraphen erstellt. | Func<IChainableNode> | Yes |
var scope = WorkflowActions.BuiltIn.Control.Scope(() =>
{
var step1 = WorkflowActions.BuiltIn.Compose(inputs: () => "Step 1").WithName("Step1");
var step2 = WorkflowActions.BuiltIn.Compose(inputs: () => "Step 2").WithName("Step2");
return step1.Then(step2);
}).WithName("MyScope");
Zustand
Erstellt eine bedingte Aktion, die einen booleschen Ausdruck auswertet und die Ausführung an einen von zwei Zweigen weiterleitet.
IWorkflowAction Condition(Expression<Func<bool>> expression, Func<IChainableNode> trueBranch, Func<IChainableNode> falseBranch)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| expression | Booleanischer Ausdruck zur Beurteilung. | Ausdruck<Func<bool>> | Yes |
| trueBranch | Factory für die wahren Zweigaktionen. | Func<IChainableNode> | Yes |
| falseBranch | Fabrik für die falschen Filialaktionen. | Func<IChainableNode> | Yes |
var condition = WorkflowActions.BuiltIn.Control.Condition(
expression: () => trigger.TriggerOutput.Body != null,
trueBranch: () => WorkflowActions.BuiltIn.Compose(inputs: () => "Has body").WithName("True"),
falseBranch: () => WorkflowActions.BuiltIn.Compose(inputs: () => "No body").WithName("False")
).WithName("CheckBody");
ForEach
Erstellt eine Schleifenaktion, die über eine Sammlung iteriert und für jedes Element den bereitgestellten Aktionsgraphen ausführt.
IWorkflowAction ForEach(Expression<Func<JToken>> items, Func<JToken, IChainableNode> actions)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| items | Ausdruck für die Sammlung, um zu iterieren. | Ausdruck<Func<JToken>> | Yes |
| actions | Die Fabrik erhält den aktuellen Artikel und gibt einen Aktionsgraphen zurück. | Func<JToken, IChainableNode> | Yes |
var forEach = WorkflowActions.BuiltIn.Control.ForEach(
items: () => JArray.Parse("[\"one\",\"two\"]"),
actions: (item) => WorkflowActions.BuiltIn.Compose(inputs: () => $"Item: {item}").WithName("ProcessItem")
).WithName("LoopItems");
Until
Erzeugt eine Schleifenaktion, die ihre verschachtelten Aktionen wiederholt, bis der angegebene Ausdruck auf true ausgewertet wird.
IWorkflowAction Until(Expression<Func<bool>> expression, Func<IChainableNode> actions)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| expression | Boolesche Austrittsbedingung. | Ausdruck<Func<bool>> | Yes |
| actions | Fabrik, die den Graphen für wiederholte Aktionen erstellt. | Func<IChainableNode> | Yes |
var counterVar = WorkflowActions.BuiltIn.Variables.InitializeVariable<int>(
name: () => "counter",
value: () => 0).WithName("Counter");
var until = WorkflowActions.BuiltIn.Control.Until(
expression: () => counterVar.Value.Value<int>() >= 10,
actions: () => WorkflowActions.BuiltIn.Variables.IncrementVariable<int>(
name: () => "counter", value: () => 1).WithName("Increment")
).WithName("RepeatUntil10");
Option
Erstellt eine Switch-Aktion, die eine Eingabe auswertet und die Ausführung an einen passenden SwitchCase oder einen Standard-Sprung leitet.
IWorkflowAction Switch(Expression<Func<JToken>> on, Func<Dictionary<string, SwitchCase>> cases, Func<IChainableNode> defaultCase = null)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| on | Ausdruck für den Wert, der aktiviert werden soll. | Ausdruck<Func<JToken>> | Yes |
| cases | Werkseitiger Rücksendungsetikett auf SwitchCase-Mapping. | Func-Wörterbuch-String<<, SwitchCase>> | Yes |
| defaultCase | Factory für die Standard-Fallaktionen. | Func<IChainableNode> | No |
var switchAction = WorkflowActions.BuiltIn.Control.Switch(
on: () => trigger.TriggerOutput.Body,
cases: () => new Dictionary<string, SwitchCase>
{
["case1"] = new SwitchCase("value1",
WorkflowActions.BuiltIn.Compose(inputs: () => "Case 1").WithName("HandleCase1")),
["case2"] = new SwitchCase("value2",
WorkflowActions.BuiltIn.Compose(inputs: () => "Case 2").WithName("HandleCase2"))
},
defaultCase: () => WorkflowActions.BuiltIn.Compose(inputs: () => "Default").WithName("HandleDefault")
).WithName("RouteByValue");
Terminate
Erstellt eine Beenden-Aktion, die den Workflow mit einem bestimmten FlowStatus und einer optionalen Nachricht stoppt.
IWorkflowAction Terminate(Expression<Func<FlowStatus>> status, Expression<Func<string>> message = null)
| Name | Beschreibung | Typ | Erforderlich |
|---|---|---|---|
| status | Ausdruck für den Beendigungsstatus. | Ausdruck<Func<FlowStatus>> | Yes |
| message | Ausdruck für Kündigungsnachricht. | Ausdrucks-Func-String<<>> | No |
var terminate = WorkflowActions.BuiltIn.Control.Terminate(
status: () => FlowStatus.Failed,
message: () => "Critical error occurred").WithName("StopWorkflow");
Verwandte Inhalte
- AgentToolContext-Klassendefinition
- IChainableNode-Schnittstellendefinition
- 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
- WorkflowFactory-Klassendefinition
- WorkflowManagedActions-Klassendefinition
- WorkflowManagedTriggers Klassendefinition
- WorkflowProviderExtensions-Klassendefinition
- WorkflowTriggerBase-Klassendefinition
- WorkflowTriggers Klassendefinition
- WorkflowVariableActions Klassendefinition