Vai al contenuto

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 -- Screens
  • cogazien.cpy -- Dati azienda
  • coggener.cpy (con replacing gnr- by ri1-) -- Record generico secondario
  • wgrid.cpy, utilgdad.cpy -- Griglia
  • utils52.cpy, utils68.cpy -- Date e ricerca merce
  • utilu07.cpy -- Utility serial number
  • utilu09.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)

  1. Verifica che il serial number non sia vuoto
  2. Chiama COGU07 con operazione cerca-sn e opzione "C" per risolvere il serial number
  3. Se trovato, legge la matricola da COGMATRI tramite u07-mat-padre
  4. Legge COGMERA2 per verificare il flag ma2-fl-merce-critica
  5. Se la merce non e' critica, rifiuta la ricerca
  6. 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:

  1. Chiama COGU07 con operazione cerca-matricola e opzione "V" con flag fl-figlia-comunque = "S" per gestire eventuali sostituzioni (se esiste una figlia, usa quella)
  2. Legge il magazzino dalla matricola (padre o figlia)
  3. Legge COGMTUSC (uscita matricola):
  4. 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
  5. Se tipo "L" (lavorazione): risale direttamente al prodotto finito
  6. Se tipo "A" (scarico anomalo): registra come scarico anomalo
  7. Per le bolle (tipo "B"): legge COGTESBO per data e cliente
  8. Per gli ordini (tipo "O"): legge COGTESOR per data e cliente
  9. 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 iniziale
  • rn-start-not-less / rn-start / rp-start-less: start su chiave COGTRANS
  • sn-read / sp-read: lettura avanti/indietro
  • rd-controlli-fill: tutti i record vengono inclusi, popola tm-tab e incrementa n-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-sot omonimi (riga 52: trs-pf-sot pic x(02) e trs-pf-sot pic 9(05)). Il primo e' il sottogruppo, il secondo e' il codice. Probabilmente un refuso (il secondo dovrebbe essere trs-pf-cod).
  • La personalizzazione ext-case-sn determina 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