Classe WorkflowBuiltInActions

Namespace: Microsoft.Azure. Workflows.Sdk

Fornisce metodi di fabbrica per creare azioni di workflow integrate che si eseguono direttamente nel runtime di Logic Apps. Accedi a questa classe tramite WorkflowActions utilizzando WorkflowActions.BuiltIn per creare trasformazione dati, HTTP, risposte, workflow annidati, codice personalizzato e azioni agent.

Usage

// Built-in actions are accessed via WorkflowActions.BuiltIn
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello").WithName("Greet");
var http = WorkflowActions.BuiltIn.HttpAction(
    uri: () => new Uri("https://api.example.com"),
    method: () => HttpMethod.Post,
    requestBody: () => new { message = "test" }).WithName("PostData");
var response = WorkflowActions.BuiltIn.Response(
    responseBody: () => $"{http.Body}").WithName("Reply");

// Chain actions in a workflow
var trigger = WorkflowTriggers.BuiltIn.CreateHttpTrigger();
trigger.Then(compose).Then(http).Then(response);

Properties

Name Description TIPO Required
Controllo Ottiene la fabbrica per azioni di controllo del flusso come Scope, Condition, ForEach, Till, Switch e Terminate. WorkflowControlControlActions No
variables Ottiene la fabbrica per azioni variabili come inizializza, imposta, incremento, decrementazione e aggiunta. WorkflowVariableActions No

Methods

Compose

Crea un'azione Compose e restituisce un IOutputWorkflowAction<JToken> il cui output può essere riferito da azioni successive.

IOutputWorkflowAction<JToken> Compose(Expression<Func<string>> inputs)
Name Description TIPO Required
inputs Espressione per gli input da comporre. Stringa func<di espressione<>>
var compose = WorkflowActions.BuiltIn.Compose(inputs: () => "Hello World").WithName("Greet");

Compone T(input Funzione<> T di Espressione<)<>>

Crea un'azione Compose tipizzata e restituisce un IOutputWorkflowAction<T> per riferimenti di output fortemente tipizzati.

IOutputWorkflowAction<T> Compose<T>(Expression<Func<T>> input)
Name Description TIPO Required
Input Espressione per l'input tipizzato da comporre. Funzione di espressione<<T>>
var typed = WorkflowActions.BuiltIn.Compose<int>(input: () => 42).WithName("Answer");

HttpAction

Crea un'azione HTTP e restituisce un IBodyWorkflowAction<JToken> per chiamare endpoint esterni.

IBodyWorkflowAction<JToken> HttpAction(Expression<Func<Uri>> uri, Expression<Func<HttpMethod>> method, Expression<Func<object>> requestBody = null, Expression<Func<Dictionary<string, string>>> queries = null, Expression<Func<Dictionary<string, string>>> headers = null)
Name Description TIPO Required
Uri Espressione per l'URI della richiesta. Funzione<di espressione<Uri>>
method Espressione per il metodo HTTP. Funzione<di espressione<HttpMethod>>
requestBody Espressione per il corpo della richiesta. Oggetto func<di espressione<>> No
queries Espressione per i parametri della query. Stringa di dizionario<Func<di espressione<, stringa>>> No
headers Espressione per le intestazioni delle richieste. Stringa di dizionario<Func<di espressione<, stringa>>> No
var http = WorkflowActions.BuiltIn.HttpAction(
    uri: () => new Uri("https://api.example.com/data"),
    method: () => HttpMethod.Get,
    headers: () => new Dictionary<string, string> { ["Authorization"] = "Bearer token" })
    .WithName("CallAPI");

Risposta

Crea un'azione di risposta e restituisce un IBodyWorkflowAction<JToken> per inviare una risposta HTTP da un flusso di lavoro di richiesta.

IBodyWorkflowAction<JToken> Response(Expression<Func<HttpStatusCode>> statusCode = null, Expression<Func<object>> responseBody = null, Expression<Func<Dictionary<string, string>>> headers = null, Expression<Func<JToken>> schema = null)
Name Description TIPO Required
Codice di stato Espressione per il codice di stato HTTP. Expression<Func<HttpStatusCode>> No
Corpo della risposta Espressione per il corpo di risposta. Oggetto func<di espressione<>> No
headers Espressione per le intestazioni delle risposte. Stringa di dizionario<Func<di espressione<, stringa>>> No
schema Espressione per lo schema di risposta. Funzione<di espressione<JToken>> No
var response = WorkflowActions.BuiltIn.Response(
    statusCode: () => HttpStatusCode.OK,
    responseBody: () => "Success").WithName("SendResponse");

CustomCode<T>(Func<WorkflowContext, richiamo Task<T>> )

Crea un'azione di codice personalizzata e restituisce un IBodyWorkflowAction<T> che esegue C# inline su un WorkflowContext.

IBodyWorkflowAction<T> CustomCode<T>(Func<WorkflowContext, Task<T>> callback)
Name Description TIPO Required
callback Il callback asincrono per eseguire. Func<WorkflowContest, Task<T>>
var custom = WorkflowActions.BuiltIn.CustomCode<string>(async (context) =>
{
    var result = await context.GetTriggerResults();
    return "Processed";
}).WithName("RunCode");

NestedWorkflow

Crea un'azione di workflow annidata e restituisce un IBodyWorkflowAction<JToken> che invoca un altro workflow per nome di riferimento.

IBodyWorkflowAction<JToken> NestedWorkflow(Expression<Func<string>> workflowReferenceName, Expression<Func<object>> requestBody = null, Expression<Func<Dictionary<string, string>>> headers = null)
Name Description TIPO Required
workflowReferenceName Riferimento al nome del flusso di lavoro figlio. Stringa func<di espressione<>>
requestBody Richiedi il corpo per il flusso di lavoro del figlio. Oggetto func<di espressione<>> No
headers Richiedi le intestazioni per il flusso di lavoro figlio. Stringa di dizionario<Func<di espressione<, stringa>>> No
var nested = WorkflowActions.BuiltIn.NestedWorkflow(
    workflowReferenceName: () => "ChildWorkflow",
    requestBody: () => new { name = "test" }).WithName("CallChild");

Agente

Crea un AgentAction che invia messaggi prompt a un modello AI configurato per un flusso di lavoro agente.

AgentAction Agent(AgentModelType agentModelType, string deploymentId, AgentModelSettings agentModelSettings, string connectionName, Expression<Func<AgentPromptMessage[]>> messages)
Name Description TIPO Required
agentModelType Il modello di IA, come OpenAI. AgentModelType
deploymentId L'identificatore di deployment del modello. corda
agentModelSettings Configurazione per il modello agente. AgentModelSettings
Connectionname Il nome della connessione per il servizio AI. corda
messages Espressione per l'array dei messaggi di prompt. MessaggioPrompt di Espressione<Func<AgentePrompt[]>>
var agent = WorkflowActions.BuiltIn.Agent(
    agentModelType: AgentModelType.OpenAI,
    deploymentId: "gpt-4",
    agentModelSettings: new AgentModelSettings(),
    connectionName: "openai-connection",
    messages: () => new[] { new AgentPromptMessage { Role = "system", Content = "You are helpful" } });