COGM83 - Simulazione Lancio di Produzione¶
Scopo¶
Simula un lancio di produzione esplodendo la distinta base di un prodotto finito (da ordine/consegna o distinta diretta) e mostrando per ogni componente la quantita' richiesta, la giacenza disponibile e la carenza. Non genera movimenti di magazzino.
Struttura¶
- Tipo: Programma standalone (mmmask.cpy)
- Righe: ~2.011
- Interfaccia: GUI AcuCOBOL con griglia paginata
- Screen:
cogm83-01.scr - Cursor ID: SMPR
Flusso principale¶
apri- Inizializzazione, apertura file, configurazione tasti funzionea4- Inizializzazione maschera, propone magazzino principale azienda, tipo esame "C" (consegna), quantita' 1, livello 999a-tm-mag..a-tm-liv- Catena di accept per i campi di input (magazzino, tipo esame, ordine, consegna, distinta, quantita', livello)a-richiesta-conferma- Validazione completa e conferma utenteb-elabora- Esplosione della distinta base e costruzione del file di transitoa-grid-ini/a-grid- Visualizzazione risultati in griglia paginata con navigazione PgUp/PgDnstampa- Stampa del report
Modalita' di input¶
Il campo tm-esa (Esamino) determina quali campi sono visibili:
- Consegna/Ordine: campi ordine e consegna visibili, distinta e quantita' nascosti
- Distinta diretta: campi distinta e quantita' visibili, ordine nascosto
Tabelle/File utilizzati¶
| Tabella | Tipo | Utilizzo |
|---|---|---|
| FEURTAB | Input | Archivio nomi file |
| COGMAGAZ (via cogm83.select) | Input | Magazzini |
| COGMERCI (via cogm83.select) | Input | Anagrafica merci |
| COGGEANA (via cogm83.select) | Input | Anagrafica clienti |
| COGTESOR (via cogm83.select) | Input | Testata ordini |
| COGCONOR (via cogm83.select) | Input | Consegne ordini |
| COGMOVDB (via cogm83.select) | Input | Movimenti distinta base |
| COGDBAGG (via cogm83.select) | Input | Distinta base aggregata |
| COGSLMAG (via cogm83.select) | Input | Saldi magazzino (giacenze) |
| COGTRANS | Transito | File temporaneo indicizzato per i risultati dell'esplosione (chiave: merce) |
| TRAN-S16 | Transito | File temporaneo per elaborazione distinta |
| FLSTA | Input | File stampa |
Struttura COGTRANS (record di transito)¶
trs-chia1 (chiave primaria):
trs-merce (9 bytes: gru/sot/cod)
trs-des x(40) descrizione merce
trs-fl-gia x(01) flag giacenza
trs-ric 9(08)v999 quantita' richiesta
trs-gia s9(08)v999 giacenza
trs-crz 9(08)v999 carenza
trs-mag-stoccaggio x(01) magazzino stoccaggio
Logica di elaborazione¶
Esplosione distinta (b-elabora)¶
Il paragrafo b-elabora (referenziato ma contenuto nella .prc) esplode la distinta base multilivello:
- Legge la distinta base aggregata (COGDBAGG) del prodotto finito
- Per ogni componente, calcola la quantita' necessaria moltiplicando per la quantita' richiesta
- Legge la giacenza da COGSLMAG
- Calcola la carenza come max(0, richiesta - giacenza)
- Scrive il risultato sul file COGTRANS
Griglia risultati¶
La griglia (max 100 elementi per pagina) mostra:
- grd-merce - codice merce componente
- grd-mag-stoccaggio - magazzino di stoccaggio
- grd-fl-gia - flag assenza giacenza
- grd-ric - quantita' richiesta (formattata)
- grd-gia - giacenza (formattata, con segno)
- grd-crz - carenza (formattata)
Stampa¶
Intestazione: azienda, data, titolo "Stampa Simulazione Produzione". Testata ordine con dati ordine/consegna/cliente. Testata distinta con codice e quantita'. Righe dettaglio: merce, qta richiesta, giacenza, carenza, flag no giacenza, magazzino stoccaggio.
Chiamate a sottoprogrammi¶
| Programma | Funzione |
|---|---|
| COGS52 | Gestione campo anno/data con calendario |
| COGS68W | Gestione campo merce (codice + barcode + descrizione) |
| COGS14 | Ricerca ordini |
| COG021 | Configurazione dettaglio stampa |
| WIN028 | Ricerca consegne per ordine |
| WIN036 | Ricerca magazzini |
| COGU10 | Utility U10 |
| COGU20 | Gestione campo numerico |
| GRIDADMN | Gestione griglia personalizzabile |
COPY utilizzate¶
File section¶
cogfiles.cpy, cogm83.fd, tran-s16.cpy, flsta.cpy
Working-storage¶
cogm83.wrk, k-u10.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utils52.cpy, utils54.cpy, utils50.cpy, utils68.cpy, utils22.cpy, utilu10.cpy, utilu20.cpy, utilw28.cpy, utilw36.cpy, utilncnf.cpy
Linkage¶
wcont.cpy, utils14.cpy, util021.cpy, utils16.cpy, wcont1.cpy
Procedure¶
cogm83.decla, cogm83.prc
Note¶
- Il file COGTRANS viene creato come file temporaneo nella directory temp dell'operatore (
#$COGM83.{operatore}). - Il file TRAN-S16 analogamente (
#$COGS16.{operatore}). - Entrambi vengono cancellati alla chiusura del programma.
- Supporta la configurazione del magazzino di stoccaggio (tm-cfg-mag-stoc).
- La griglia e' paginata: non carica tutti i risultati in memoria ma li legge dal file di transito a pagine.