Executar código
A ação Run code (Executar código) executa JavaScript. É possível enviar dados gerados em etapas anteriores do fluxo de trabalho como entrada na ação Run code (Executar código) e receber como saída os valores a serem usados nas etapas posteriores.
Nesta página
Campos
A ação Run code (Executar código) contém os campos a seguir.
Campo | Descrição |
---|---|
Entrada | Obrigatório. Uma consulta GraphQL para usar dados de etapas anteriores como entrada na ação Run code (Executar código). |
Saída | Obrigatório. Uma representação dos dados a serem retornados pela ação, na linguagem de definição de esquema (SDL, na sigla em inglês) do GraphQL. |
Código | Obrigatório. O JavaScript que a ação Run code (Executar código) vai executar. |
Dados de entrada
É possível usar dados de entrada de etapas que ocorrem antes da ação Run code ("Executar código"). Para incluí-los, escreva uma consulta GraphQL no campo Definir entradas. Os dados retornados pela consulta ficarão disponíveis como o argumento input
para a função marcada com export default
, chamada de main
por convenção.
A consulta inserida é para dados do ambiente Flow, e não para a API Shopify Admin. Por isso, não é possível inserir uma consulta da Shopify nos dados de entrada. Além disso, o Flow manipula edges
e nodes
na consulta, então você não precisa adicioná-los nem usar outra sintaxe de paginação.
Confira um exemplo de entrada que providencia as observações do pedido e o título de um item de linha:
Esses dados são convertidos em uma variável input
que pode ser usada no código:
Também é possível desestruturar as entradas na assinatura da função:
Dados de saída
A ação Run code (Executar código) pode retornar dados personalizados. Para definir o tipo de dados que o código vai retornar, use o campo Definir saídas e a linguagem de definição de esquema (SDL, na sigla em inglês) do GraphQL. Por exemplo, para retornar uma string giftMessage
e um número totalGifts
:
Os comentários são opcionais, mas serão usados para descrever os dados na IU do Flow. Para gerar a saída dos dados no código JavaScript, retorne um objeto que coincida com o tipo:
Também é possível definir um tipo personalizado para retornar dados mais complexos. Por exemplo, para retornar um tipo Gift
que contenha uma string message
e um número amount
:
Para acessar esses dados nas etapas posteriores à ação, use a variável Run code (Executar código), que será digitada de acordo com o esquema Output
definido na configuração da ação Run code (Executar código). Essa variável pode ser usada em condições e em ações.
Console.log
Use o console.log
para enviar dados ao log de execução do fluxo de trabalho do Flow para fins de solução de problemas. A saída ficará visível no log de execução do fluxo de trabalho. Por exemplo, são válidos:
Não foi possível usar console.info
, console.error
ou outras funções na ação Run code (" Executar código").
Exemplo
Confira exemplos da ação "Run code" (Executar código) no repositório de exemplos do Flow.
Limitações
A ação Run code (Executar código) tem limitações, como:
- A ação "Run code" ("Executar código") é compatível com JavaScript ECMA2020 e não aceita APIs NodeJS, CommonJS ou de importação de módulos.
- O código não pode fazer chamadas HTTP (
fetch
). - Não é possível usar funções que dependem de aleatoriedade ou do tempo. Os dados de data, como
scheduledAt
oucreatedAt
, podem ser passados como entrada. - Console.log não faz login no console do navegador.
Além disso, estes limites são aplicados:
- A consulta de dados de entrada é limitada a 5 mil caracteres.
- O esquema de dados de saída é limitado a 5 mil caracteres.
- A capacidade de pagamento e a saída de Console.log são limitadas a 50 kB combinados.
- O código não pode ter mais de 50 mil caracteres.
- A duração total da execução é limitada a 5 segundos.
- O uso de memória é limitado a 10 MB.
Roteiro
A equipe do Flow tem planos para adicionar funcionalidades à ação Run code (Executar código) ao longo do tempo. Confira na tabela a seguir as melhorias programadas e as estimativas para datas de entrega.
Melhoria | Descrição | Entrega prevista |
---|---|---|
Registro | Use `console.log` para exibir dados no log de execução para fins de solução de problemas. | Feito. |
Chamadas externas à API | Use a busca por JavaScript para chamar APIs. | Terceiro trimestre de 2024 |
Feedback
A ação "Run code" (Executar código) é um novo tipo de etapa no Shopify Flow. Caso você queira dar feedback ou fazer perguntas, comente nesta postagem na comunidade do Flow.