Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Namespace: Microsoft.Azure. Workflows.Sdk
Fornisce metodi di fabbrica per creare azioni di flusso di controllo che diramano, raggruppano, ripetono o fermano l'esecuzione. Accedi a questa classe tramite WorkflowBuiltInActions usando WorkflowActions.BuiltIn.Control.
Usage
// 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);
Methods
Scope
Crea un'azione Scope che raggruppa le azioni annidate in un'unica IWorkflowAction.
IWorkflowAction Scope(Func<IChainableNode> actions)
| Name | Description | TIPO | Required |
|---|---|---|---|
| actions | Factory che costruisce il grafico di azione annidato. | Func<IChainableNode> | Sì |
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");
Condition
Crea un'azione condizionale che valuta un'espressione booleana e invoglia l'esecuzione verso uno dei due rami.
IWorkflowAction Condition(Expression<Func<bool>> expression, Func<IChainableNode> trueBranch, Func<IChainableNode> falseBranch)
| Name | Description | TIPO | Required |
|---|---|---|---|
| expression | Espressione booleana da valutare. | Funzione di espressione<<bool>> | Sì |
| trueBranch | Fabbrica per le vere azioni di ramo. | Func<IChainableNode> | Sì |
| false Branch | Factory per le false branch action. | Func<IChainableNode> | Sì |
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
Crea un'azione a ciclo che itera su una collezione ed esegue il grafico d'azione fornito per ogni elemento.
IWorkflowAction ForEach(Expression<Func<JToken>> items, Func<JToken, IChainableNode> actions)
| Name | Description | TIPO | Required |
|---|---|---|---|
| items | Espressione per la raccolta da iterare. | Funzione<di espressione<JToken>> | Sì |
| actions | La fabbrica riceve l'articolo corrente e restituisce un grafico d'azione. | Func<JToken, IChainableNode> | Sì |
var forEach = WorkflowActions.BuiltIn.Control.ForEach(
items: () => JArray.Parse("[\"one\",\"two\"]"),
actions: (item) => WorkflowActions.BuiltIn.Compose(inputs: () => $"Item: {item}").WithName("ProcessItem")
).WithName("LoopItems");
Until
Crea un'azione a ciclo che ripete le sue azioni annidate finché l'espressione fornita non si valuta come vera.
IWorkflowAction Until(Expression<Func<bool>> expression, Func<IChainableNode> actions)
| Name | Description | TIPO | Required |
|---|---|---|---|
| expression | Condizione di uscita booleana. | Funzione di espressione<<bool>> | Sì |
| actions | Factory che costruisce il grafico d'azione ripetuto. | Func<IChainableNode> | Sì |
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");
Interruttore
Crea un'azione di commutazione che valuta un input e invoglia l'esecuzione verso uno SwitchCase corrispondente o un ramo predefinito.
IWorkflowAction Switch(Expression<Func<JToken>> on, Func<Dictionary<string, SwitchCase>> cases, Func<IChainableNode> defaultCase = null)
| Name | Description | TIPO | Required |
|---|---|---|---|
| on | Espressione per il valore da attivare. | Funzione<di espressione<JToken>> | Sì |
| cases | Etichetta di ritorno di fabbrica al case mapping SwitchCase. | Stringa Dizionario<Func<, SwitchCase>> | Sì |
| Caso predefinito | Factory per le azioni predefinite del case. | 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
Crea un'azione di terminazione che interrompe il flusso di lavoro con un FlowStatus specificato e un messaggio opzionale.
IWorkflowAction Terminate(Expression<Func<FlowStatus>> status, Expression<Func<string>> message = null)
| Name | Description | TIPO | Required |
|---|---|---|---|
| status | Espressione per stato di cessazione. | Funzione<di espressione<FlowStatus>> | Sì |
| message | Espressione per messaggio di terminazione. | Stringa func<di espressione<>> | No |
var terminate = WorkflowActions.BuiltIn.Control.Terminate(
status: () => FlowStatus.Failed,
message: () => "Critical error occurred").WithName("StopWorkflow");
Contenuto correlato
- Definizione della classe AgentToolContext
- Definizione dell'interfaccia IChainableNode
- Definizione dell'Interfaccia IVariableWorkflowAction
- Definizione dell'interfaccia IWorkflowAction
- Definizione dell'interfaccia IWorkflowOperation
- Definizione dell'interfaccia IWorkflowProvider
- Definizione dell'interfaccia IWorkflowTrigger
- Definizione della classe OperationChain
- Definizione delle Interfacce di Azione del Workflow Tipizzato
- Definizione delle Interfacce di Trigger del Flusso di Lavoro Tipizzato
- Definizione della classe WorkflowActionBase
- Definizione della classe WorkflowActions
- Definizione di classe WorkflowBuiltInActions
- Definizione di classe WorkflowBuiltInTriggers
- Definizione della classe WorkflowContext
- Definizione della classe WorkflowFactory
- Definizione della classe WorkflowManagedActions
- Definizione della classe WorkflowManagedTriggers
- Definizione di classe WorkflowProviderExtensions
- Definizione della classe WorkflowTriggerBase
- Definizione di classe WorkflowTriggers
- Definizione della classe WorkflowVariableActions