Kör kod
Åtgärden Kör kod exekverar JavaScript. Du kan överföra data från tidigare steg i arbetsflödet som indata till åtgärden Kör kod och returvärden som ska användas i följande steg.
På den här sidan
Fält
Åtgärden Kör kod innehåller följande fält.
Fält | Beskrivning |
---|---|
Indata | Krävs. En GraphQL-fråga för att använda data från tidigare steg som indata till åtgärden Kör kod. |
Utdata | Krävs. En representation av de data som ska returneras av åtgärden, definierad i GraphQL:s schemadefinitionsspråk (SDL). |
Kod | Krävs. Det JavaScript som åtgärden Kör kod kommer att exekvera. |
Indata
Indata kan skickas från steg som inträffar innan åtgärden Kör kod. Inkludera dessa data genom att skriva en GraphQL-fråga i fältet Indata. Data som returneras från frågan blir tillgängliga som argumentet input
till den funktion som markerats med export default
. Den kallas main
enligt konventionen.
Inmatningsfrågan är en fråga för Flow-miljödata, inte en fråga till Shopify Admin API. Därför kan du inte infoga en Shopify-fråga i inmatningsdata. Flow hanterar också edges
och nodes
i frågan, så du behöver inte lägga till dessa eller annan sidnumreringssyntax i din fråga.
Exempel på indata som hämtar en orderanteckning och titeln på en post:
Data konverteras till en input
-variabel som kan användas i koden:
Indata kan också omstruktureras i funktionen signatur:
Utdata
Åtgärden Kör kod kan returnera anpassad data. Definiera vilken typ av data som koden kommer att returnera genom att använda fältet Utdata och GraphQL:s schemadefinitionsspråk (SDL). Exempelvis för att returnera en sträng som kallas giftMessage
och ett nummer som kallas totalGifts
:
Kommentarerna är valfria, men kommer användas för att beskriva data i Flow-användargränssnittet. Mata ut data i JavaScript-koden genom att returnera ett objekt som matchar typen:
Du kan även definiera en anpassad typ för att returnera mer komplexa data. Exempelvis för att returnera en typ som kallas Gift
som innehåller en sträng som kallas message
och ett nummer som kallas amount
:
Du kan komma åt data i steg som kommer efter den här åtgärden genom att använda variabeln Kör kod, som kommer att skrivas i enlighet med det Output
-schema som du definierar i konfigureringen av åtgärden Kör kod. Du kan använda den här variabeln i både villkor och åtgärder.
Console.log
Du kan använda console.log
för att mata ut data till Flows logg av arbetsflödeskörning för felsökningssyften. Utdata kommer att visas i arbetsflödets körningslogg. Följande är exempelvis giltiga:
Du kan inte använda console.info
, console.error
eller andra funktioner i åtgärden Kör kod.
Exempel
Exempel på åtgärden Kör kod kan hittas i Flow-exempelarkivet.
Begränsningar
Åtgärden Kör kod har följande begränsningar:
- Åtgärden "Kör kod" stöder ECMA2020 JavaScript. Den stödjer inte NodeJS- eller CommonJS-API:er, eller att importera moduler.
- Din kod kan inte göra http-anrop (
fetch
). - Slumpvisa och tidsbaserade funktioner kan inte användas. Datumdata, till exempel en
scheduledAt
ellercreatedAt
kan föras in som indata. - Console.log loggar inte till webbläsarkonsolen.
Dessutom tillämpas följande begränsningar:
- Indatafråga är begränsad till 5 000 tecken.
- Utdataschema är begränsat till 5 000 tecken.
- Nyttolast för utdata och Console.log-utdata är begränsat till sammanlagt 50 kb.
- Koden får inte vara längre än 50 000 tecken.
- Total körningsvaraktighet är begränsad till 5 sekunder.
- Minnesanvändning är begränsad till 10 MB.
Färdplan
Flow-teamet planerar att lägga till funktioner till åtgärden Kör kod över tid. Följande tabell beskriver de planerade förbättringarna och deras beräknade leveransdatum.
Förbättring | Beskrivning | Beräknad leverans |
---|---|---|
Loggning | Använd "console.log" för att mata ut data till Kör logg för felsökningsändamål. | Klart. |
Externa API-anrop | Använd JavaScripts hämtning för att anropa API:er. | K3 2024 |
Feedback
Åtgärden Kör kod är en ny typ av steg i Shopify Flow. Kommentera detta Flow community-inlägg om du har feedback eller frågor.