Code uitvoeren
Met de actie Code uitvoeren voer je JavaScript-code uit. Je kunt gegevens van vorige stappen in de workflow doorgeven als invoer voor de actie Code uitvoeren en retourwaarden die je wil gebruiken in de volgende stappen.
Op deze pagina
Velden
De actie Code uitvoeren bevat de volgende velden.
Veld | Beschrijving |
---|---|
Invoer | Vereist. Een GraphQL-query om gegevens van vorige stappen te gebruiken als invoer voor de actie Code uitvoeren. |
Uitvoer | Vereist. Een weergave van de gegevens die door de actie worden geretourneerd, gedefinieerd in de Schema Definition Language (SDL) van GraphQL. |
Code | Vereist. Het JavaScript dat je uitvoert met de actie Code uitvoeren. |
Invoergegevens
Invoergegevens kunnen worden doorgegeven vanuit stappen die plaatsvinden voor de actie Code uitvoeren. Als je deze gegevens wil opnemen, kun je een GraphQL-query schrijven in het veld Invoer. De gegevens die uit de query worden geretourneerd, zijn beschikbaar als het argument input
voor de functie die is gemarkeerd met export default
, die volgens de conventie main
heet.
De invoerquery is een query voor Flow-omgevingsgegevens, niet een query aan de Shopify Admin API. Je kunt daarom geen Shopify-query in de invoergegevens invoegen. Flow verwerkt ook de edges
en nodes
in de query. Je hoeft deze of andere syntax niet aan je query toe te voegen.
Een voorbeeldinvoer waarmee je een opmerking bij een bestelling en de titel van een orderregel krijgt:
Deze gegevens worden geconverteerd naar een input
-variabele die je kunt gebruiken in de code:
Je kunt invoer ook destructureren in de functiehandtekening:
Uitvoergegevens
De actie Code uitvoeren kan aangepaste gegevens retourneren. Gebruik het veld Uitvoer en de Schema Definition Language (SDL) van GraphQL om het type gegevens te definiëren dat de code retourneert. Als je bijvoorbeeld een tekenreeks met de naam giftMessage
en een nummer met de naam totalGifts
wil retourneren:
De opmerkingen zijn optioneel, maar worden gebruikt om de gegevens in de Flow UI te beschrijven. Retourneer een object dat overeenkomt met het type om deze gegevens uit te voeren in de JavaScript-code:
Je kunt ook een aangepast type definiëren om complexere gegevens te retourneren. Als je bijvoorbeeld een type met de naam Gift
dat een tekenreeks met de naam message
en een nummer met de naam amount
bevat, wil retourneren:
Gebruik de variabele Code uitvoeren die wordt getypt op basis van het Output
-schema dat je definieert in de actieconfiguratie Code uitvoeren, voor toegang tot deze gegevens in stappen die deze actie volgen. Je kunt deze variabele zowel in voorwaarden als in acties gebruiken.
Console.log
Met console.log
kun je gegevens voor probleemoplossing uitvoeren naar het workflowuitvoeringslogboek van Flow. De uitvoer is zichtbaar in het uitvoeringslogboek van de workflow. Het volgende is bijvoorbeeld geldig:
Je kunt console.info
, console.error
of andere functies niet gebruiken bij de actie Code uitvoeren.
Voorbeeld
Voorbeelden van de actie Code uitvoeren vind je in de opslagplaats met Flow-voorbeelden.
Beperkingen
De actie Code uitvoeren heeft de volgende beperkingen:
- De actie Code uitvoeren ondersteunt JavaScript ECMA2020. De actie ondersteunt de API's NodeJS of CommonJS, of het importeren van modules niet.
- De code kan geen HTTP-aanroepen doen (
fetch
). - Willekeurige en op de tijd gebaseerde functies kunnen niet worden gebruikt. Datumgegevens, zoals een
scheduledAt
ofcreatedAt
kunnen worden doorgegeven als invoer. - Console.log wordt niet op de browserconsole gelogd.
Bovendien worden de volgende beperkingen opgelegd:
- De query voor invoergegevens is beperkt tot 5000 tekens.
- Het schema voor uitvoergegevens is beperkt tot 5000 tekens.
- De uitvoergegevens voor payload en Console.log zijn samen beperkt tot 50 kB.
- De code mag niet langer zijn dan 50.000 tekens.
- De totale duur van de uitvoering is beperkt tot 5 seconden.
- Het geheugengebruik is beperkt tot 10 MB.
Stappenplan
Het Flow-team is van plan om in de loop van de tijd mogelijkheden toe te voegen aan de actie Code uitvoeren. In de volgende tabel worden de geplande verbeteringen en de geschatte leverdatums beschreven.
Verbetering | Beschrijving | Verwachte bezorging |
---|---|---|
Logboekregistratie | Gebruik 'console.log' om gegevens uit te voeren naar het uitvoeringslogboek voor probleemoplossing. | Gedaan. |
Externe API-aanroepen | Gebruik de fetch van JavaScript om API's aan te roepen. | Q3 2024 |
Feedback
De actie Code uitvoeren is een nieuw type stap in Shopify Flow. Als je feedback en vragen hebt, reageer je op dit Flow-communitybericht.