Contrato do fluxo abastecimento¶
Status: Rascunho · Responsável: Gustavo Madruga · Atualizado em: 2026-07-27
Contrato do fluxo abastecimento do integrador-client (cliente coringa): backport do
integrador do xposto — a tabela-espelho abastecimento replica a ABASTECIMENTO daquele
integrador (só os campos que vão ao X-Adm) e é gravada no ERP pelo mesmo programa ZIM.
Status: rascunho — validar com a equipe X-Adm. O fluxo está implementado no cliente mas inativo: o espelho
abastecimentoainda não existe no servidor/PowerSync, e oMainroda só o fluxo pied. Ativar = sincronizar o espelho e ligar o fluxo noMain.
1. O que vale daqui e o que vem do contrato base¶
Tudo que é comum — fluxo da execução (limpeza → envio → handshake → processamento →
retorno), formato dos arquivos (fixed-width, windows-1252, CRLF, contador+tipo), regras de
campo (texto/número/data), retorno com eco e cod_retorno, códigos 006/1XX/9XX, exit
codes — vem do contrato base §§1-2 e 4-6. Este documento só define o
que é específico do fluxo: a linha de continuação e o layout da tabela.
- Linha de continuação (handshake §1 passo 5):
Continuar— herdada do integrador do xposto; é como o ZIM sabe que o lote é de abastecimento. - Decisão de formato: o xposto usa um layout legado próprio (larguras irregulares,
retorno
S/N+ motivo). AQUI o fluxo converge ao contrato base: mesmos campos e mesma ordem doescreverXpEnviodo xposto, mas no formato comum (contador+tipo, números em 18 posições, datetime 14, retorno comcod_retorno). O lado ZIM precisa acompanhar.
2. Arquivo de envio — tabela abastecimento (largura total da linha: 275)¶
Linha = contador(3) + tipo_registro(20) = abastecimento + campos abaixo. Offsets a
partir de 0 (campo 1 começa no offset 23). Ordem = a do escreverXpEnvio do xposto.
| # | Campo | Tipo | Largura | Offset | Observação |
|---|---|---|---|---|---|
| 1 | abastec_bico_global | numérico 0 dec | 18 | 23 | contador global do bico |
| 2 | id_almoxarifado | texto | 2 | 41 | |
| 3 | abastec_bico_diario | numérico 0 dec | 18 | 43 | contador diário do bico |
| 4 | bico | texto | 3 | 61 | |
| 5 | data_hora_abastecimento | datetime | 14 | 64 | AAAAMMDDHHMMSS |
| 6 | encerrante_inicial | numérico 3 dec | 18 | 78 | |
| 7 | encerrante_final | numérico 3 dec | 18 | 96 | |
| 8 | duracao | texto | 6 | 114 | HHMMSS — o espelho traz duracao_abastec_segundos (segundos); o cliente converte |
| 9 | volume_abastecido | numérico 3 dec | 18 | 120 | |
| 10 | abastecimento_autorizado | texto | 1 | 138 | S/N |
| 11 | data_hora_captura | datetime | 14 | 139 | AAAAMMDDHHMMSS |
| 12 | id_usuario | texto | 6 | 153 | |
| 13 | id_motorista | texto | 6 | 159 | |
| 14 | id_produto | texto | 6 | 165 | |
| 15 | placa | texto | 10 | 171 | |
| 16 | odometro | numérico 0 dec | 18 | 181 | |
| 17 | id_empresa | texto | 4 | 199 | |
| 18 | odometro_anterior | numérico 0 dec | 18 | 203 | |
| 19 | limite_odometro | numérico 0 dec | 18 | 221 | |
| 20 | media_sugerida | numérico 3 dec | 18 | 239 | |
| 21 | tolerancia_media | numérico 3 dec | 18 | 257 |
3. Arquivo de retorno¶
Idêntico ao contrato base §4: Iniciou Zim na 1ª linha, depois uma
linha por registro com eco do contador/tipo + cod_retorno + msg_retorno. Os casos que o
xposto tratava por texto do motivo viram códigos:
| Situação (retorno legado do xposto) | Código no contrato novo |
|---|---|
S (importado) |
006 |
N + "ja foi importado no banco de dados" |
006 (idempotente — já está lá) |
N + "conflito" |
9XX (reprocessável) |
N + outro motivo |
1XX (erro terminal; motivo em msg_retorno) |
4. Pontos em aberto (validar com a equipe X-Adm)¶
- Escalas e larguras (herdadas do xposto: encerrantes/volume/média/tolerância 3 dec; contadores/odômetros inteiros) — confirmar leitura em 18 posições.
- Mapeamento dos motivos legados para
006/1XX/9XX(§3) — a equipe ZIM define os códigos concretos. - Convergência do lado ZIM ao formato do contrato base (o pAbast atual do xposto lê o layout legado).