PATCH01 - Utility per patch correttive¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | PATCH01 |
| Titolo | Programma utilita' per patch correttive |
| Modulo | Sistema / Utility |
| Posizione menu | Non a menu (utility interna) |
Scopo e logica generale¶
PATCH01 e' un programma di utilita' interna che esegue patch correttive sui dati del gestionale. Non e' accessibile dal menu applicativo ma viene invocato da operatori tecnici per risolvere problematiche di integrita' dati.
Il programma supporta diverse operazioni di patch selezionate tramite parametro. Ogni operazione gestisce uno specifico tipo di correzione dati.
Operazione: patch-bdp-orfani¶
Riconciliazione di BDP (Buoni di Prelievo) orfani, ovvero righe BDP il cui riferimento alla consegna non e' piu' valido (ad esempio a seguito di riapertura e ri-evasione di ordini).
Strategia di riconciliazione a due fasi¶
Fase 1 — Ricerca via DDT (primaria)¶
Percorso pbo-cerca-via-ddt: ricostruisce la consegna corretta seguendo la catena di link documentali:
- Legge il link DDT dalla tabella COGGENER (tipo "BB") per trovare la testata DDT collegata al BDP
- Cerca la riga merce nella tabella COGLEGCM (tipo "CM") per risalire all'ordine
- Dalla riga ordine trova la nuova consegna in COGCONOR (chiave secondaria k02)
- Verifica corrispondenza merce tra BDP e consegna trovata
Questo percorso e' il piu' affidabile perche' segue i riferimenti documentali esistenti.
Fase 2 — Ricerca per scansione (fallback)¶
Percorso pbo-cerca-nuova-consegna: se il percorso DDT fallisce, scansiona COGCONOR per magazzino + anno + tipo cercando una consegna compatibile:
- Corrispondenza merce (codice articolo)
- Corrispondenza quantita' (
cor-qta) - Corrispondenza cliente (verifica su COGTESOR)
- Accetta il risultato solo se il match e' univoco (
w-conta-match = 1)
Se vengono trovati 0 o piu' di 1 match, la riconciliazione non viene eseguita per quella riga.
Verifiche preliminari¶
pbo-verifica-ddt-cancellato: controlla se il DDT collegato al BDP e' stato cancellato (non esiste in COGTESBO o la riga merce non esiste in COGLEGCM). Se il DDT risulta cancellato, il BDP non viene riconciliato.
Aggiornamento dati¶
Quando viene trovata una nuova consegna valida:
pbo-aggiorna-riga-bdp: aggiorna il riferimento consegna sulla riga BDPpbo-aggiorna-lcm: aggiorna il collegamento COGLEGCM con il nuovo riferimento consegnapbo-aggiorna-qtacons: se il BDP era stato evaso (link "BB" presente), aggiorna la quantita' consumata sulla nuova consegna COGCONOR
Debug¶
Supporta filtro opzionale tramite w-tm-cfg-debug-doc per processare un singolo documento specifico, attivato tramite gesdebug-loadconf.
File e tabelle acceduti¶
| File | Prefisso | Modalita' | Uso |
|---|---|---|---|
| COGRIBDP | rbp- | I-O | Righe BDP (buoni di prelievo) |
| COGCONOR | cor- | I-O | Consegne ordini |
| COGTESOR | tor- | Input | Testate ordini (verifica cliente) |
| COGTESBO | tsb- | Input | Testate bolle/DDT (verifica cancellazione) |
| COGLEGCM | lcm- | I-O | Legami tra documenti (CM=ordine, BB=DDT) |
| COGGENER | gen- | Input | Link generici tra documenti |
Chiavi secondarie utilizzate¶
| Copybook | Tabella | Scopo |
|---|---|---|
coglegcm.k02 |
COGLEGCM | Ricerca legami per documento |
cogconor.k02 |
COGCONOR | Ricerca consegne per magazzino/anno/tipo |
coggener.k02 |
COGGENER | Ricerca link per documento collegato |
Storico modifiche¶
2026-03-24: Riconciliazione BDP orfani a due fasi¶
Implementata strategia di riconciliazione a due percorsi per i BDP orfani:
- Percorso primario via DDT: segue la catena COGGENER BB → COGLEGCM CM → COGCONOR per ricostruire la consegna corretta
- Percorso fallback: scansione COGCONOR con match su merce + quantita' + cliente univoco
- Validazione DDT cancellato: verifica preventiva che il DDT non sia stato cancellato prima di tentare la riconciliazione
- Aggiornamento cascata: aggiorna BDP, COGLEGCM e quantita' consumata COGCONOR in un'unica operazione
- Filtro debug: supporto per processare singolo documento specifico