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
. Não é necessário fazer a paginação nem usar edges
e nodes
na consulta, pois o Flow cuida disso para você.
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.
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:
- O código não pode importar módulos.
- O código não pode fazer chamadas HTTP (
fetch
). - O código não pode usar
console.log
. - 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.
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.
- O payload de dados de saída é limitado a 50 KB.
- 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.
Plano
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 |
---|---|---|
Corrigir bugs | Correções e remoção de bugs | Fevereiro de 2024 |
Registro | Use `console.log` para exibir dados no log de execução para fins de solução de problemas. | Início de abril de 2024 |
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.