Vai al contenuto

COGU92 - Importazione documenti magazzino (ASCII)

Funzione

Importazione massiva di documenti di magazzino (DDT, fatture accompagnatorie) da file ASCII strutturato con tag-valore. Riconosce record di testata (TES), movimento (MAG), aggiuntivi (MOA), matricole (MTR) e crea le bolle interne con i relativi movimenti, gestendo descrizioni alias, sconti, contropartite e collegamenti DDT/fattura.

  • Magazzino > Archivi & Tabelle > Importazioni > Documenti

Tabelle e file principali

Tabella/File Descrizione Accesso
FEURTAB Tabella file aziendali Lettura
DATAFILE File ASCII di input (tag-valore) Read binary sequential
LOGFILE File di log delle anomalie Output
COGTESBO (i-tes-) Testata documento bolla Scrittura
COGMOMAG (i-mag-) Movimento magazzino Scrittura
COGMOAGG (i-moa-) Movimento aggiuntivo Scrittura
COGMATRI (i-mtr-) Matricole Scrittura

I tracciati di scrittura usano copybook con prefisso i- per rinominare i campi rispetto alle struct originarie (clone in working storage).

Copybook e sottoprogrammi

Elemento Tipo Ruolo
cogu92.select / .fd / .wrk / .prc Screen Definizioni screen
cogtesbo.cpy / cogmomag.cpy / cogmoagg.cpy / cogmatri.cpy Copybook Tracciati documenti magazzino (clonati con prefisso i-)
logfile.cpy Copybook Tracciato log
k-personal.cpy, k-u10.cpy Copybook Costanti

Logica principale

  1. Apri: open files (datafile in input, logfile in output)
  2. Maschera parametri: file input, magazzino, tipo documento, anno
  3. Lettura file ASCII: ciclo sui record tag-valore (dat-tag + dat-dat). Tag riconosciuti includono i campi di testata, riga, aggiuntiva, matricola
  4. Per ogni TES (testata):
  5. Inizializza nuova testata documento
  6. Riempie i-tes-rec (chiave magazzino+anno+tipo+numero, dati cliente/fornitore, date, pagamento)
  7. Scrive in COGTESBO
  8. Per ogni MAG (riga merce):
  9. Lookup merce per codice (con eventuale alias)
  10. Riempie i-mag-rec (quantita', prezzo, sconti, IVA, contropartita)
  11. Scrive in COGMOMAG
  12. Per ogni MOA (riga aggiuntiva):
  13. Riempie i-moa-rec (descrizione aggiuntiva, note)
  14. Scrive in COGMOAGG
  15. Per ogni MTR (matricola):
  16. Riempie i-mtr-rec e scrive in COGMATRI
  17. Gestione rottura testata: alla nuova testata, chiude la precedente e prepara la nuova
  18. Log anomalie: ogni mancata lookup merce / errore I/O viene scritto in logfile

Note tecniche

  • Programma di grandi dimensioni (~3331 righe): contiene tutta la logica di parsing tag-valore + lookup multipli + gestione contropartite cliente/agente
  • Usa pattern "shadow record" (copybook con replacing leading "tes-" by "i-tes-") per disaccoppiare la lettura input dalle struct dei file di output
  • Configurazione 78 k-cod-pagante-interno value 32 identifica codice pagante interno fisso
  • Il file di input ha record dat-rec da 622 byte (20 byte tag + 600 dato + CRLF) — formato binary sequential
  • Costante k-max-ele-tab = 15 per tabelle interne (sconti, ali iva, ecc.)
  • Riconosce variazioni unita' di misura (Q/QL ettolitri/quintale)