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.
Menu¶
- 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¶
- Apri: open files (datafile in input, logfile in output)
- Maschera parametri: file input, magazzino, tipo documento, anno
- Lettura file ASCII: ciclo sui record tag-valore (
dat-tag+dat-dat). Tag riconosciuti includono i campi di testata, riga, aggiuntiva, matricola - Per ogni TES (testata):
- Inizializza nuova testata documento
- Riempie
i-tes-rec(chiave magazzino+anno+tipo+numero, dati cliente/fornitore, date, pagamento) - Scrive in COGTESBO
- Per ogni MAG (riga merce):
- Lookup merce per codice (con eventuale alias)
- Riempie
i-mag-rec(quantita', prezzo, sconti, IVA, contropartita) - Scrive in COGMOMAG
- Per ogni MOA (riga aggiuntiva):
- Riempie
i-moa-rec(descrizione aggiuntiva, note) - Scrive in COGMOAGG
- Per ogni MTR (matricola):
- Riempie
i-mtr-rece scrive in COGMATRI - Gestione rottura testata: alla nuova testata, chiude la precedente e prepara la nuova
- 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 32identifica codice pagante interno fisso - Il file di input ha record
dat-recda 622 byte (20 byte tag + 600 dato + CRLF) — formato binary sequential - Costante
k-max-ele-tab = 15per tabelle interne (sconti, ali iva, ecc.) - Riconosce variazioni unita' di misura (Q/QL ettolitri/quintale)