Skip to main content
From 16:00 UTC on January 17, 2026, to 20:00 UTC on January 17, 2026, we will perform planned maintenance on the Trailhead, myTrailhead, and Trailblazer Community sites. During the maintenance, these sites will be unavailable, and users won't be able to access them. Please plan your activities around this required maintenance.

Criar etapas de trabalho personalizadas

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Listar as etapas necessárias para criar um trabalho personalizado.
  • Descrever a diferença entre um módulo de script orientado a tarefas e um orientado a partes.
  • Explicar o que é o arquivo steptypes.json.

Introdução

Linda Rosenberg, administradora da Cloud Kicks, está criando um trabalho e não consegue encontrar uma etapa do sistema que faça exatamente o que ela quer. Ela quer importar dados diretamente de um sistema de informações externas sobre produtos (PIM) para a instância de produção. Ela precisa de código personalizado para fazer isso porque quer importar os dados do catálogo, processá-los e salvá-los no banco de dados do Salesforce B2C Commerce. Não é apenas uma simples importação. Para criar esse trabalho personalizado, ela pede a um desenvolvedor da Cloud Kicks, Vijay Lahiri, para fazer essas etapas.

  1. Criar um cartridge. Um cartridge é um mecanismo para empacotar e implantar código e dados do programa de loja do B2C Commerce.
  2. Escrever um script orientado a tarefas ou orientado a partes para executar as etapas do processo, por exemplo, para ler um registro de produto, processá-lo e, em seguida, escrevê-lo no banco de dados.
  3. Criar um arquivo steptypes.json para descrever as etapas personalizadas e colocar o arquivo na raiz do cartridge.
  4. Carregar o cartridge e o incluir no caminho de acesso do cartridge.

Vijay está feliz em ajudar.

Vijay Lahiri, desenvolvedor

Quando ele terminar, Linda:

  1. Replica o código para produção e ativa a versão de código que inclui o novo cartridge.
  2. Cria um trabalho usando a etapa personalizada no Business Manager.

Módulo de script orientado a tarefas

Agora as coisas vão ficar um pouco técnicas, mas Linda precisa entender os seguintes conceitos e processos focados no desenvolvedor para que ela possa colaborar com Vijay, monitorar o sucesso do trabalho e planejar requisitos futuros.

Um módulo de script CommonJS orientado a tarefas expõe uma função a ser chamada como a função principal para a etapa de trabalho. Quando Linda cria trabalhos usando o Business Manager, ela define parâmetros disponibilizados como objetos que podem ser usados com script para a função do módulo e para o objeto dw.job.JobStepExecution. O objeto dw.job.JobStepExecution permite acesso somente de leitura a informações sobre a execução da etapa atual e execução do trabalho.

Para controlar o status de saída, a função pode retornar um objeto de API dw.system.Status. Se o script terminar com uma exceção não tratada, o código de status de saída será ERROR e o sinalizador de status de erro será true por padrão. Se nenhum objeto de status for retornado e nenhuma exceção ocorrer, o código de status será OK por padrão.

Consulte o Infocenter para obter um exemplo de um módulo de script orientado a tarefas que se conecta via FTP e, em seguida, baixa dados. Vijay usa esse exemplo para criar o módulo de script.

Módulo de script orientado a partes

Um módulo de script CommonJS orientado a partes lê e processa itens em partes de um tamanho especificado. Se a lista contiver mais itens do que o B2C Commerce pode processar em uma parte, ele inicia uma nova parte. Um script orientado a partes pode incluir qualquer série de etapas de processamento, não apenas transações de banco de dados.

Uma etapa de trabalho que usa um script orientado a partes permite o monitoramento otimizado do progresso porque o B2C Commerce atualiza o número de elementos que são escritos cada vez que uma parte é concluída.

Vijay e Linda dão uma olhada em um exemplo de processamento de partes.

Suponha que você exporte uma lista de oito pedidos para um arquivo, e o tamanho de uma parte é de quatro pedidos. O script processa as partes conforme a sequência a seguir.

  1. Ler pedido 1, Processar pedido 1, Ler pedido 2, Processar pedido 2, Ler pedido 3, Processar pedido 3, Ler pedido 4, Processar pedido 4
  2. Escrever pedido 1, Escrever pedido 2, Escrever pedido 3, Escrever pedido 4
  3. Ler pedido 5, Processar pedido 5, Ler pedido 6, Processar pedido 6, Ler pedido 7, Processar pedido 7, Ler pedido 8, Processar pedido 8
  4. Escrever pedido 5, Escrever pedido 6, Escrever pedido 7, Escrever pedido 8

Exemplo mostrando leitura, processamento e gravação em partes de 4 pedidos

Funções do script em partes

Linda notou três funções no exemplo. Um módulo de script orientado a partes expõe funções para leitura, processamento e gravação.

  • função de leitura: retorna um item ou nada.
  • função de processamento: permite transformar itens e aplicar a lógica de negócios a eles.
  • função de gravação: recebe uma lista de itens.

Você também pode usar essas funções opcionais em um módulo de script orientado a partes.

  • função de contagem total: retorna o número total de itens disponíveis antes do início do processamento em partes.
  • função antes da etapa: executada antes que uma etapa da parte comece.
  • função antes da parte: executada antes que uma parte comece.
  • função após a parte: executada depois que uma parte termina.
  • função após a etapa: executada após uma etapa da parte ser concluída com sucesso.

Consulte o Infocenter para obter um exemplo de um módulo de script orientado a partes.

Arquivo steptypes

Quando Vijay cria uma etapa personalizada, ele deve criar um arquivo steptypes.json para descrever os metadados da etapa. Este arquivo especifica o módulo de script que implementa a etapa, os parâmetros que a etapa requer e os status de saída que a etapa retorna. O arquivo steptypes.json requer uma sintaxe muito específica. Por exemplo, uma parte do arquivo steptypes.json usa os seguintes pares de nome/valor:

"@name":"MyParameter1",
"@type":"boolean",
"@required":"true",
"description":"A required boolean parameter."

Consulte o Infocenter para obter detalhes sobre a sintaxe e um exemplo de um arquivo steptypes.json.

Solução de problemas de arquivos steptypes.json inválidos

O B2C Commerce analisa e carrega o arquivo steptypes.json:

  • Na inicialização do servidor.
  • Quando a versão de código ativa é alterada.
  • Em sandboxes, cada vez que uma etapa é executada.

Se um arquivo steptypes.json contiver erros devido a atributos ausentes ou outros problemas, o B2C Commerce registra os erros em um arquivo de erros e não registra a etapa personalizada. O B2C Commerce então carrega as etapas dos arquivos steptypes.json de outros cartridges.

Os arquivos steptypes.json inválidos fazem com que mensagens como esta apareçam no Business Manager:

Invalid step [Step1]! Type with id [custom.MyCustomStep1] is unknown!
Nota

Se Linda importar trabalhos inválidos, ela recebe um aviso no registro de importação/exportação e uma mensagem de erro no Business Manager. Se Vijay alterar o arquivo steptypes.json de modo que ele crie um trabalho inválido, ele não executa mais, e nada acontece, exceto uma entrada no registro do trabalho.

Usar o arquivo steptypes.xml

Vijay pode usar uma definição XML em vez de JSON para definir as etapas personalizadas. Ele deve chamar o arquivo steptypes.xml e colocá-lo em um cartridge personalizado na pasta raiz. O B2C Commerce analisa e recarrega o arquivo sempre que a versão de código ativa é alterada. Pode haver apenas um arquivo steptypes.json ou steptypes.xml.

Próximas etapas

Neste módulo, Linda aprendeu a criar uma etapa de trabalho personalizada com a ajuda de Vijay, um desenvolvedor da Cloud Kicks. Em seguida, ela vai aprender a criar e configurar trabalhos.

Recursos

Compartilhe seu feedback do Trailhead usando a Ajuda do Salesforce.

Queremos saber sobre sua experiência com o Trailhead. Agora você pode acessar o novo formulário de feedback, a qualquer momento, no site Ajuda do Salesforce.

Saiba mais Continue compartilhando feedback