Kjør kode
Handlingen Kjør kode kjører Javascript. Du kan sende data fra tidligere trinn i arbeidsflyten som inndata til handlingen Kjør kode, og returnere verdier som kan brukes i påfølgende trinn.
På denne siden
Felter
Handlingen Kjør kode inneholder følgende felter.
Felt | Beskrivelse |
---|---|
Overtre | Obligatorisk. En GraphQL-spørring for å bruke data fra tidligere trinn som inndata til handlingen Kjør kode. |
Utdata | Obligatorisk. En representasjon av dataene som skal returneres av handlingen, definert i GraphQLs skjemadefinisjonsspråk (SDL). |
Kode | Obligatorisk. JavaScript-koden som skal kjøres av handlingen Kjør kode. |
Inndata
Inndata kan sendes fra trinn som skjer før handlingen Kjør kode kjøres. For å inkludere disse dataene, kan du skrive en GraphQL-spørring i feltet Inndata. Dataene som returneres fra spørringen vil være tilgjengelig som input
-argument til funksjonen merket med export default
. Du trenger ikke å håndtere paginering eller å bruke edges
og nodes
i spørringen, da Flow håndterer dette for deg.
Et eksempel på inndata som henter en bestillingsmerknad og tittelen på en varelinje:
Disse dataene konverteres til en input
-variabel, som kan brukes i koden:
Inndata kan også destruktureres i funksjonssignaturen:
Utdata
Handlingen Kjør kode kan returnere egendefinerte data. For å definere typen data koden skal returnere, kan du bruke feltet Utdata og GraphQLs Skjemadefinisjonsspråk (SDL). For eksempel, for å returnere en streng med navnet giftMessage
og et tall med navnet totalGifts
:
Kommentarer er valgfrie, men brukes til å beskrive dataene i Flows brukergrensesnitt. For å returnere disse dataene i JavaScript-koden, må du returnere et objekt som samsvarer med typen:
Du kan også definere en egendefinert type for å returnere mer komplekse data. For eksempel, for å returnere en type med navnet Gift
, som inneholder en streng med navnet message
og et tall med navnet amount
:
For å bruke disse dataene i trinn som følger denne handlingen, kan du bruke variabelen Kjør kode, som skrives i henhold til Output
-skjemaet du definerer i konfigurasjonen av handlingen Kjør kode. Du kan bruke denne variabelen i både betingelser og handlinger.
Console.log
Du kan bruke console.log
for å sende data til Flows arbeidsflytlogg for feilsøking. Utdataene vil synes i arbeidsflytens kjørelogg. Følgende er for eksempel gyldige:
Du kan ikke bruke console.info
, console.error
eller andre funksjoner i handlingen Kjør kode.
Eksempel:
Eksempler på kodehandlingen finner du i Flows eksempelrepositorium.
Begrensninger
Handlingen Kjør kode har følgende begrensninger:
- Koden din kan ikke importere moduler.
- Koden din kan ikke kjøre http-anrop (
fetch
). - Tilfeldige og klokkebaserte funksjoner kan ikke brukes. Datoopplysninger, som
scheduledAt
ellercreatedAt
, kan sendes som inndata. - Console.log logger ikke til nettleserkonsollen.
I tillegg håndheves følgende begrensninger:
- Inndataspørringen er begrenset til 5000 tegn.
- Utdataskjema er begrenset til 5000 tegn.
- Nyttelast i utdata og utdata fra Console.log er begrenset til 50 kb sammenlagt.
- Koden kan ikke være lenger enn 50 000 tegn.
- Total varighet for kjøring er begrenset til 5 sekunder.
- Minnebruken er begrenset til 10 MB.
Veikart
Flow-teamet planlegger å tilføre funksjoner i handlingen Kjør kode over tid. Tabellen nedenfor oppsummerer planlagte forbedringer, og deres estimerte leveringsdatoer.
Forbedring | Beskrivelse | Estimert leveranse |
---|---|---|
Logging | Bruk «console.log» til å sende utdata til kjøreloggen for feilsøkingsformål. | Ferdig. |
Eksterne API-anrop | Bruk JavaScripts fetch til å anrope API-er. | Q3 2024 |
Tilbakemeldinger
Handlingen Kjør kode er en ny type trinn i Shopify Flow. Hvis du har tilbakemeldinger eller spørsmål, kan du kommentere i dette Flow-fellesskapsinnlegget.