Migration V0.7.00.5 / V0.7.00.6 — ct_lote.arquivo_ipl
Chave de negócio (correta)
UNIQUE (lote, empresa, filial, ano, mes) -- constraint const_ct_lote_loemfianme
| Empresa | Filial | Ano | Mês | Lotes permitidos |
|---|---|---|---|---|
| 1 | 1 | 2026 | 05 | 000001, 000002, 000003, … |
| 1 | 1 | 2026 | 06 | 000001, 000002, 000003, … (reinicia numeração no novo mês) |
O código 000001 no arquivo IPL é apenas informativo; no banco cada importação nova no mês recebe o próximo número de lote livre.
O que a migration faz
V0.7.00.5
arquivo_ipl VARCHAR(80)— rastreio do.IPLde origem.- Mantém/restaura
const_ct_lote_loemfianmeem(lote, empresa, filial, ano, mes). - Remove
const_ct_lote_loemfi(só empresa/filial/lote — impedia lote 1 em meses diferentes). - Remove UK errada
uk_ct_lote_empresa_filial_periodo_lote_diase existir. uk_ct_lote_arquivo_ipl_periodo— um registro por arquivo IPL por mês (reimportação).
V0.7.00.6 — corretivo se V0.7.00.5 antigo já tiver sido aplicado com UK por diareferencia.
Três IPL de teste (mês 05/2026)
| Arquivo | ct_lote.lote |
diareferencia |
arquivo_ipl |
|---|---|---|---|
003AA_20260501.IPL |
000001 | 01 | 003AA_20260501.IPL |
003AA_20260504.IPL |
000002 | 04 | 003AA_20260504.IPL |
003AA_20260505.IPL |
000003 | 05 | 003AA_20260505.IPL |
Entidade JPA
Batch.iplSourceFile → arquivo_ipl
@UniqueConstraint(name = "const_ct_lote_loemfianme", columnNames = { batch, company, branch, year, month })
Automations
_resolve_batch_lote:
- Busca por
arquivo_ipl→ reimportação do mesmo arquivo. - Senão
MAX(lote numérico) + 1no período → novo lote 2, 3…