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 najdete v tématu Standardní předdefinované objekty.
Skončí 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 require() funkci pro spuštění JavaScriptu.

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. Fragment ukázkového 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

  • Účet a předplatné Azure. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.

  • Pracovní postup aplikace logiky, do kterého chcete přidat fragment kódu. Pracovní postup už musí začínat triggerem.

    V příkladu tohoto článku se používá trigger Office 365 Outlook s názvem Při přijetí nového e-mailu.

    Pokud pracovní postup nemáte, projděte si následující dokumentaci:

  • Na základě toho, jestli máte pracovní postup aplikace logiky Consumption nebo Standard, zkontrolujte následující požadavky:

    • Pracovní postup Consumption

      • Node.js verze 8.11.10

      • Propojení s účtem integrace, prázdným nebo jiným způsobem z prostředku aplikace logiky

        Důležité

        Ujistěte se, že používáte účet integrace, který je vhodný pro váš případ použití nebo scénář.

        Například účty integrace úrovně Free jsou určené pouze pro průzkumné scénáře a úlohy, nikoli produkční scénáře, jsou omezené v využití a propustnosti a nejsou podporovány smlouvou o úrovni služeb (SLA).

        Jiné úrovně účtu integrace účtují náklady, ale zahrnují podporu SLA, nabízejí vyšší propustnost a mají vyšší limity. Přečtěte si další informace o úrovních, limitech a cenách účtů integrace.

    • Standardní pracovní postup

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

  1. Na webu Azure Portal otevřete pracovní postup aplikace logiky Consumption v návrháři.

  2. V návrháři přidejte do pracovního postupu akci Vložený kód s názvem Spustit javascriptový kód.

    Tento příklad přidá akci pod triggerem Office 365 Outlooku. 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

  3. 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.

    Tip

    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é

  4. S kurzorem stále v poli Kód najděte v otevřeném seznamu dynamického obsahu oddíl Při příchodu nového e-mailu a vyberte vlastnost Text , která odkazuje na text e-mailové zprávy.

    Snímek obrazovky znázorňující pracovní postup Consumption, akci Spustit javascriptový kód, seznam dynamického obsahu a vybranou vlastnost Text 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.

  5. Chcete-li odlišit vlastnost Text e-mailové zprávy, kterou jste vybrali od vlastnosti triggerubody, přejmenujte druhou body vlastnost na Body místo toho. Přidáním koncového středníku (;) na konec dokončete příkaz kódu.

    Snímek obrazovky s pracovním postupem aplikace logiky Consumption, akcí Spustit javascriptový kód a přejmenovanou vlastností Text s pravou 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. Akce Vytvořit tabulku HTML pak pomocí tokenu Výsledku odkazuje na výsledky z akce Spustit javascriptový kód a vytvoří jeden výsledek.

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

  6. 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 Type 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 Object 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 Object 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. Na panelu nástrojů návrháře pracovního postupu vyberte Zobrazení kódu. 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. Pokud se chcete vrátit do zobrazení návrháře, na panelu nástrojů zobrazení kódu 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 přidat nový 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.
    Trigger 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 Akce Položka -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.

Další kroky