XXXS06 - Cancellazione Chiamata/Intervento (Versione Senza Controlli)¶
Identificazione¶
| Campo | Valore |
|---|---|
| Program-ID | XXXS06 |
| File sorgente | cbl/xxxs06.cbl |
| Tipo | Subroutine COBOL (CALL/CANCEL) |
| Origine | Variante di ASNS06 |
| Scopo | Cancellazione di chiamate e interventi di assistenza, con alcuni controlli disabilitati per permettere la cancellazione di record errati |
Avvertenza¶
ATTENZIONE - PROGRAMMA "TAROCCATO"
Questo programma e' una variante modificata di ASNS06 con il commento esplicito nel sorgente: "VERSIONE TAROCCATA SENZA ALCUNI CONTROLLI PER CANCELLARE CHIAMATE/INTERVENTI ERRATI".
Va utilizzato solo in situazioni di emergenza per rimuovere chiamate o interventi inseriti erroneamente che non sarebbero altrimenti cancellabili con il programma standard ASNS06.
Interfaccia (Linkage Section)¶
Il programma riceve due parametri tramite PROCEDURE DIVISION USING:
| Parametro | Copybook | Contenuto |
|---|---|---|
stringhe |
wcont.cpy |
Contesto generale (operatore ecc.) |
util-asns06 |
utilasns06.cpy |
Parametri specifici della chiamata |
Campi principali di util-asns06¶
| Campo | Tipo | Descrizione |
|---|---|---|
asns06-id-chiamata |
9(12) | ID della chiamata da cancellare |
asns06-id-intervento |
9(12) | ID dell'intervento da cancellare (solo tipo "I") |
asns06-tipo-canc |
X(01) | "C" = cancella chiamata (default), "I" = cancella intervento |
asns06-forza-acpk |
X(01) | "S" = forza cancellazione anche se la chiamata ha una successiva programmata |
asns06-disabilita-postgres |
X(01) | "S" = non eseguire ASNS06AP (aggiornamento Postgres) |
asns06-esito |
X(01) | Output: "S" = successo, "N" = errore |
asns06-msg |
X(...) | Output: messaggio di errore in caso di esito "N" |
Flusso principale¶
a000
├─ ctr-abil (controllo abilitazioni)
├─ rd-azi (lettura azienda)
├─ open-files (apertura files)
├─ x99-load-config (caricamento configurazioni da RNEWCONF)
├─ se tipo-canc = "C" → a-cancella-chiamata
└─ se tipo-canc = "I" → b-cancella-intervento
Sezione A - Cancellazione Chiamata (a-cancella-chiamata)¶
A.1 - Controlli attivi (NON disabilitati)¶
A.1.1 - Chiamata successiva (acpk)
Se la chiamata ha un record ASNCHPLK con acpk-id-sucessiva > 0 e il
parametro asns06-forza-acpk non e' "S", la cancellazione viene bloccata.
Questo controllo e' attivo anche in XXXS06.
A.1.2 - Esistenza chiamata
Se la chiamata non esiste in ASNCHTES, la cancellazione viene bloccata
con esito "N". Questo controllo e' attivo anche in XXXS06.
A.1 - Controlli DISABILITATI (commentati)¶
A.1.2b - Blocco chiamata chiusa/risolta/fittizia (DISABILITATO)
In ASNS06, se la configurazione cancella-chiamata-chiusa vale "N",
non e' possibile cancellare una chiamata con acht-situazione in:
- "R" (risolta), "C" (chiusa), "Z" (fittizia)
In XXXS06 questo blocco e' completamente commentato (righe 215-237).
A.1.3 - Controllo presenza documenti di magazzino (DISABILITATO)
In ASNS06, la ricerca di interventi con documenti collegati
(cerca-intervento-condoc) blocca la cancellazione se esistono DDT o
altri documenti associati (salvo un solo documento di riparazione).
In XXXS06 la perform cerca-intervento-condoc e' commentata (righe
250-252); la variabile w-inter-con-doc rimane inizializzata a spazi,
quindi il controllo successivo non scatta mai.
A.1 - Configurazioni di permuta non caricate (DISABILITATO)
In ASNS06, la x99-load-config carica anche:
- cau-rip-permuta-fat (riga 05)
- cau-rip-permuta-nofat (riga 06)
In XXXS06 queste voci sono commentate e i relativi campi
tm-cfg-cau-rip-permuta-fat e tm-cfg-cau-rip-permuta-nofat vengono
forzati a zero (righe 1098-1099).
A.2 - Elaborazione cancellazione chiamata¶
Tutti i passi di elaborazione sono identici ad ASNS06.
A.2.1 - Aggiornamento Postgres (ASNS06AP)
Se tm-cfg-aggiorna-postgres-online = "S" e
w-asns06-disabilita-postgres <> "S", viene eseguita la CALL a ASNS06AP.
A.2.2 - Cancellazione a cascata delle tabelle della chiamata
Il programma cancella, nell'ordine:
| Ordine | Tabella (file) | Descrizione |
|---|---|---|
| 1 | ASNINTES (acit) | Interventi collegati (loop con a221-cancella per ognuno) |
| 2 | ASNINTE2 (acit2) | Dati aggiuntivi intervento (tabella 2) |
| 3 | ASNCHTES (acht) | Testata chiamata |
| 4 | ASNCHDET (achd) | Matricole/seriali della chiamata |
| 5 | ASNCHPRP (achp) | Prestazioni/materiali previsti |
| 6 | ASNCHSTO (achs) | Storico modifiche della chiamata |
| 7 | ASNCHPRV (achv) | Collegamenti a preventivi |
| 8 | ASNCHPLK (acpk) | Record "chiamata successiva" (se questa e' la successiva di una programmata) |
| 9 | ASNCHORD (acho) | Collegamenti a ordini |
| 10 | COGRIGCM (rgc) | Raccordo chiamata-commessa (tipo "CH") |
| 11 | COGIMAGE (img) | Immagini collegate (tipo doc "A2"), tramite CALL COGU06 |
| 12 | COGNCDOC (ncr) | Non conformita' collegate (solo lettura, poi CALL COGNA0) |
Per ogni intervento cancellato (a221-cancella), vengono cancellate
le sottoentita':
| Tabella (file) | Descrizione |
|---|---|
| ASNINTES (acit) | Legame CRM attivita' (CALL ASNS78 se az-cli-pot="S") |
| ASNINDAG (aitd) | Dati aggiuntivi intervento (esclusi tipo "S" e "U") |
| ASNINDE2 (acid2) | Righe dettaglio intervento (tabella 2) |
| ASNINDED (acidd) | Righe dettaglio intervento tipo "D" |
| ASNINTMP (acip) | Tempi di lavoro su intervento |
| ASNINDIF (acii) | Difetti/soluzioni su intervento |
| ASNINDET (acid) | Dettaglio intervento (testata dettagli) |
| ASNAPPPR (asnapppr) | Prestazioni APP Mobile |
| ASNAPPMT (asnappmt) | Materiali APP Mobile |
| ASNINDMG (acim) | Legami con documenti di magazzino |
Dopo la cancellazione di tutti gli interventi, viene chiamato ASNS23
con operazione "CANCELLA" per aggiornare la produzione per tecnico.
Sezione B - Cancellazione Intervento (b-cancella-intervento)¶
B.1 - Controlli (attivi in XXXS06)¶
- Intervento non trovato in ASNINTES → blocco
acit-fl-bol = "E"(documenti magazzino gia' creati) → blocco- Presenza di documenti in ASNINDMG con
acim-tes-num <> 0→ blocco
Nota: questi controlli non sono stati disabilitati in XXXS06.
B.2 - Cancellazione a cascata intervento¶
Uguale ad ASNS06:
1. a221-cancella (stesse sottoentita' descritte sopra)
2. del-asnintes
3. del-asnintes-storico (scrive una riga in ASNCHSTO con operazione "IC")
4. del-asninte2
5. CALL ASNS23 (cancella produzione tecnico)
6. CALL COGNA0 con "RICALCOLA" per ogni non conformita' collegata
CALL esterne¶
| Programma | Parametri | Quando |
|---|---|---|
| ASNS06AP | stringhe, util-asns06 |
Aggiornamento Postgres (se configurato e non disabilitato) |
| ASNS23 | stringhe, util-asns23 |
Cancellazione produzione per tecnico (per ogni intervento) |
| ASNS78 | stringhe, util-asns78 |
Cancellazione legame CRM attivita' (se az-cli-pot="S") |
| COGU06 | stringhe, util-u06 |
Eliminazione immagini collegate alla chiamata |
| COGNA0 | stringhe, util-cogna0 |
Ricalcolo non conformita' collegate (oper. "RICALCOLA") |
| RNEWCONF | stringhe, util-ncnf, ncnf-tab |
Lettura configurazioni al bootstrap |
Tutti i CALL sono seguiti da CANCEL (stile subroutine dinamica).
COPYbook utilizzati¶
FILE-CONTROL / FD¶
| Copybook | Contenuto |
|---|---|
feurtab.fd |
FD file tabelle di sistema |
asns06.select |
SELECT dei file del modulo assistenza |
cogfiles.cpy |
Record del file FEURTAB |
asns06.fd |
FD dei file del modulo assistenza |
WORKING-STORAGE¶
| Copybook | Contenuto |
|---|---|
asns06.wrk |
Working-storage condivisa con ASNS06 |
k-personal.cpy |
Costanti personali (program-id ecc.) |
costanti-tipi-documento.cpy |
Costanti tipi documento (k-doc-tip-*) |
utilncnf.cpy |
Struttura per RNEWCONF |
wstato.cpy |
Status file (w-verbo-ok, w-fine-file ecc.) |
wgrave.cpy |
Gestione errori gravi |
wopenf.cpy |
Open file utility |
wnscr.cpy |
Gestione schermo |
cogazien.cpy |
Dati azienda (az-cli-pot ecc.) |
utilasns23.cpy |
Parametri per CALL ASNS23 |
utilasns78.cpy |
Parametri per CALL ASNS78 |
utilu06.cpy |
Parametri per CALL COGU06 |
utilcogna0.cpy |
Parametri per CALL COGNA0 |
LINKAGE¶
| Copybook | Contenuto |
|---|---|
wcont.cpy |
Parametro stringhe (contesto) |
wcont1.cpy |
Estensione contesto |
utilasns06.cpy |
Parametri ingresso/uscita ASNS06 |
PROCEDURE DIVISION¶
| Copybook | Contenuto |
|---|---|
asns06.decla |
DECLARATIVES (gestione errori I/O) |
stato.cpy |
Paragrafi gestione stato |
stato1.cpy |
Paragrafi gestione stato (ext.) |
winmsg.cpy |
Messaggi di warning |
grave.cpy |
Gestione errori gravi |
opengen.cpy |
Apertura/chiusura file |
mmsubw.cpy |
Utility subroutine |
asns06.prc |
Paragrafi I/O condivisi con ASNS06 |
cogimage.k02 |
Accesso indicizzato COGIMAGE |
asnchplk.k02 |
Accesso indicizzato ASNCHPLK |
cogrigcm.k02 |
Accesso indicizzato COGRIGCM |
asnintes.k02 |
Accesso indicizzato ASNINTES |
cogmatri.k03 |
Accesso indicizzato COGMATRI |
cogncdoc.k02 |
Accesso indicizzato COGNCDOC |
Differenze rispetto ad ASNS06¶
| Aspetto | ASNS06 | XXXS06 |
|---|---|---|
| Blocco chiamata chiusa/risolta | Attivo | DISABILITATO (commentato) |
| Controllo documenti magazzino | Attivo | DISABILITATO (commentato) |
| Config. cau-rip-permuta-fat/nofat | Caricata | DISABILITATO (forzata a zero) |
| Resto della logica | Identico | Identico |
Paragrafi chiave¶
| Paragrafo | Descrizione |
|---|---|
a000 |
Main: inizializzazione, dispatch tipo cancellazione |
a-cancella-chiamata |
Controlli (parziali) + cancellazione a cascata chiamata |
a221-cancella |
Cancellazione sottoentita' di un intervento |
a221-10-loop |
Loop sugli interventi della chiamata |
a222-10-loop |
Loop sulle immagini della chiamata |
aggio-35-loop |
Loop sulle non conformita' della chiamata |
b-cancella-intervento |
Controlli + cancellazione singolo intervento |
del-asnintes-storico |
Scrittura record storico "IC" su ASNCHSTO |
scrivi-asnchsto |
Scrittura con gestione progressivo (anti-loop PBUG-2105) |
x99-load-config |
Caricamento configurazioni tramite RNEWCONF |
cerca-intervento-condoc |
(Non invocata in XXXS06) Ricerca interventi con doc. |
Note tecniche¶
- Il programma condivide quasi tutto il codice con ASNS06 tramite copybook
(
asns06.select,asns06.fd,asns06.wrk,asns06.prc); il sorgente XXXS06 contiene solo le sezioni modificate. - Il flag
w-asns06-disabilita-postgrese' stato introdotto il 25/10/2019 per evitare doppi aggiornamenti quando XXXS06 viene richiamato da programmi DB Frontiera che interagiscono direttamente con Postgres. - Il fix PCASE-3951 (10/06/24) e' presente anche in XXXS06: i record
ASNINDAGconaitd-tipo = "S"o"U"non vengono cancellati. - Il fix PBUG-2105 (12/09/24) e' presente: protezione loop infinito su
scrivi-asnchstoquando il progressivo ASNCHSTO e' esaurito.