Pular para o conteúdo

Importação incremental

  1. Staging brutoIMPORTACAO_LINHA (arquivo, linha_num, tipo, conteudo 195 car., hash_linha). Sem parsing nesta fase: se um offset estiver errado, reprocessa-se sem voltar a pedir os arquivos.
  2. Parser guiado por tabelaLAYOUT_DAT (tipo, campo, de, ate, tipo_dado, decimais). Os offsets são dados, não código: quando chega um layout novo, acrescenta-se uma linha.
  3. Chave natural única por tabela → o mês inteiro carregado por cima dos dias já importados não cria duplicados; entram só os que faltam.
  4. RegistoIMPORTACAO (arquivo, hash_arquivo, data, linhas lidas/novas/duplicadas/rejeitadas).
  5. Validação — comparar os contadores dos marcadores (FHF, FPF, FAF…) com as linhas lidas, e o carimbo de versão do layout (posições 188–193) com o layout que temos.
  • Decimais implícitos — confirmados nos layouts oficiais (ex.: FA3 valor = 2 decimais)
  • Sinal separadoFR1/FA1/FA2 usam +/- no fim do número
  • latin-1 — ler em UTF-8 parte PEÇAS, ACESSÓRIOS, ASSISTÊNCIA
  • A data vem dos registros, nunca do nome do arquivo