Sdílet prostřednictvím


Přidávání a spouštění skriptů jazyka C# pomocí standardních pracovních postupů v Azure Logic Apps

Platí pro: Azure Logic Apps (Standard)

Pokud chcete provádět vlastní úlohy integrace s pracovním postupem Standard v Azure Logic Apps, můžete přímo přidávat a spouštět skripty jazyka C# z pracovního postupu. Pro tuto úlohu použijte akci Vložený kód s názvem Execute CSharp Script Code. Tato akce vrátí výsledky ze skriptu, abyste mohli tento výstup použít v následných akcích pracovního postupu.

Tato funkce poskytuje následující výhody:

  • Napište vlastní skripty v návrháři pracovního postupu, abyste mohli řešit složitější problémy s integrací bez nutnosti používat Azure Functions. Nejsou potřeba žádné jiné plány služeb.

    Tato výhoda zjednodušuje vývoj pracovních postupů a snižuje složitost a náklady při správě dalších služeb.

  • Vygenerujte vyhrazený soubor kódu, který poskytuje přizpůsobený skriptovací prostor v rámci pracovního postupu.

  • Nasaďte skripty společně s pracovními postupy.

Tento průvodce ukazuje, jak přidat akci do pracovního postupu a přidat kód skriptu jazyka C#, který chcete spustit.

Požadavky

  • Účet a předplatné Azure. Získejte bezplatný účet Azure.

  • Pracovní postup standardní aplikace logiky, do kterého chcete přidat skript jazyka C#. Pracovní postup už musí začínat triggerem. Další informace najdete v tématu Vytvoření ukázkových pracovních postupů standardní aplikace logiky.

    Pro svůj scénář můžete použít libovolný trigger, ale jako příklad tento průvodce používá trigger nazvaný Při přijetí požadavku HTTP a také akci Odpověď. Pracovní postup se spustí, když jiná aplikace nebo pracovní postup odešle požadavek na adresu URL koncového bodu triggeru. Ukázkový skript vrátí výsledky spuštění kódu jako výstup, který můžete použít v následných akcích.

Ukázkové scénáře

Následující seznam popisuje některé ukázkové scénáře, ve kterých můžete pomocí skriptu pomoct s určitými úlohami integrace:

  • Parsování a provádění transformací nebo manipulace s datovou částí nad rámec integrovaných výrazů a možností operací s daty Můžete například použít skript k vrácení upraveného schématu pro podřízené zpracování.

  • Správa prostředků Azure, jako jsou virtuální počítače, a jejich spuštění nebo krokování na základě určité obchodní logiky

  • Spusťte uloženou proceduru na SQL Serveru, který musí běžet podle plánu, a uložte výsledky na SharePointu.

  • Protokolujte chyby pracovního postupu s podrobnými informacemi uložením do Služby Azure Storage nebo e-mailem nebo upozorněte tým.

  • Zašifrujte a dešifrujte data tak, aby vyhovovala standardům zabezpečení rozhraní API.

  • Předání souboru do skriptu do souboru ZIP nebo rozbalení požadavku HTTP.

  • Agregace dat z různých rozhraní API a souborů za účelem vytváření denních sestav

Důležité informace

  • Azure Portal uloží váš skript jako soubor skriptu jazyka C# (.csx) do stejné složky jako soubor workflow.json , který uloží definici JSON pro váš pracovní postup a nasadí ho do prostředku aplikace logiky spolu s definicí pracovního postupu. Azure Logic Apps tento soubor zkompiluje, aby byl skript připravený ke spuštění.

    Formát souboru .csx umožňuje psát méně "často používané" a soustředit se jen na psaní funkce jazyka C#. Soubor .csx můžete přejmenovat pro snadnější správu během nasazování. Při každém přejmenování skriptu však nová verze přepíše předchozí verzi.

  • Skript je místní pro pracovní postup. Pokud chcete použít stejný skript v jiných pracovních postupech, zobrazte soubor skriptu v konzole KuduPlus a zkopírujte skript, který chcete použít v jiných pracovních postupech.

Omezení

Název Omezení Notes
Doba trvání spuštění skriptu 10 minut Pokud máte scénáře, které potřebují delší dobu trvání, použijte možnost zpětné vazby k produktu a poskytněte další informace o vašich potřebách.
Velikost výstupu 100 MB Velikost výstupu závisí na limitu velikosti výstupu pro akce, což je obecně 100 MB.

Přidání akce Spustit kód skriptu CSharp

  1. Na webu Azure Portal otevřete prostředek aplikace logiky Standard a pracovní postup v návrháři.

  2. V návrháři přidejte do pracovního postupu akci Operace vloženého kódu s názvem Execute CSharp Script Code.

  3. Jakmile se otevře podokno s informacemi o akci, aktualizujte na kartě Parametry v poli Soubor kódu předem vyplněný ukázkový kód vlastním kódem skriptu.

    Následující příklad ukazuje kartu Parametry akce s kódem ukázkového skriptu:

    Snímek obrazovky s webem Azure Portal, návrhářem standardního pracovního postupu, triggerem požadavku, akcí spustit kód skriptu CSharp s otevřeným podoknem informací a akcí Odpovědi Informační podokno ukazuje ukázkový skript jazyka C#.

    Následující příklad ukazuje vzorový kód skriptu:

    /// Add the required libraries.
    #r "Newtonsoft.Json"
    #r "Microsoft.Azure.Workflows.Scripting"
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Microsoft.Extensions.Logging;
    using Microsoft.Azure.Workflows.Scripting;
    using Newtonsoft.Json.Linq;
    
    /// <summary>
    /// Executes the inline C# code.
    /// </summary>
    /// <param name="context">The workflow context.</param>
    /// <remarks> The entry-point to your code. The function signature should remain unchanged.</remarks>
    public static async Task<Results> Run(WorkflowContext context, ILogger log)
    {
        var triggerOutputs = (await context.GetTriggerResults().ConfigureAwait(false)).Outputs;
    
        /// Dereferences the 'name' property from the trigger payload.
        var name = triggerOutputs?["body"]?["name"]?.ToString();
    
        /// To get the outputs from a preceding action, you can uncomment and repurpose the following code.
        // var actionOutputs = (await context.GetActionResults("<action-name>").ConfigureAwait(false)).Outputs;
    
        /// The following logs appear in the Application Insights traces table.
        // log.LogInformation("Outputting results.");
        // var name = null;
    
        return new Results
        {
            Message = !string.IsNullOrEmpty(name) ? $"Hello {name} from CSharp action" : "Hello from CSharp action."
        };
    }
    
    public class Results
    {
        public string Message {get; set;}
    }
    

    Další informace naleznete v tématu "#r" – odkazování na externí sestavení.

  4. Po dokončení uložte pracovní postup.

Po spuštění pracovního postupu můžete zkontrolovat výstup pracovního postupu v Application Insights, pokud je povolený. Další informace najdete v tématu Zobrazení protokolů v Application Insights.

Import oborů názvů

Pokud chcete importovat obory názvů, proveďte to s klauzulí using jako obvykle. Následující seznam obsahuje automaticky importované obory názvů, takže jsou volitelné, abyste je mohli zahrnout do skriptu:

System
System.Collections.Generic
System.IO
System.Linq
System.Net.Http
System.Threading.Tasks
Microsoft.Azure.WebJobs
Microsoft.Azure.WebJobs.Host

Přidání odkazů na externí sestavení

Pokud chcete odkazovat na sestavení rozhraní .NET Framework, použijte direktivu #r "<assembly-name> , například:

/// Add the required libraries.
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.Workflows.Scripting;
using Newtonsoft.Json.Linq;

public static async Task<Results> Run(WorkflowContext context)
{
    <...>
}

public class Results
{
    <...>
}

Následující seznam obsahuje sestavení automaticky přidaná hostitelským prostředím Azure Functions:

mscorlib
System
System.Core
System.Xml
System.Net.Http
Microsoft.Azure.WebJobs
Microsoft.Azure.WebJobs.Host
Microsoft.Azure.WebJobs.Extensions
System.Web.Http
System.Net.Http.Formatting
Newtonsoft.Json

Zahrnout další soubory .csx

Pokud máte existující soubory .csx, můžete použít třídy a metody z těchto souborů v akci Execute CSharp Script Code . Pro tento úkol můžete použít direktivu #load v souboru execute_csharp_code.csx . Tato direktiva funguje pouze se soubory .csx, nikoli se soubory .cs. Máte následující možnosti:

  • Načtěte soubor .csx přímo do akce.

    Soubor .csx musí existovat ve stejné složce jako pracovní postup, který obsahuje akci Spustit kód skriptu CSharp . Podívejte se na načtení .csx přímo.

  • Odkaz na soubor .csx, který existuje ve sdílené složce pro vaši aplikaci logiky.

    Sdílená složka musí existovat v site/wwwroot/ cestě ke složce vaší logické aplikace. Viz Referenční soubor .csx ve sdílené složce.

Načíst soubor .csx přímo

Následující příklad souboru execute_csharp_code.csx ukazuje, jak pomocí direktivy načíst soubor skriptu s názvem loadscript.csx do akce Spustit kód #load:

// Add the required libraries
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
#load "loadscript.csx"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.Workflows.Scripting;
using Newtonsoft.Json.Linq;

/// <summary>
/// Execute the inline C# code.
/// </summary>
/// <param name="context">The workflow context.</param>
/// <remarks> This is the entry-point to your code. The function signature should remain unchanged.</remarks>
public static async Task<Results> Run(WorkflowContext context, ILogger log)
{
    var name = RunScript().ToString();
    return new Results
    {
        Message = !string.IsNullOrEmpty(name) ? $"Hello {name} from CSharp action" : "Hello from CSharp action."
    };
}

Odkaz na soubor .csx ve sdílené složce

Direktivu #load můžete použít k odkazování na soubor .csx, který existuje ve sdílené složce pro prostředek aplikace logiky. Tato shared složka musí existovat v site/wwwroot/ cestě ke složce pro prostředek logické aplikace.

Chcete-li přidat soubor skriptu do shared složky, postupujte takto:

  1. V Azure Portal otevřete svůj prostředek Standard pro logické aplikace.

  2. Na bočním panelu aplikace logiky v části Vývojové nástroje vyberte Rozšířené nástroje.

  3. Na stránce Rozšířené nástroje vyberte Přejít, čímž otevřete konzolu Kudu+ .

  4. Otevřete nabídku konzolyLadění a vyberte CMD.

  5. Přejděte do kořenového umístění aplikace logiky: web/wwwroot

  6. Přejděte do sdílené složky. Pokud tato složka neexistuje, vytvořte ji.

    1. Na panelu nástrojů vedle názvu složky vyberte znaménko plus (+) a pak vyberte Nová složka.

    2. Zadejte shared název složky.

    3. Otevřete novou shared složku.

  7. Přetáhněte soubor skriptu, který chcete importovat do shared složky.

Následující příklad souboru execute_csharp_code.csx ukazuje, jak odkazovat na nahraný soubor skriptu s názvem importcript.csx do akce Spustit kód skriptu CSharp pomocí direktivy #load :

// Add the required libraries
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
#load "..\shared\importscript.csx"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.Workflows.Scripting;
using Newtonsoft.Json.Linq;

/// <summary>
/// Execute the inline C# code.
/// </summary>
/// <param name="context">The workflow context.</param>
/// <remarks> This is the entry-point to your code. The function signature should remain unchanged.</remarks>
public static async Task<Results> Run(WorkflowContext context, ILogger log)
{
    var name = RunScript().ToString();
    return new Results
    {
        Message = !string.IsNullOrEmpty(name) ? $"Hello {name} from CSharp action" : "Hello from CSharp action." 
    }; 
} 

Import balíčků NuGet

NuGet je způsob, jak vytvářet, publikovat, hostovat, zjišťovat, využívat a sdílet knihovny kódu .NET označované jako balíčky. Akce Spustit kód skriptu CSharp podporuje schopnost importovat balíčky NuGet pomocí souboru function.prof umístěného v kořenové složce pracovního postupu, například:

site/wwwroot/<workflow-name>/workflow.json
site/wwwroot/<workflow-name>/function.proj

Můžete například použít následující soubor function.proj k importu balíčků NuGet do akce Spustit kód skriptu CSharp :

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
       <TargetFramework>netstandard2.0</TargetFramework>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="Serilog" Version="4.3.0" />
        <PackageReference Include="Serilog.Sinks.Console" Version="6.0.0" />
        <PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />
     </ItemGroup>
</Project>
  • Pro soubor skriptu jazyka C# (.csx) je nutné nastavit TargetFramework hodnotu netstandard2.0.

    Tento požadavek neznamená, že verze balíčků jsou omezené na netstandard2.0. Stále můžete odkazovat na balíčky pro net6.0 a novější.

  • Když se soubor function.proj inicializuje, musíte aplikaci logiky restartovat, aby modul runtime Azure Logic Apps mohl soubor rozpoznat a využívat.

Po dokončení restartování modul runtime automaticky získá požadovaná sestavení z NuGet.org a umístí sestavení do příslušné složky pro použití skriptu. I když tato sestavení nemusíte načítat ručně, nezapomeňte přímo odkazovat na balíčky v kódu pomocí standardních using příkazů, například:

using System.Net;
using Newtonsoft.Json;
using Serilog;

public static async Task<Output> Run(WorkflowContext context)
{
    Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Debug()
    .WriteTo.Console()
    .CreateLogger();

    // Write log messages
    Log.Information("Hello, Serilog with Console sink!");
    Log.Warning("This is a warning message.");

    var outputReturn = new Output()
    { 
        Message = "Utilizing my serilog logger."
    }; 

    return outputReturn;
} 

public class Output
{ 
    public string Message { get; set; }
} 

Výstup protokolu do datového proudu

Do metody zahrňte Run parametr s typem ILogger a log jako název, například:

public static void Run(WorkflowContext context, ILogger log)
{
    log.LogInformation($"C# script successfully executed.");
}

Výstup protokolu do Application Insights

Pokud chcete vytvořit vlastní metriky v Application Insights, použijte metodu LogMetric rozšíření na .ILogger

Následující příklad ukazuje volání ukázkové metody:

logger.LogMetric("TestMetric", 1234);

Přístup k triggerům pracovního postupu a výstupům akcí ve skriptu

Pokud chcete získat přístup k datům z pracovního postupu, použijte následující metody dostupné pro WorkflowContext objekt kontextu:

  • GetTriggerResults metoda

    Chcete-li získat přístup k výstupům triggeru, použijte tuto metodu k vrácení objektu, který představuje trigger a jeho výstupy, které jsou k dispozici prostřednictvím Outputs vlastnosti. Tento objekt má typ JObject a můžete použít hranaté závorky ([]) jako indexer pro přístup k různým vlastnostem ve výstupech triggeru.

    Následující příklad získá data z body vlastnosti ve výstupech triggeru:

    public static async Task<Results> Run(WorkflowContext context, ILogger log)
    {
    
        var triggerOutputs = (await context.GetTriggerResults().ConfigureAwait(false)).Outputs;
        var body = triggerOutputs["body"];
    
        return new Results;
    
    }
    
    public class Results
    {
        <...>
    }
    
  • GetActionResults metoda

    Chcete-li získat přístup k výstupům akce, použijte tuto metodu k vrácení objektu, který představuje akci a její výstupy, které jsou k dispozici prostřednictvím Outputs vlastnosti. Tato metoda přijímá název akce jako parametr. Následující příklad získá data z body vlastnosti ve výstupech z akce s názvem action-name:

    public static async Task<Results> Run(WorkflowContext context, ILogger log)
    {
    
        var actionOutputs = (await context.GetActionResults("action-name").ConfigureAwait(false)).Outputs;
        var body = actionOutputs["body"];
    
        return new Results;
    
    }
    
    public class Results
    {
        <...>
    }
    

Přístup k proměnným prostředí nebo hodnotě nastavení aplikace

Pokud chcete získat proměnnou prostředí nebo hodnotu nastavení aplikace, použijte metodu System.Environment.GetEnvironmentVariable , například:

public static void Run(WorkflowContext context, ILogger log)
{
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
    log.LogInformation(GetEnvironmentVariable("AzureWebJobsStorage"));
    log.LogInformation(GetEnvironmentVariable("WEBSITE_SITE_NAME"));
}

public static string GetEnvironmentVariable(string name)
{
    return name + ": " +
    System.Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
}

Vrácení dat do pracovního postupu

Pro tuto úlohu implementujte metodu Run s návratovým typem a return příkazem. Pokud chcete asynchronní verzi, implementujte metodu Run s atributem Task<return-type> a klíčovým slovem async . Návratová hodnota je nastavena na výstupní body vlastnost akce skriptu, na kterou pak mohou odkazovat všechny následné akce pracovního postupu.

Následující příklad ukazuje metodu Run s atributem Task<Results> , async klíčovým slovem a příkazem return :

public static async Task<Results> Run(WorkflowContext context, ILogger log)
{
    return new Results
    {
        Message = !string.IsNullOrEmpty(name) ? $"Returning results with status message."
    };
}

public class Results
{
    public string Message {get; set;}
}

Zobrazení souboru skriptu

  1. Na webu Azure Portal otevřete prostředek aplikace logiky Standard, který má požadovaný pracovní postup.

  2. Na bočním panelu aplikace logiky v části Vývojové nástroje vyberte Rozšířené nástroje.

  3. Na stránce Rozšířené nástroje vyberte Přejít, čímž otevřete konzolu KuduPlus.

  4. Otevřete nabídku konzolyLadění a vyberte CMD.

  5. Přejděte do kořenového umístění aplikace logiky: web/wwwroot

  6. Přejděte do složky pracovního postupu, která obsahuje soubor .csx, podél této cesty: site/wwwroot/{workflow-name}

  7. Vedle názvu souboru vyberte Upravit , abyste soubor otevřeli a zobrazili.

Zobrazení protokolů v Application Insights

  1. Na webu Azure Portal na bočním panelu aplikace logiky v části Nastavení vyberte Application Insights. Vyberte aplikaci logiky.

  2. Na bočním panelu Application Insights v části Monitorování vyberte Protokoly.

  3. Vytvořte dotaz pro vyhledání trasování nebo chyb při provádění pracovního postupu, například:

    union traces, errors
    | project TIMESTAMP, message
    

Chyby kompilace

V této verzi webový editor zahrnuje omezenou podporu Technologie IntelliSense, která se stále vylepšuje. Všechny chyby kompilace se zjistí při uložení pracovního postupu a modul runtime Azure Logic Apps zkompiluje váš skript. Tyto chyby se zobrazí v protokolech chyb vaší aplikace logiky.

Chyby za běhu

Pokud při spuštění skriptu dojde k chybě, Azure Logic Apps provede tyto kroky:

  • Předá chybu zpět do pracovního postupu.
  • Označí akci skriptu jako neúspěšnou.
  • Poskytuje objekt chyby, který představuje výjimku vyvolanou z vašeho skriptu.

Následující příklad ukazuje ukázkovou chybu:

Funkce CSharp_MyLogicApp-InvalidAction_execute_csharp_script_code.csx selhala s chybou Akce neexistující v pracovním postupu. při provádění. Ověřte platnost kódu funkce.

Ukázkové skripty

Následující ukázkové skripty provádějí různé úlohy, které můžete provést.

Dekomprese souboru ZIP textovými soubory z akce HTTP do pole řetězců

// Add the required libraries.
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Azure.Workflows.Scripting;
using System;
using System.IO;
using System.IO.Compression;
using System.Text;
using System.Collections.Generic;

/// <summary>
/// Executes the inline C# code.
/// </summary>
/// <param name="context">The workflow context.</param>
public static async Task<List<string>> Run(WorkflowContext context)
{

    var outputs = (await context.GetActionResults("HTTP_1").ConfigureAwait(false)).Outputs;
    var base64zipFileContent = outputs["body"]["$content"].ToString();

    // Decode base64 to bytes.
    byte[] zipBytes = Convert.FromBase64String(base64zipFileContent);

    List<string> fileContents = new List<string>();

    // Creates an in-memory stream from the zip bytes.
    using (MemoryStream zipStream = new MemoryStream(zipBytes))
    {

        // Extracts files from the zip archive.
        using (ZipArchive zipArchive = new ZipArchive(zipStream))
        {

            foreach (ZipArchiveEntry entry in zipArchive.Entries)
            {

                // Read each file's content.
                using (StreamReader reader = new StreamReader(entry.Open()))
                {
                    string fileContent = reader.ReadToEnd();
                    fileContents.Add(fileContent);
                }
            }
        }
    }

    return fileContents;
}

Šifrování dat pomocí klíče z nastavení aplikace

// Add the required libraries.
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Azure.Workflows.Scripting;
using Newtonsoft.Json.Linq;
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;

/// <summary>
/// Executes the inline csharp code.
/// </summary>
/// <param name="context">The workflow context.</param>
public static async Task<string> Run(WorkflowContext context)
{

    var compose = (await context.GetActionResults("compose").ConfigureAwait(false)).Outputs;
    var text = compose["sampleData"].ToString();

    return EncryptString(text);

}

public static string EncryptString(string plainText)
{

    var key = Environment.GetEnvironmentVariable("app-setting-key");
    var iv = Environment.GetEnvironmentVariable("app-setting-iv");

    using (Aes aesAlg = Aes.Create())
    {

        aesAlg.Key = Encoding.UTF8.GetBytes(key);
        aesAlg.IV = Encoding.UTF8.GetBytes(iv);
        ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

        using (MemoryStream msEncrypt = new MemoryStream())
        {

            using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
            {

                using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
                {
                    swEncrypt.Write(plainText);
                }

            }

             return Convert.ToBase64String(msEncrypt.ToArray());

        }
    }
}

WorkflowContext – třída

Představuje kontext pracovního postupu.

Metody

GetActionResult(string actionName)

Získá výsledek z konkrétní akce v pracovním postupu.

Asynchronní verze jako návratový typ používá úlohu<> , například:

Task<WorkflowOperationResult> GetActionResult(string actionName)

Parametry

actionName: Název akce.

Návraty

Asynchronní verze vrátí Task objekt, který představuje asynchronní operaci. Výsledek úkolu obsahuje WorkflowOperationResult objekt. Informace o WorkflowOperationResult vlastnosti objektu, viz WorkflowOperationResult třída.

RunTriggerResult()

Získá výsledek z triggeru v pracovním postupu.

Asynchronní verze jako návratový typ používá úlohu<> , například:

Task<WorkflowOperationResult> RunTriggerResult()

Parametry

Žádná

Návraty

Asynchronní verze vrátí Task objekt, který představuje asynchronní operaci. Výsledek úkolu obsahuje WorkflowOperationResult objekt. Informace o WorkflowOperationResult vlastnosti objektu, viz WorkflowOperationResult třída.

WorkflowOperationResult – třída

Představuje výsledek operace pracovního postupu.

Vlastnosti

Název Typ Popis
Jméno String Získá nebo nastaví název operace.
Vstupy JToken Získá nebo nastaví vstupy provádění operace.
Výstupy JToken Získá nebo nastaví výstupy provádění operace.
Počáteční čas DateTime? Získá nebo nastaví čas spuštění operace.
Koncový čas DateTime? Získá nebo nastaví čas ukončení operace.
OperationTrackingId String Získá nebo nastaví ID sledování operace.
Kód String Získá nebo nastaví stavový kód akce.
Stav String Získá nebo nastaví stav akce.
Chyba JToken Získá nebo nastaví chybu akce.
TrackedProperties JToken Získá nebo nastaví sledované vlastnosti akce.

Přidání a spuštění fragmentů kódu JavaScriptu