Sdílet prostřednictvím


Přidání a spuštění kódu JavaScriptu pomocí pracovních postupů pro Azure Logic Apps

Platí pro: Azure Logic Apps (Consumption + Standard)

Pokud chcete provádět vlastní úlohy integrace vložené s pracovním postupem v Azure Logic Apps, můžete přímo přidat a spustit jednoduché fragmenty kódu JavaScriptu z pracovního postupu na webu Azure Portal. Pro tuto úlohu použijte akci Vložený kód s názvem Spustit javascriptový kód. Tato akce vrátí výsledek z fragmentu kódu, abyste mohli tento výstup použít v následných akcích pracovního postupu. Tato akce má také různá omezení podle toho, jestli máte pracovní postup Consumption nebo Standard a funguje nejlépe pro fragmenty kódu s následujícími atributy:

Akce Jazyk Jazyková verze Doba trvání spuštění Velikost dat Další poznámky
Spuštění javascriptového kódu JavaScript Standardní:
Node.js 16.x.x

Spotřeba:
Node.js 8.11.1

Další informace naleznete v tématu Standardní předdefinované objekty.
Dokončení za 5 sekund nebo méně Zpracovává data až 50 MB. – Nevyžaduje práci s akcemi proměnných, které akce nepodporuje.

- Nepodporuje funkci pro spouštění JavaScriptu require() .

Pokud chcete spustit kód, který těmto atributům nevyhovuje, můžete vytvořit a volat funkci pomocí Azure Functions.

Tato příručka ukazuje, jak akce funguje v ukázkovém pracovním postupu, který začíná triggerem Office 365 Outlooku . Pracovní postup se spustí, když přijde nový e-mail do přidruženého e-mailového účtu Outlooku. Ukázkový fragment kódu extrahuje všechny e-mailové adresy, které existují v textu e-mailu, a vrátí tyto adresy jako výstup, který můžete použít v následné akci.

Následující diagram znázorňuje zvýraznění z ukázkového pracovního postupu:

Požadavky

Přidání akce Spustit javascriptový kód

  1. Na webu Azure Portal otevřete prostředek aplikace logiky Consumption.

  2. V nabídce postranního panelu v části Vývojové nástroje vyberte návrháře workflow a otevřete workflow.

    Tyto kroky předpokládají, že váš pracovní postup už má aktivační událost.

    Tento příklad používá trigger Při přijetí nového e-mailu .

  3. Přidejte akci vloženého kódu s názvem Execute JavaScript Code do pracovního postupu podle obecných kroků pro přidání akce.

    Tento příklad přidá akci pomocí spouštěče Office 365 Outlook. Ve výchozím nastavení obsahuje akce ukázkový kód, včetně return příkazu.

    Snímek obrazovky znázorňující akci Spustit javascriptový kód s výchozím ukázkovým kódem

  4. Do pole Kód odstraňte vzorový kód a zadejte svůj kód. Napište kód, který byste dali do metody, ale bez podpisu metody.

    Návod

    Když je kurzor v poli Kód , zobrazí se seznam dynamického obsahu. I když tento seznam použijete později, můžete seznam prozatím ignorovat a nechat otevřený. Nevybírejte možnost Skrýt.

    Pokud začnete psát rozpoznané klíčové slovo, zobrazí se seznam automatického dokončování, abyste mohli vybrat z dostupných klíčových slov, například:

    Snímek obrazovky zobrazující pracovní postup Consumption, akci Spustit javascriptový kód a seznam automatického dokončování klíčových slov

    Následující příklad fragment kódu nejprve vytvoří proměnnou s názvem myResult , která ukládá regulární výraz, který určuje vzor, který se má shodovat se vstupním textem. Kód pak vytvoří proměnnou s názvem e-mail, do které se uloží základní obsah e-mailové zprávy z výstupů triggeru.

    Snímek obrazovky znázorňující pracovní postup Consumption, akci Spustit javascriptový kód a ukázkový kód, který vytváří proměnné

  5. Kurzorem zůstanete v poli Kód a výběrem ikony blesku otevřete seznam dynamického obsahu.

  6. V seznamu v části Při příchodu nového e-mailu vyberte vlastnost Text , která odkazuje na výstup triggeru s textem e-mailové zprávy.

    Snímek obrazovky znázorňující pracovní postup Consumption, akci Spustit JavaScript kód, seznam dynamického obsahu a vybranou vlastnost Tělo e-mailové zprávy

    V seznamu dynamického obsahu se zobrazují výstupy z triggeru a všechny předchozí akce, pokud se tyto výstupy shodují se vstupním formátem pole pro úpravy, které je aktuálně fokus. Tento seznam usnadňuje používání a odkazování na tyto výstupy z pracovního postupu. V tomto příkladu seznam zobrazuje výstupy z triggeru Outlooku, včetně vlastnosti Text e-mailové zprávy.

    Po výběru vlastnosti Body akce Spustit javascriptový kód přeloží token na objekt JSON jen pro workflowContext čtení, který může váš fragment použít jako vstup. Objekt workflowContext obsahuje vlastnosti, které kódu poskytují přístup k výstupům z triggeru a předchozích akcí v pracovním postupu, například vlastnost triggerubody, která se liší od základní vlastnosti e-mailové zprávy. Další informace o objektu workflowContext naleznete v tématu Odkaz aktivační událost a akce výstupy pomocí workflowContext objekt dále v tomto článku.

    Důležité

    Pokud fragment kódu odkazuje na názvy akcí, které obsahují operátor tečky (.), tyto odkazy musí tyto názvy akcí uzavřít do hranatých závorek ([]) a uvozovek ("), například:

    // Correct
    workflowContext.actions["my.action.name"].body

    // Incorrect
    workflowContext.actions.my.action.name.body

    V akci Spustit javascriptový kód také musíte přidat parametr Actions a pak do tohoto parametru přidat tyto názvy akcí. Další informace najdete v tématu Přidání závislostí jako parametrů do akce Spustit javascriptový kód dále v tomto článku.

  7. Chcete-li odlišit vlastnost Text e-mailové zprávyBody Přidáním koncového středníku (;) na konec dokončete příkaz kódu.

    Snímek obrazovky s pracovním postupem logické aplikace Consumption, akcí pro spuštění JavaScriptového kódu a přejmenovanou vlastností Tělo se zavíracím středníkem.

    Akce Spustit javascriptový kód nevyžaduje syntakticky příkazreturn. Zahrnutím return příkazu však můžete snadněji odkazovat na výsledky akce později v pracovním postupu pomocí tokenu výsledku v pozdějších akcích.

    V tomto příkladu vrátí fragment kódu výsledek voláním match() funkce, která najde všechny shody v textu e-mailové zprávy se zadaným regulárním výrazem. Pak můžete přidat akci Vytvořit tabulku HTML , která pomocí tokenu výsledku odkazuje na výsledky z akce Spustit javascriptový kód a vytvořit jeden výsledek.

    Snímek obrazovky znázorňující dokončený pracovní postup aplikace logiky Consumption

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

Odkaz na aktivační událost a výstupy akcí pomocí objektu workflowContext

Ze svého fragmentu kódu v návrháři můžete pomocí seznamu dynamického obsahu vybrat token, který odkazuje na výstup z triggeru nebo jakékoli předchozí akce. Když token vyberete, akce Spustit javascriptový kód tento token přeloží na objekt JSON jen workflowContext pro čtení. Tento objekt poskytuje kódu přístup k výstupům triggeru, všem předchozím akcím a pracovnímu postupu. Objekt používá následující strukturu a zahrnuje actions, triggera workflow vlastnosti, které jsou také objekty:

{
   "workflowContext": {
      "actions": {
         "<action-name-1>": @actions('<action-name-1>'),
         "<action-name-2>": @actions('<action-name-2>')
      },
      "trigger": {
         @trigger()
      },
      "workflow": {
         @workflow()
      }
   }
}

Následující tabulka obsahuje další informace o těchto vlastnostech:

Vlastnost Typ Popis
actions Kolekce objektů Výsledné objekty z předchozích akcí, které se spouští před spuštěním fragmentu kódu. Každý objekt má dvojici klíč-hodnota , kde je klíč názvem akce a hodnota je ekvivalentní výsledku volání funkce actions() s výrazem @actions('<action-name>') .

Název akce používá stejný název akce, který se zobrazí v podkladové definici pracovního postupu, který nahradí mezery (" ") v názvu akce podtržítky (_). Tato kolekce objektů poskytuje přístup k hodnotám vlastností akce z aktuální instance pracovního postupu.
trigger Objekt Výsledný objekt z triggeru, kde je výsledek ekvivalentem volání funkce trigger(). Tento objekt poskytuje přístup k hodnotám vlastností triggeru z aktuální instance pracovního postupu.
workflow Objekt Objekt pracovního postupu, který je ekvivalentem volání funkce workflow(). Tento objekt poskytuje přístup k hodnotám vlastností, jako je název pracovního postupu, ID spuštění atd. z aktuální instance pracovního postupu.

V příkladu workflowContext tohoto článku může mít objekt JSON následující ukázkové vlastnosti a hodnoty z triggeru Outlooku:

{
   "workflowContext": {
      "trigger": {
         "name": "When_a_new_email_arrives",
         "inputs": {
            "host": {
               "connection": {
                  "name": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Web/connections/office365"
               }
            },
            "method": "get",
            "path": "/Mail/OnNewEmail",
            "queries": {
               "includeAttachments": "False"
            }
         },
         "outputs": {
            "headers": {
               "Pragma": "no-cache",
               "Content-Type": "application/json; charset=utf-8",
               "Expires": "-1",
               "Content-Length": "962095"
            },
            "body": {
               "Id": "AAMkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgBGAAAAAABmZwxUQtCGTqSPpjjMQeD",
               "DateTimeReceived": "2019-03-28T19:42:16+00:00",
               "HasAttachment": false,
               "Subject": "Hello World",
               "BodyPreview": "Hello World",
               "Importance": 1,
               "ConversationId": "AAQkADY0NGZhNjdhLTRmZTQtNGFhOC1iYjFlLTk0MjZlZjczMWRhNgAQ",
               "IsRead": false,
               "IsHtml": true,
               "Body": "Hello World",
               "From": "<sender>@<domain>.com",
               "To": "<recipient-2>@<domain>.com;<recipient-2>@<domain>.com",
               "Cc": null,
               "Bcc": null,
               "Attachments": []
            }
         },
         "startTime": "2019-05-03T14:30:45.971564Z",
         "endTime": "2019-05-03T14:30:50.1746874Z",
         "scheduledTime": "2019-05-03T14:30:45.8778117Z",
         "trackingId": "1cd5ffbd-f989-4df5-a96a-6e9ce31d03c5",
         "clientTrackingId": "08586447130394969981639729333CU06",
         "originHistoryName": "08586447130394969981639729333CU06",
         "code": "OK",
         "status": "Succeeded"
      },
      "workflow": {
         "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>",
         "name": "<logic-app-workflow-name>",
         "type": "Microsoft.Logic/workflows",
         "location": "<Azure-region>",
         "run": {
            "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/providers/Microsoft.Logic/workflows/<logic-app-workflow-name>/runs/08586453954668694173655267965CU00",
            "name": "08586453954668694173655267965CU00",
            "type": "Microsoft.Logic/workflows/runs"
         }
      }
   }
}

Přidánízávislostch

V některých scénářích možná budete muset explicitně vyžadovat, aby akce Spustit javascriptový kód obsahovala výstupy z triggeru nebo akcí, které váš kód odkazuje jako závislosti. Pokud například kód odkazuje na výstupy, které nejsou k dispozici v době běhu pracovního postupu, musíte tento dodatečný krok provést. Během vytváření pracovního postupu modul Azure Logic Apps analyzuje fragment kódu a určí, jestli kód odkazuje na výstupy triggeru nebo akce. Pokud tyto odkazy existují, modul tyto výstupy automaticky zahrne. Pokud se v objektu workflowContext nenajde odkazovaný trigger nebo výstup akce v době běhu pracovního postupu, modul vygeneruje chybu. Pokud chcete tuto chybu vyřešit, musíte tuto aktivační událost nebo akci přidat jako explicitní závislost pro akci Spustit javascriptový kód . Dalším scénářem, který vyžaduje, abyste tento krok udělali, je situace, kdy workflowContext objekt odkazuje na název triggeru nebo akce, který používá operátor tečky (.).

Pokud chcete přidat trigger nebo akci jako závislost, přidejte parametry triggeru nebo akcí, které platí pro akci Spustit javascriptový kód. Pak přidáte názvy triggerů nebo akcí tak, jak se zobrazí v podkladové definici JSON pracovního postupu.

Poznámka:

Nemůžete přidávat operace proměnných, smyčky , jako jsou for each nebo Until, a indexy iterace jako explicitní závislosti.

Pokud chcete kód znovu použít, nezapomeňte vždy použít pole pro úpravy fragmentu kódu k odkazování na výstupy triggeru a akce. Váš kód tak obsahuje odkazy na přeložené tokeny, nikoli jen přidání triggeru nebo výstupu akce jako explicitních závislostí.

Předpokládejme například, že před fragment kódu v ukázkovém pracovním postupu předchází akce Odeslat schvalovací e-mail konektoru Office 365 Outlook. Následující příklad fragment kódu obsahuje odkaz na výstup SelectedOption z této akce.

V tomto příkladu musíte do parametru přidat pouze parametr Actions a pak do parametru přidat název Send_approval_emailJSON akce. Tímto způsobem určíte, že akce Spustit javascriptový kód explicitně obsahuje výstup z akce Odeslat schvalovací e-mail .

Vyhledání názvu JSON triggeru nebo akce

Než začnete, potřebujete název JSON pro trigger nebo akci v podkladové definici pracovního postupu.

  • Názvy v definici pracovního postupu používají podtržítko (_), nikoli mezeru.

  • Pokud název akce používá operátor tečky (.), zahrňte tento operátor, například:

    My.Action.Name

  1. V nabídce pracovního postupu v části Nástroje vyberte Kód a zobrazte definici JSON pracovního postupu. V objektu actions vyhledejte název akce.

    Je to například Send_approval_email název JSON pro akci Odeslat schvalovací e-mail .

    Snímek obrazovky znázorňující název akce ve formátu JSON

  2. Chcete-li se vrátit do zobrazení návrháře, v nabídce pracovního postupu v části Nástroje vyberte Návrhář.

  3. Teď přidejte název JSON do akce Spustit javascriptový kód .

Přidání názvu triggeru nebo akce do akce Spustit javascriptový kód

  1. V akci Spustit javascriptový kód otevřete seznam rozšířených parametrů .

  2. V seznamu parametrů vyberte následující parametry, které váš scénář vyžaduje.

    Parametr Popis
    Akce Zahrňte výstupy z předchozích akcí jako závislostí. Když vyberete tento parametr, zobrazí se výzva k zadání akcí, které chcete přidat.
    Spouštěč Zahrňte výstupy z triggeru jako závislosti. Když vyberete tento parametr, zobrazí se výzva, jestli se mají zahrnout výsledky triggeru. V seznamu aktivačních událostí tedy vyberte Ano.
  3. V tomto příkladu vyberte parametr Akce .

    Snímek obrazovky znázorňující akci Spustit javascriptový kód s vybraným parametrem Actions

  4. Do pole Akce – 1 zadejte název JSON akce.

    Snímek obrazovky zobrazující pole Položka akcí -1 a název JSON akce

  5. Pokud chcete přidat další název akce, vyberte Přidat novou položku.

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

Referenční dokumentace k akci

Další informace o struktuře a syntaxi akce Spustit javascriptový kód v základní definici pracovního postupu pomocí jazyka Definice pracovního postupu najdete v referenční části této akce.