Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Namespace: Microsoft.Azure. Workflows.Sdk
Fornece métodos de fábrica para criar ações de fluxo de controlo que ramificam, agrupam, repetem ou param a execução. Acede a esta classe através do 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
Cria uma ação Scope que agrupa ações aninhadas numa única IWorkflowAction.
IWorkflowAction Scope(Func<IChainableNode> actions)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| actions | Factory que constrói o grafo de ações aninhado. | Func<IChainableNode> | Sim |
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
Cria uma ação condicional que avalia uma expressão booleana e encaminha a execução para um de dois ramos.
IWorkflowAction Condition(Expression<Func<bool>> expression, Func<IChainableNode> trueBranch, Func<IChainableNode> falseBranch)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| expressão | Expressão booleana para avaliar. | Função<de expressão<bool>> | Sim |
| trueBranch | Fábrica para as verdadeiras ações ramificadas. | Func<IChainableNode> | Sim |
| falseBranch | Fábrica para as ações de ramificação falsa. | Func<IChainableNode> | Sim |
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
Cria uma ação em loop que itera sobre uma coleção e executa o grafo de ações fornecido para cada item.
IWorkflowAction ForEach(Expression<Func<JToken>> items, Func<JToken, IChainableNode> actions)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| items | Expressão para a coleção iterar. | Função de Expressão<<JToken>> | Sim |
| actions | A fábrica recebe o item atual e devolve um gráfico de ação. | Func<JToken, IChainableNode> | Sim |
var forEach = WorkflowActions.BuiltIn.Control.ForEach(
items: () => JArray.Parse("[\"one\",\"two\"]"),
actions: (item) => WorkflowActions.BuiltIn.Compose(inputs: () => $"Item: {item}").WithName("ProcessItem")
).WithName("LoopItems");
Até
Cria uma ação em loop que repete as suas ações aninhadas até que a expressão fornecida seja avaliada como verdadeira.
IWorkflowAction Until(Expression<Func<bool>> expression, Func<IChainableNode> actions)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| expressão | Condição de saída booleana. | Função<de expressão<bool>> | Sim |
| actions | Fábrica que constrói o gráfico de ação repetido. | Func<IChainableNode> | Sim |
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");
Alternar
Cria uma ação de comutação que avalia uma entrada e encaminha a execução para um SwitchCase correspondente ou para um ramal padrão.
IWorkflowAction Switch(Expression<Func<JToken>> on, Func<Dictionary<string, SwitchCase>> cases, Func<IChainableNode> defaultCase = null)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| on | Expressão para o valor a ativar. | Função de Expressão<<JToken>> | Sim |
| cases | Etiqueta de caixa de devolução de fábrica para o mapeamento do SwitchCase. | Cadeia de Dicionário<de Func<, SwitchCase>> | Sim |
| defaultCase | Factory para as ações padrão da caixa. | 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
Cria uma ação de terminar que para o fluxo de trabalho com um FlowStatus especificado e uma mensagem opcional.
IWorkflowAction Terminate(Expression<Func<FlowStatus>> status, Expression<Func<string>> message = null)
| Name | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| estado | Expressão para estado de cessação. | Função<de Expressão<FlowStatus>> | Sim |
| mensagem | Expressão para mensagem de terminação. | Cadeia de funções<de expressão<>> | No |
var terminate = WorkflowActions.BuiltIn.Control.Terminate(
status: () => FlowStatus.Failed,
message: () => "Critical error occurred").WithName("StopWorkflow");
Conteúdo relacionado
- Definição da Classe AgentToolContext
- Definição da Interface IChainableNode
- Definição da Interface de Ação IVariableWorkflow
- Definição da Interface IWorkflowAction
- Definição da Interface IWorkflowOperation
- Definição da Interface IWorkflowProvider
- Definição da Interface IWorkflowTrigger
- Definição da Classe OperationChain
- Definição de Interfaces de Ação de Fluxo de Trabalho Tipado
- Definição de Interfaces de Gatilho de Fluxo de Trabalho Tipado
- Definição da Classe WorkflowActionBase
- Definição da Classe WorkflowActions
- Definição da Classe WorkflowBuiltInActions
- Definição de Classe WorkflowBuiltInTriggers
- Definição de Classe WorkflowContext
- Definição de Classe WorkflowFactory
- Definição da Classe WorkflowManagedActions
- Definição de Classe WorkflowManagedTriggers
- Definição de Classe WorkflowProviderExtensions
- Definição da Classe WorkflowTriggerBase
- Definição de Classe WorkflowTriggers
- Definição da Classe WorkflowVariableActions