Kør kode
Handlingen Kør kode udfører JavaScript. Du kan overføre data fra tidligere trin i workflowet som input i handlingen Kør kode, og returværdier, der skal anvendes i de efterfølgende trin.
På denne side
Felter
Handlingen Kør kode indeholder følgende felter.
Felt | Beskrivelse |
---|---|
Input | Påkrævet. En GraphQL-forespørgsel om at bruge data fra tidligere trin som input i handlingen Kør kode. |
Output | Påkrævet. En gengivelse af de data, der returneres af handlingen, angivet i GraphQL Schema Definition Language (SDL). |
Kode | Påkrævet. Det JavaScript, som handlingen Kør kode vil udføre. |
Inputdata
Inputdata kan overføres fra trin, der ligger inden handlingen Kør kode. Hvis du vil inkludere disse data, kan du skrive en GraphQL-forespørgsel i feltet Input. De data, der returneres fra forespørgslen, er tilgængelige som input
-argumentet for funktionen, der er markeret med export default
, også kaldet main
.
Inputforespørgslen er en forespørgsel på Flow-miljødata, ikke en forespørgsel til Shopify Admin API’en. Det betyder, at du ikke kan indsætte en Shopify-forespørgsel i inputdataene. Flow håndterer desuden edges
og nodes
i forespørgslen, så du behøver ikke at føje disse eller anden sideskift-syntaks til din forespørgsel.
Eksempel på et input, der får en ordrebemærkning og titlen på en varelinje:
Disse data konverteres til en input
-variabel, der kan bruges i koden:
Input kan også destruktureres i funktionssignaturen:
Outputdata
Handlingen Kør kode kan returnere tilpassede data. Hvis du vil definere den type af data, som koden returnerer, skal du bruge feltet Output og GraphQL Schema Definition Language (SDL). Hvis du f.eks. vil returnere en streng kaldet giftMessage
og et tal kaldet totalGifts
:
Kommentarerne er valgfrie, men de bruges til at beskrive dataene i Flows brugergrænseflade. Hvis du vil udlæse disse data i JavaScript-koden, skal du returnere et objekt, der matcher typen:
Du kan også definere en tilpasset type for at returnere mere komplekse data. Hvis du f.eks. vil returnere en type kaldet Gift
, der indeholder en streng kaldet message
og et tal kaldet amount
:
Hvis du vil tilgå disse data i trinnene efter denne handling, skal du bruge en variabel kaldet Kør kode, som skrives i henhold til det Output
-skema, du definerer i konfigurationen af handlingen Kør kode. Du kan både bruge denne variabel i betingelser og handlinger.
Console.log
Til fejlfindingsformål kan du bruge console.log
til at outputte data til Flows kørselslog for workflows. Outputtet vil være synligt i kørselsloggen for workflowet. Følgende er f.eks. gyldige:
Du kan ikke bruge console.info
, console.error
eller andre funktioner i handlingen Kør kode.
Eksempel
Du kan finde eksempler på Kør kode-handlingen i Flow-lageret med eksempler.
Begrænsninger
Handlingen Kør kode har følgende begrænsninger:
- Handlingen Kør kode understøtter ECMA2020 JavaScript. Den understøtter ikke NodeJS- eller CommonJS-API'erne eller import af moduler.
- Din kode kan ikke foretage http-kald (
fetch
). - Tilfældige og klokkeslætsbaserede funktioner kan ikke anvendes. Datodata, som f.eks.
scheduledAt
ogcreatedAt
, kan overføres som et input. - Console.log logger ikke i browserkonsollen.
Følgende begrænsninger håndhæves også:
- Forespørgslen for inputdata er begrænset til 5.000 tegn.
- Skemaet for outputdata er begrænset til 5.000 tegn.
- Nytteoutputdata og output for Console.log er begrænset til 50 KB kombineret.
- Koden må ikke være længere end 50.000 tegn.
- Den samlede varighed for udførelse er begrænset til 5 sekunder.
- Hukommelsesforbruget er begrænset til 10 MB.
Plan
Flow-teamet planlægger at føje flere funktioner til Kør kode-handlingen med tiden. Nedenstående tabel angiver de planlagte forbedringer og deres forventede leveringsdatoer.
Forbedring | Beskrivelse | Forventet leveringsdato |
---|---|---|
Logføring | Brug `console.log` for at udlæse data til kørselsloggen for fejlfinding. | Udført. |
Eksterne API-kald | Brug JavaScripts fetch-kommando til at kalde API’er. | 3. kvartal 2024 |
Feedback
Handlingen Kør kode er en ny type trin i Shopify Flow. Hvis du har feedback eller spørgsmål, kan du kommentere på dette Flow-opslag i fællesskabet.