Tempo aproximado para leitura: 00:02:30 min
Dúvida
Como utilizar a propriedade Registros por transação no Conceito ETL?
Ambiente
Cross Segmentos - Backoffice RM - Integração - Todas as Versões.
Solução
O parâmetro “Registro por transação” tem o propósito de organizar os registros em blocos para facilitar o processamento e análise de erros. Em vez de lidar com uma massa única de registros, onde todos os registros são importados de uma só vez, podemos dividir esses registros em blocos, cada um contendo um número específico de registros conforme definido pelo parâmetro.
Por exemplo, se obtivermos uma massa de 10 registros:
- Se o valor do parâmetro for 0, teremos apenas 1 bloco com 10 registros.
- Se o valor do parâmetro for 1, teremos 10 blocos, 1 bloco para cada linha de registro.
- Se o valor do parâmetro for 5, teremos 05 blocos, cada 2 registros em cada
Importante frisar que ao importar uma massa de dados que contenha mais de uma tabela, ou seja, com um relacionamento pai e filho, o valor do parâmetro “Registros por transação” não pode ser diferente de 1. Pois é necessário que as linhas de registro PAI sejam gravadas antes das linhas de registro FILHO. Caso contrário, podem surgir falhas no relacionamento ou violações das regras de negócio do produto.
Parametrização:
Acesse: Módulo: Integração > Aba: Integração > Menu: Conceito(ETL) > Seção: Conexões > Opção: Conexão de Destino
Ao configurar uma Conexão de Destino, seja ela um Banco de Dados ou um Data Server RM.NET, em um conceito específico, você encontrará a opção “Registros por Transação” em suas propriedades. Essa configuração permite definir o número de blocos de execução, permitindo ao usuário controlar o agrupamento de inserções, especialmente útil para lidar com potenciais erros.
O valor padrão é 0, o que significa que os registros são tratados em bloco único. Se ocorrer um erro durante o processo, nenhum registro após o erro será processado.
Conforme exemplificado no início da documentação, quando o parâmetro está definido como 1, cada linha de registro do arquivo gera um bloco separado. Se ocorrer um erro, os demais registros serão processados sucessivamente.
Ideal para cenários onde existem duas ou mais tabelas relacionadas PAI e FILHO, exigindo que a informação do PAI seja registrada previamente.
Valores maiores que 1 serão utilizados para dividir os registros em vários blocos, seguindo o conceito de dividir para conquistar, visando um processamento mais eficiente. No entanto, é importante observar que para registros relacionais, como os de pai e filho, valores como 0 ou maiores que 1 não são ideais, pois podem resultar em problemas de integridade de dados.
Exemplos de arquivo de importação com 10 registros.
Registros por transação: 0
BLOCO | LINHA | REGISTRO | STATUS |
1 | 01 | Registro 1 | Sucesso |
02 | Registro 2 | Sucesso | |
03 | Registro 3 | Sucesso | |
04 | Registro 4 | Sucesso | |
05 | Registro 5 | Erro | |
06 | Registro 6 | Não será processado | |
07 | Registro 7 | Não será processado | |
08 | Registro 8 | Não será processado | |
09 | Registro 9 | Não será processado | |
10 | Registro 10 | Não será processado |
Registros por transação: 1
BLOCO | LINHA | REGISTRO | STATUS |
1 | 01 | Registro 1 | Sucesso |
2 | 02 | Registro 2 | Sucesso |
3 | 03 | Registro 3 | Sucesso |
4 | 04 | Registro 4 | Sucesso |
5 | 05 | Registro 5 | Erro |
6 | 06 | Registro 6 | Sucesso |
7 | 07 | Registro 7 | Erro |
8 | 08 | Registro 8 | Sucesso |
9 | 09 | Registro 9 | Sucesso |
10 | 10 | Registro 10 | Erro |
Registros por transação: 5
BLOCO | LINHA | REGISTRO | STATUS |
1 | 01 | Registro 1 | Sucesso |
02 | Registro 2 | Sucesso | |
2 | 03 | Registro 3 | Sucesso |
04 | Registro 4 | Sucesso | |
3 | 05 | Registro 5 | Erro |
06 | Registro 6 | Não será processado | |
4 | 07 | Registro 7 | Sucesso |
08 | Registro 8 | Sucesso | |
5 | 09 | Registro 9 | Erro |
10 | Registro 10 | Não será processado |
Neste exemplo o bloco 3 e 5 foram apresentadas falhas, que não irá afetar os registros salvos anteriormente, somente os registros que estão no mesmo bloco que não serão processados após o erro.
Os demais registros dos blocos seguintes serão processados normalmente.
Saiba Mais
Cross Segmentos - Backoffice RM - Integração - Conceito ETL - Alterar a quantidade de registros por transação
0 Comentários