ASN079 - Spunta Interventi Non Eseguiti (Riapertura interventi assegnati)¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | ASN079 |
| Titolo | Riapertura interventi assegnati |
| Modulo | Assist 2.0 |
| Posizione menu | Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Riapertura interventi assegnati |
| Sorgente | cbl/asn079.cbl (~987 righe) |
| Tipo | Programma a griglia con accumulo ID interventi + batch update |
Scopo¶
Disassegnazione massiva di interventi gia' assegnati. L'utente carica progressivamente in griglia gli ID degli interventi da riaprire (con validazione di stato a ogni inserimento), poi su F3 esegue il batch di disassegnazione che:
- ripulisce assegnazione su
ASNINTES(tecnici, team, targa, data/ora ass., stato, tipo att.) e suASNINTE2(magazzino secondario) - riporta la chiamata
ASNCHTESallo stato configurato per la riapertura - scrive storico stati su
ASNCHSTO(operazioniIAdisassegnazione +M1cambio stato) - libera l'agenda CRM tecnici se configurato (
ASNS78) - sincronizza il portale clienti se configurato (
swa004)
Flusso¶
- Init:
ctr-abil,z-99-init-program,open-files,rd-azi, lettura configx99-confi - Setup tasti: F1, F3 conferma, F3 aggiorna, F9 ric. avanzata, S-F4, Ctrl-E
- Loop input (
a-tm-id-inter): accept ID intervento, validazione stato, append in griglia - Batch update (F3 su griglia ->
b-aggiorna->b-tolgo-assegnazione): per ogni riga della griglia esegue la disassegnazione
Validazioni in input (a-tm-id-inter)¶
| Condizione | Messaggio |
|---|---|
rd-asnintes invalido |
"Intervento non esistente" |
acit-ass-data = zero |
"Intervento non assegnato" |
acit-fl-bol = "E" (Elaborato) o "S" (Sospeso) |
"Stato bolle non riapribile" |
acit-stato = "C" (Chiuso) o "Z" (Bianco) |
"Intervento chiuso" |
acht-rec non leggibile |
"Chiamata non esistente" |
acht-situazione in {R,C,Z,V} |
"Chiamata risolta/chiusa/bianca/da vistare" |
acht-classe <> "C" |
"Classe chiamata non valida" |
astc-fl-int-ese = 'S' (stato chiamata "eseguito") |
"Stato chiamata non riapribile" |
Se tutte le validazioni passano: si carica la riga in tm-grid-dati-ele(k) con: id intervento, id chiamata, data/ora chiamata, cliente assistito (codice + nome da COGGEANA), priorita' (codice + descrizione da ASNPRIOR), data/ora scadenza, provincia, localita'.
Logica di disassegnazione (b-tolgo-assegnazione)¶
Per ogni ID in griglia:
- Reload
ASNINTESeASNCHTES - Agenda CRM (se
az-cli-pot = "S"ANDtm-cfg-attivita not = spaces): chiamaASNS78conasns78-tipo-elab = "C"per cancellare gli appuntamenti CRM - Azzeramento ASNINTES:
acit-targa = spaces,acit-tecnico(1) = 0,acit-tecnico(2) = 0,acit-team = spaces,acit-ass-data = 0,acit-ass-ora = 0,acit-stato = spaces,acit-tipo-att = spaces. Seacit-mag <> az-main-mag->acit-mag = spaces.rwr-asnintes. - Azzeramento ASNINTE2 (solo
acit2-mag-tip,acit2-mag-cod-> spaces). Crea il record se non esiste. - Storico disassegnazione (
ASNCHSTO): operazione'IA', descrizione'Disassegnazione intervento N.' + acit-id, data/ora sistema. Progressivo ricavato dax31-cerco-prog-sto(max + 1). - Cambio stato chiamata: se
tm-cfg-cod-stato <> spacese lo stato corrente coincide contm-cfg-stato-asseg, scrive storico'M1'con descrizione'Nuovo stato chiamata: ' + tm-cfg-cod-statoe applicaacht-stato = tm-cfg-cod-stato. Setm-cfg-non-eseguita <> spaces, sovrascrive ulteriormente contm-cfg-non-eseguita. acht-situazione = spacesrwr-asnchtes- Sync portale (TASK 180716): se
tm-cfg-aggiorna-postgres-online = "S"chiamaswa004conutilswa-cli = acht-cli-ass,utilswa-called = k-program-id,utilswa-id-intervento = acit-id
Al termine: cancel "ASNS78".
File acceduti¶
| File | Record | Modo | Uso |
|---|---|---|---|
ASNINTES |
acit-rec |
I-O | Testata intervento (rd / rwr) |
ASNINTE2 |
acit2-rec |
I-O | Estensione intervento (rd / wr / rwr) - magazzino secondario |
ASNCHTES |
acht-rec |
I-O | Testata chiamata (rd / rwr) |
ASNCHSTO |
achs-rec |
Output | Storico stati chiamata (wr / rdprv / st-notmay) |
ASNSTCHM |
astc-rec |
Input | Codici stato chiamata (validazione astc-fl-int-ese) |
ASNPRIOR |
apri-rec |
Input | Descrizione priorita' |
COGGEANA |
ana-rec |
Input | Ragione sociale cliente assistito |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
ASN230 |
Ricerca avanzata interventi (F9 su ID) |
ASNS78 |
Cancellazione agenda CRM (tipo-elab = "C") - se attiva agenda CRM tecnici |
swa004 |
Sincronizzazione online portale clienti (KPN/AreaAPP) - se attivata da config |
GRIDADMN |
Amministrazione griglia (S-F4) |
RNEWCONF |
Lettura config (x99-confi, 6 chiavi) |
Configurazioni (RNEWCONF)¶
| Indice | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | ASSIST |
codice-stato-chiamata |
tm-cfg-cod-stato |
Stato chiamata di default |
| 02 | ASSIST |
cod-attivita-su-chiamata |
tm-cfg-attivita |
Codice attivita' CRM (abilita ASNS78) |
| 03 | ASSIST |
codice-stato-noneseguita |
tm-cfg-non-eseguita |
Stato chiamata "non eseguita" (override finale) |
| 04 | ASSIST |
codice-stato-assegnazione |
tm-cfg-stato-asseg |
Stato corrente "assegnata" (riconoscimento cambio) |
| 05 | AREAAPP |
agg-postgres-online |
tm-cfg-aggiorna-postgres-online |
Sync online portale (TASK 180716) |
| 06 | assist |
tecnici-uso-mag-secondari |
tm-cfg-tecnici-uso-mag-secondari |
Gestione magazzini secondari (TASK 040119) |
Linkage¶
Programma standalone - wcont, wcont1, utilswa (per chiamata a swa004).
utilswa-dati viene popolato in aggiorna-postgres con: utilswa-cli, utilswa-called, utilswa-id-intervento.
Tasti funzione¶
| Tasto | Contesto | Funzione |
|---|---|---|
| F1 | Campo ID | Configurazione |
| F3 | Campo ID | Aggiunge intervento alla griglia |
| F3 | Griglia | Avvia batch disassegnazione (con conferma) |
| F9 | Campo ID | Ricerca avanzata ASN230 |
| Ctrl+E | Griglia | Rimuove riga dalla griglia |
| S-F4 | Griglia | GRIDADMN |
Limiti¶
| Elemento | Limite |
|---|---|
| Interventi in griglia | 500 (k-max-ele-tab) |
Note implementative¶
- Il programma usa il pattern "MODO A" semplificato (no modalita' selezione - solo aggiornamento).
- L'accept sull'ID intervento opera come filtro di validazione + accumulatore: ogni F3 valida e accoda in griglia, l'F3 sulla griglia esegue l'update di tutti gli accumulati.
- Il progressivo dello storico (
achs-prog) viene calcolato inx31-cerco-prog-stoconst-asnchsto-notmay(read max + 1). - La logica TASK 040119 sui magazzini secondari: si crea il record
ASNINTE2se manca, poi si azzeranoacit2-mag-tipeacit2-mag-cod. - La logica TASK 180716 sincronizza la riapertura sull'app portale (PostgreSQL) chiamando
swa004con i riferimenti dell'intervento e del cliente assistito.
Copybook utilizzate
wgrave, wnscr, wopenf, wstato, cogazien, utilncnf, utilasns78, utilasn230, utilu20, utils52, utils93, wgrid, utilgdad, utilswa (linkage), wcont, wcont1. Copybook .prc/.fd/.select/.wrk generate da Screens.