COGP09 - Componenti Mancanti¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGP09 |
| Titolo | Stampa situazione lotto / Componenti mancanti |
| Posizione menu | Magazzino -> Produzione -> Produzione -> Stampe -> Componenti Mancanti |
| Posizione menu alternativa | Magazzino -> Stampe -> Movimenti Cauzioni |
Scopo e logica generale¶
COGP09 e' un programma di stampa che analizza i componenti mancanti per i lotti di produzione aperti. Scansiona i lotti (COGLAVOR) filtrati per lotto specifico, merce, cliente o stato aperto; per ogni lotto recupera i movimenti distinta base (COGMOVDB) di tipo "CL" e calcola la quantita' mancante come mdb-qta - mdb-qta-sca. Verifica poi la giacenza nel magazzino di stoccaggio (e nell'eventuale magazzino di eccedenza) tramite COGTABEL tipo C077 (configurazione magazzini).
Utilizza COGTRANS come file di transito temporaneo e il modulo COGS54 per la gestione della stampante.
Il programma puo' essere richiamato in modalita' "COGP09-CALLED" con lotto precompilato (tramite utilp09.cpy).
Flusso principale¶
- Inizializzazione (
apri): controllo abilitazione, init programma, lettura azienda, apertura file, configurazione RNEWCONF, costruzione nome transito, preparazione maschera - Accept parametri (
a4): - Se richiamato con
p09-called = "COGP09-CALLED": precompilatm-lot-annetm-lot-nume salta aa-fine-dati a-tm-lot-ann: anno lotto (con F8 -> COGS52W calendario, F1 -> configurazione)a-tm-lot-num: numero lotto (validazione su COGLAVOR; controlla stato aperto "A")a-tm-da-data/a-tm-a-data: intervallo date apertura lotto (con F8 -> COGS52W)a-tm-ana-cod: codice cliente (via COGS65W)a-tm-merce: articolo prodotto finito (via COGS68W)- Conferma (
a-fine-dati): validazione completa, selezione stampante via COGS54 - Elaborazione (
carica-dati): scansione COGLAVOR con filtri, per ogni lotto valido ->ciclo-movdb-> scrittura su COGTRANS - Stampa (
stampa-dati): lettura COGTRANS, generazione report su FLSTA - Chiusura (
z-chiudi): cancellazione COGTRANS, chiusura file, exit program
Routine carica-dati¶
Sceglie la chiave di accesso a COGLAVOR in base ai parametri:
- Se tm-lot-ann e tm-lot-num valorizzati: scansione per chiave primaria (anno/numero)
- Se tm-merce valorizzata: chiave 4 (per merce prodotto finito)
- Se tm-ana-cod valorizzato: chiave 8 (per cliente)
- Altrimenti: chiave 9 (per stato "A" = aperto)
Condizioni di esclusione del lotto:
- cla-fl-cls not = "A" (non aperto)
- Data apertura fuori range tm-da-data / tm-a-data
- Riga di consegna (COGCONOR) inesistente
Routine ciclo-movdb¶
Per ogni lotto valido, scansiona COGMOVDB per tipo "CL" (componenti lotto) con chiave mdb-rif-mov = w-cla-chia. Salta i record dove mdb-qta-sca >= mdb-qta (gia' completamente utilizzati). Calcola w-qta = mdb-qta - mdb-qta-sca e scrive su COGTRANS.
Struttura COGTRANS¶
trs-chia1:
trs-ordinam pic x(10) Criterio ordinamento
trs-cla-chia1:
trs-cla-anno pic 9(04)
trs-cla-numero pic 9(08)
trs-merce:
trs-gru/sot/cod (codice articolo)
trs-consegna:
trs-cor-mag/anno/tipo/numero/progr
trs-dati:
trs-mag-stoccaggio pic x(01) Magazzino stoccaggio
trs-mag-ecced pic x(01) Magazzino eccedenza
trs-mdb-qta pic s9(12)v9(06) Quantita' necessaria
trs-mdb-qta-sca pic s9(12)v9(06) Quantita' gia' utilizzata
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| COGLAVOR | cla-rec | Input | Lotti di produzione (chiavi: primaria, 4=merce, 8=cliente, 9=stato) |
| COGMOVDB | mdb-rec | Input | Movimenti distinta base - tipo "CL" (componenti lotto) |
| COGCONOR | cor-rec | Input | Consegne ordini - riga consegna collegata al lotto |
| COGGEANA | ana-rec | Input | Anagrafica generale - validazione cliente |
| COGMERCI | mer-rec | Input | Anagrafica merci - validazione articolo |
| COGTRANS | trs-rec | I-O | File transito temporaneo |
| FLSTA | riga | Output | File di stampa |
| COGTABEL | euta-rec | Input | Tabelle di sistema (tipo C077: configurazione magazzini stoccaggio/eccedenza) |
Copybook inclusi¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
cogp09-01.scr |
Maschera principale |
cogp09.select |
SELECT dei file |
cogp09.fd |
FD dei file |
cogp09.wrk |
Working storage maschera |
cogp09.decla |
Declaratives |
Working storage¶
| Copybook | Contenuto |
|---|---|
wgrave.cpy |
Gestione errori gravi |
wnscr.cpy |
Gestione schermo |
wopenf.cpy |
Gestione apertura file |
wstato.cpy |
Working stato |
cogazien.cpy |
Dati azienda |
utils52.cpy |
Interfaccia COGS52W (calendario) |
utils54.cpy |
Interfaccia COGS54 (stampante) |
utils65.cpy |
Interfaccia COGS65W (selezione anagrafica) |
utils68.cpy |
Interfaccia COGS68W (selezione merce) |
utilu20.cpy |
Interfaccia COGU20 |
utilncnf.cpy |
Struttura parametri RNEWCONF |
Linkage¶
| Copybook | Contenuto |
|---|---|
wcont.cpy |
Dati operatore |
utilp09.cpy |
Interfaccia chiamante (p09-called, p09-lot-ann, p09-lot-num) |
wcont1.cpy |
Dati azienda linkage |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS52W | Calendario (F8 su campi data e anno lotto) |
| COGS54 | Selezione stampante e formato |
| COGS65W | Selezione cliente da anagrafica (campo tm-ana-cod) |
| COGS68W | Selezione merce/articolo (campo tm-merce) |
| RNEWCONF | Lettura configurazione |
Configurazione (RNEWCONF)¶
| Variabile | Uso |
|---|---|
tm-cfg-mag-stoc |
Codice magazzino di stoccaggio per verifica giacenza |
tm-cfg-mag-ecced |
Codice magazzino di eccedenza (opzionale) |
I valori vengono anche letti da COGTABEL tipo C077 (euta-c077-mag-assist e euta-c077-mag-ecced).
Logica di business¶
Calcolo quantita' mancante¶
Per ogni movimento distinta base (COGMOVDB tipo "CL"):
- w-qta = mdb-qta - mdb-qta-sca
- Se mdb-qta-sca >= mdb-qta: il componente e' gia' completamente prelevato, si salta
- La differenza viene confrontata con la giacenza del magazzino di stoccaggio
Varianti programma¶
k-program-id-s = "COGP09A": variante stampa compattak-program-id-l = "COGP09L": variante stampa larga
La larghezza della riga di stampa e' k-chr-stampa = 135.
Modalita' chiamata da altri programmi¶
Quando p09-called = "COGP09-CALLED", il programma salta direttamente a a-fine-dati con anno e numero lotto precompilati. Dopo la stampa (o in caso di assenza dati), esce direttamente (go to fine).