COGD82 - Ricerca per commessa produzione (Tracciabilita' Merci Critiche)¶
Sorgente: cbl/cogd82.cbl | Tipo: Programma interattivo con griglia paginata | Program-ID: COGD82
Menu:
- Magazzino > Visualizzazioni > Serial Numbers > Ricerca per comm.produzione
Scopo¶
Tracciabilita' dei serial number delle merci critiche. Dato un serial number, ricostruisce la catena di produzione: identifica il documento di entrata del componente, cerca tutte le matricole di merci critiche entrate con lo stesso DDT o collegate allo stesso lotto di lavorazione, e risale i lotti di produzione fino al prodotto finito e al documento di vendita al cliente.
Interfaccia utente¶
Maschera di filtro¶
| Campo | Tipo | Descrizione |
|---|---|---|
| tm-sn | X(30) | Serial number da tracciare |
| tm-mat | 9(12) | Matricola trovata (display, valorizzata dopo validazione) |
| tm-ent | Bolla di entrata della matricola (display) | |
| tm-lot-sn | 9(12) | Lotto di lavorazione collegato (display) |
| tm-lot-sn-x | X(13) | Lotto di lavorazione formattato anno/numero (display) |
Griglia (grid-record)¶
| Colonna | Campo | Descrizione |
|---|---|---|
| Serial number | grd-sn | X(30) |
| Matricola | grd-mat | Anno/numero formattato |
| Lotto PF | grd-lot-pf-x | Anno/numero lotto prodotto finito |
| Prodotto finito | grd-pf | Codice merce X(09) |
| Cliente | grd-cli-des | Ragione sociale X(40) |
| Data doc. | grd-data-doc | Data gg/mm/aaaa |
| Tipo doc. | grd-doc-tip | "D.d.T.", "Ordine", "Sc.Anom." |
| Documento | grd-doc | Mag/anno/tipo/numero (bolle) o anno/numero/pro (ordini) |
| Mag. carico | grd-mag-carico | Codice + " - " + descrizione |
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F3 | Conferma serial number e avvia ricerca |
| S-F4 | Gestione griglia (GRIDADMN) |
| S-F5 | Esportazione Excel |
| PgUp/PgDn | Paginazione |
| ESC | Torna a selezione / Esce |
File e tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella parametri generali |
| COGMATRI | cogd82.fd, chia3 | Matricole (chiave per bolla di entrata) |
| COGMTUSC | cogd82.fd | Uscite matricole |
| COGGEANA | cogd82.fd | Anagrafica clienti/fornitori |
| COGMAGAZ | cogd82.fd | Anagrafica magazzini |
| COGMERCI | cogd82.fd | Anagrafica merci |
| COGMERA2 | cogd82.fd | Anagrafica merci avanzata (flag merce critica) |
| COGTESBO | cogd82.fd | Testata bolle |
| COGTESOR | cogd82.fd | Testata ordini |
| COGGENER | cogd82.fd | Generici/collegamenti (lotti di lavorazione LP, LM) |
| COGLAVOR | cogd82.fd | Lavorazioni (per risalire al prodotto finito) |
| COGMERLT | cogd82.fd | Lotti merce |
| COGTRANS | temporaneo | File indicizzato temporaneo per risultati (chiave: sn + matricola) |
Chiavi di accesso principali¶
| Tabella | Chiave | Composizione | Uso |
|---|---|---|---|
| COGMATRI | k03 (chia3) | Bolla entrata + matricola | Ricerca matricole per bolla |
| COGGENER | primaria | Tipo + parte1 + parte2 + prog | Ricerca lotti collegati (tipo LP/LM) |
| COGTRANS | chia1 | SN + matricola | Ordinamento risultati |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia |
| COGU07 | Ricerca serial number (operazione cerca-sn, opzione "C"; operazione cerca-matricola, opzione "V" con flag fl-figlia-comunque) |
| COGU09 | Utility (cancellata a fine programma) |
| COGS52W | Gestione date |
| COGS68 | Ricerca merce |
Copybook principali¶
cogd82.select,cogd82.fd,cogd82.wrk,cogd82.prc,cogd82.decla,cogd82-01.scr-- Screenscogazien.cpy-- Dati aziendacoggener.cpy(con replacinggnr-byri1-) -- Record generico secondariowgrid.cpy,utilgdad.cpy-- Grigliautils52.cpy,utils68.cpy-- Date e ricerca merceutilu07.cpy-- Utility serial numberutilu09.cpy-- Utility
Configurazione¶
| Gruppo | Parametro | Note |
|---|---|---|
| (FEURTAB) | tm-cfg-tip-fat | Tipo fattura (letto da configurazione) |
Logica di elaborazione¶
Validazione serial number (x-controlla-tm-sn)¶
- Verifica che il serial number non sia vuoto
- Chiama COGU07 con operazione
cerca-sne opzione "C" per risolvere il serial number - Se trovato, legge la matricola da COGMATRI tramite
u07-mat-padre - Legge COGMERA2 per verificare il flag
ma2-fl-merce-critica - Se la merce non e' critica, rifiuta la ricerca
- Ricava il lotto di lavorazione collegato (
get-lot-sn)
Caricamento dati (carica-dati)¶
L'elaborazione avviene in due fasi:
Fase 1 -- Traccia per bolla di entrata (carica-dati-fase1-traccia-ent):
- Parte dalla bolla di entrata della matricola (
tm-ent) - Chiama
traccia-matricole-sub-ri-bol-testa: posiziona su COGMATRI chiave k03 (chia3 = bolla entrata) e scorre tutte le matricole della stessa bolla - Per ogni matricola, chiama
traccia-mtr-mat
Fase 2 -- Traccia per lotto di lavorazione (carica-dati-fase2-traccia-lot-sn):
- Se esiste un lotto collegato (tm-lot-sn-num > 0), cerca in COGGENER tipo "LP" le bolle collegate allo stesso lotto
- Per ogni bolla trovata (diversa dalla bolla di entrata gia' elaborata in fase 1), ripete
traccia-matricole-sub-ri-bol-testa
Tracciamento singola matricola (traccia-mtr-mat)¶
Per ogni matricola trovata:
- Chiama COGU07 con operazione
cerca-matricolae opzione "V" con flagfl-figlia-comunque = "S"per gestire eventuali sostituzioni (se esiste una figlia, usa quella) - Legge il magazzino dalla matricola (padre o figlia)
- Legge COGMTUSC (uscita matricola):
- Se tipo "B" (bolla): verifica il tipo bolla (
mtu-bol-tip). Se non e' "I" o "T", cerca il lotto collegato (cerca-lotto-collegato) e se trovato risale al prodotto finito (get-lav-pf). Altrimenti registra come bolla diretta - Se tipo "L" (lavorazione): risale direttamente al prodotto finito
- Se tipo "A" (scarico anomalo): registra come scarico anomalo
- Per le bolle (tipo "B"): legge COGTESBO per data e cliente
- Per gli ordini (tipo "O"): legge COGTESOR per data e cliente
- Scrive il risultato in COGTRANS
Risalita al prodotto finito (get-lav-pf)¶
Ciclo iterativo su COGLAVOR: parte dalla lavorazione indicata e risale la catena cla-pf-ann/cla-pf-num fino a trovare la lavorazione radice (quella il cui prodotto finito coincide con se stessa). Da questa ricava:
- trs-lot-pf: lotto del prodotto finito
- trs-pf: codice merce del prodotto finito
- trs-doc-tip = "O" e trs-ord = cla-ordine: ordine collegato
Ricerca lotto collegato (cerca-lotto-collegato)¶
Cerca in COGGENER tipo "LP" e poi "LM" la bolla di entrata per trovare il lotto di lavorazione collegato.
Paginazione¶
Griglia paginata standard tramite COGTRANS:
x-spaginamento-start: posizionamento inizialern-start-not-less/rn-start/rp-start-less: start su chiave COGTRANSsn-read/sp-read: lettura avanti/indietrord-controlli-fill: tutti i record vengono inclusi, popolatm-tabe incrementan-m
File temporaneo¶
COGTRANS e' un file indicizzato temporaneo con chiave trs-sn + trs-mat, creato nella directory temporanea con nome #COGD82.<operatore>. Viene svuotato (close/open output/close/open i-o) prima di ogni nuova ricerca e cancellato (delete file) alla chiusura.
Note¶
- Il sorgente contiene una ridefinizione con due campi
trs-pf-sotomonimi (riga 52:trs-pf-sot pic x(02)etrs-pf-sot pic 9(05)). Il primo e' il sottogruppo, il secondo e' il codice. Probabilmente un refuso (il secondo dovrebbe esseretrs-pf-cod). - La personalizzazione
ext-case-sndetermina il case del campo serial number (invariato/maiuscolo/minuscolo). - Il programma verifica con lock esclusivo (open output) che il file temporaneo non sia gia' in uso dallo stesso operatore.
Documentazione tecnica -- 2026-04-06