Ir para o conteúdo

Gere um log de resumo após processar registros no Jitterbit Studio

Introdução

Integrações de processamento em lote são executadas sem supervisão e podem processar milhares de registros em uma única operação. Sem um resumo pós-execução, os operadores precisam ler os logs de operação brutos para entender o que foi processado, o que teve sucesso e o que falhou. Um log de resumo resolve isso coletando uma linha de resultado legível por humanos por registro durante o processamento, e então entrega o log completo como um arquivo ou e-mail quando a operação termina.

Esse padrão utiliza uma variável global, summary_log, para acumular linhas de resultado durante uma transformação. Quando o processamento é concluído, uma operação de script encadeada escreve o resumo usando WriteFile e o envia usando SendEmailMessage. Este guia estende o padrão descrito em Enviar uma notificação por e-mail de uma operação do Studio, que cobre a criação e configuração de componentes de notificação por e-mail.

Padrão de design

O padrão utiliza duas operações em uma cadeia:

  1. Operação de processamento: Atividade de origem → Transformação → Atividade de destino. Um script no nó raiz da transformação anexa uma linha de resultado por registro à variável global summary_log.
  2. Operação de script de resumo (executada com sucesso): Lê summary_log e chama WriteFile para persistir o log, SendEmailMessage para entregá-lo, ou ambos.

Variáveis globais persistem durante a vida útil de uma cadeia de operações. summary_log é escrito pela transformação e ainda está em escopo quando o script de resumo encadeado é executado, sem necessidade de fiação extra.

Parte 1: Acumular linhas de resultado na transformação

  1. No Studio, abra seu projeto e abra a transformação usada em sua operação de processamento.

  2. Selecione o nó raiz da transformação (o nó de instância de origem de nível superior) e, em seguida, abra o editor de fórmulas para esse nó.

  3. Adicione um script que anexe uma linha de resultado a summary_log para cada registro. O script deve retornar um valor que pode ser usado pela transformação. Use true para garantir que todos os registros sejam processados:

    // Append a result line for this record
    $summary_log = $summary_log + Source.record_id + " | " + Source.name + " | processed\n";
    
    // Increment the record count
    $summary_count = $summary_count + 1;
    
    // Return true so the transformation processes every record
    true;
    

    Substitua Source.record_id e Source.name pelos nomes reais dos campos do seu esquema de origem.

    Nota

    summary_log começa como null. O Jitterbit Script trata null como uma string vazia na concatenação de strings, portanto, nenhuma inicialização explícita é necessária antes que o primeiro registro seja anexado.

  4. Para incluir uma linha de cabeçalho com a data de execução e a contagem total de registros, adicione um script de inicialização separado à operação que será executado antes da transformação, ou adicione o cabeçalho na operação do script de resumo após o processamento ser concluído.

    Dica

    Armazene o cabeçalho separadamente em summary_header para que ele possa ser montado após todos os registros serem processados, quando summary_count tiver seu valor final:

    $summary_header = "Execução: " + Now() + " | Registros: " + $summary_count + "\n\n";
    

Parte 2: Encadear a operação do script de resumo

  1. No canvas de design, clique com o botão direito na operação e selecione Configurações para abrir as configurações da operação.

  2. Selecione a aba Ações.

  3. Condição: Selecione Em Sucesso.

  4. Ação: Selecione Executar Operação.

  5. Operação: Selecione ou crie uma operação de script que irá gravar e enviar o resumo. Se a operação ainda não existir, crie uma nova operação de script e, em seguida, retorne a este diálogo de configurações para selecioná-la.

  6. Clique em Adicionar Ação e, em seguida, salve as configurações.

A operação do script de resumo agora é executada automaticamente após a operação de processamento ser concluída com sucesso.

Parte 3: Escrever o resumo em um arquivo

Na operação do script de resumo, chame WriteFile para gravar summary_log em uma atividade de destino de arquivo:

// Assemble the full log with header and body
fullLog = $summary_header + $summary_log;

// Write to the file target activity
WriteFile("<TAG>activity:target:Summary Log File</TAG>", fullLog);

Substitua Summary Log File pelo nome da sua atividade de arquivo de destino conforme aparece no projeto.

Nota

WriteFile é uma função do Jitterbit Script, não um passo de conector de arquivo. Ela grava conteúdo em uma atividade de arquivo de destino já configurada no projeto. Configure a atividade de destino com o caminho de destino e o nome do arquivo antes de chamar WriteFile.

Dica

Inclua a data de execução no nome do arquivo para evitar sobrescrever logs anteriores. Configure uma variável de projeto como [run_date] no caminho do nome do arquivo da atividade de destino (por exemplo, summary_[run_date].txt), e preencha $run_date no seu script antes de chamar WriteFile:

$run_date = Format(Now(), "yyyy-MM-dd");
WriteFile("<TAG>activity:target:Summary Log File</TAG>", fullLog);

Parte 4: Enviar o resumo por e-mail

  1. Crie um componente de notificação por e-mail que carregará o resumo. Para instruções completas de configuração, veja Enviar uma notificação por e-mail de uma operação do Studio.

  2. No campo Assunto da notificação, faça referência a summary_count para incluir o total de registros:

    Processamento completo: $summary_count registros
    
  3. No campo Mensagem, faça referência a summary_log para incluir as linhas de resultado acumuladas:

    $summary_header$summary_log
    

    Variáveis globais são resolvidas no momento do envio, então o corpo da mensagem reflete os valores definidos durante a execução do processamento.

  4. Na operação do script de resumo, chame SendEmailMessage após WriteFile (se utilizado):

    SendEmailMessage("<TAG>email:Processing Summary</TAG>");
    

    Substitua Processing Summary pelo nome do seu componente de notificação por e-mail.

Verifique a integração

  1. Implante e execute a operação de processamento contra um pequeno conjunto de dados de teste de dois ou três registros.

  2. Nos logs da operação, confirme que a operação de processamento foi concluída sem erros e que a operação do script de resumo foi executada com sucesso.

  3. Se você configurou WriteFile: verifique o caminho de destino da atividade do arquivo de destino e confirme que o arquivo de resumo foi criado. Abra-o e verifique se contém uma linha de resultado por registro, além do cabeçalho.

  4. Se você configurou SendEmailMessage: verifique a caixa de entrada do destinatário e confirme que o e-mail chegou com o assunto e o conteúdo do corpo esperados.

  5. Se o corpo do e-mail ou o conteúdo do arquivo estiver vazio, confirme que o script de acumulação está colocado no nó raiz da transformação (não em uma operação de script separada) para que ele seja executado uma vez por registro durante a transformação.

  6. Se a operação do script de resumo não for executada, confirme que a ação On Success está anexada à operação de processamento, e não a uma operação pai ou filho na cadeia. Verifique os logs da operação para ver se a condição de sucesso foi acionada.

  7. Se WriteFile retornar um erro, confirme que a atividade do arquivo de destino está configurada corretamente e que o agente tem acesso de gravação ao caminho de destino.