COGO05W - Riapertura ordine chiuso: consegne e BDP orfani¶
| Campo | Valore |
|---|---|
| ID ClickUp | 869cknur6 |
| Data segnalazione | 2026-03-17 |
| Data risoluzione | 2026-03-25 |
| Programmi coinvolti | COGO05W, COGO16CW, COGU13, COGS17N |
| Impatto | Alto |
Sintomo¶
Dopo la modifica di un ordine cliente gia' completamente evaso, i buoni di prelievo (BDP) risultano collegati a una consegna inesistente. L'ordine appare come non evaso nonostante il DDT sia gia' stato emesso.
Condizioni per il verificarsi¶
- Ordine cliente completamente evaso (tutte le righe con qtacons = qtaord)
- Ordine chiuso dalla quadratura automatica (COGU13 imposta
tor-chiu = "C") - Configurazione con consegne automatiche attiva (
tm-cfg-cons-aut = "S"otm-cfg-tipo-ord = "C") - L'utente riapre l'ordine e aggiunge nuove righe
Causa¶
In COGO05W, il flag tm-chiu viene caricato da tor-chiu all'apertura dell'ordine e non viene ricalcolato quando vengono aggiunte nuove righe. All'aggiornamento (riga ~14212) il flag "C" viene riscritto su tor-chiu tale e quale.
La procedura tratta-consegne che segue:
- canc-consegne: cancella tutte le consegne esistenti tramite COGS17N (incluse quelle con BDP agganciati)
- ins-consegne: chiama COGO16CW con operazione
"ins-auto" - COGO16CW rilegge COGTESOR, trova
tor-chiu = "C", stampa "Ordine chiuso" e esce senza ricreare le consegne
Risultato: tutte le consegne cancellate, nessuna ricreata. I BDP restano agganciati a chiavi consegna inesistenti.
Al rientro successivo, l'utente forza la ricreazione (F3) e COGO16CW genera consegne con un nuovo numero (es. 002342 anziche' 002190), scollegando definitivamente i BDP.
Sequenza dal log¶
| Ora | Azione | Effetto |
|---|---|---|
| 15:14:23 | Prima modifica: cancella 2 righe, varia le altre | tratta-consegne ricrea consegne 002190 - OK |
| 15:14:40 | COGU13 quadratura | Imposta tor-chiu = "C" (righe rimaste tutte evase) |
| 15:15:53 | Terza modifica: aggiunge 4 nuove righe | tratta-consegne cancella 002190, COGO16CW "Ordine chiuso" - 0 consegne |
| 15:17:03 | Quarta modifica: cancella 2 righe, conferma | COGO16CW crea consegne con numero 002342 - BDP orfani |
Correzione¶
In COGO05W, prima della chiamata a tratta-consegne: se tor-chiu = "C", riaprire l'ordine (tor-chiu = spaces) e riscrivere COGTESOR. In questo modo COGO16CW non trova piu' l'ordine chiuso e ricrea correttamente le consegne preservando il numero originale.
Riconciliazione — PATCH01¶
Creato il programma PATCH01 (utility patch correttive) per riconciliare i BDP orfani gia' presenti nel sistema. L'operazione "A" (Legame BDP-consegna) opera con due percorsi:
- Percorso via DDT (primario): ricostruisce la consegna seguendo la catena COGGENER "BB" → testata DDT → COGLEGCM "CM" → ordine → COGCONOR
- Percorso fallback: scan COGCONOR per mag+anno+tipo, con match esatto su merce, quantita', cliente (da COGTESOR), consegna non evasa (
cor-qtacons = 0), non coperta da altri BDP. Accetta solo match unico
Risultato: su circa 10.000 righe BDP, 120 risultano orfane. La maggior parte relativa a BDP incorporati in DDT successivamente cancellati (skip automatico). I casi residui effettivamente riconciliati sono limitati.
Note¶
Programma COGO05W rilasciato a DEA, da rilasciare a BM.