Vai al contenuto

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 su ASNINTE2 (magazzino secondario)
  • riporta la chiamata ASNCHTES allo stato configurato per la riapertura
  • scrive storico stati su ASNCHSTO (operazioni IA disassegnazione + M1 cambio stato)
  • libera l'agenda CRM tecnici se configurato (ASNS78)
  • sincronizza il portale clienti se configurato (swa004)

Flusso

  1. Init: ctr-abil, z-99-init-program, open-files, rd-azi, lettura config x99-confi
  2. Setup tasti: F1, F3 conferma, F3 aggiorna, F9 ric. avanzata, S-F4, Ctrl-E
  3. Loop input (a-tm-id-inter): accept ID intervento, validazione stato, append in griglia
  4. 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:

  1. Reload ASNINTES e ASNCHTES
  2. Agenda CRM (se az-cli-pot = "S" AND tm-cfg-attivita not = spaces): chiama ASNS78 con asns78-tipo-elab = "C" per cancellare gli appuntamenti CRM
  3. 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. Se acit-mag <> az-main-mag -> acit-mag = spaces. rwr-asnintes.
  4. Azzeramento ASNINTE2 (solo acit2-mag-tip, acit2-mag-cod -> spaces). Crea il record se non esiste.
  5. Storico disassegnazione (ASNCHSTO): operazione 'IA', descrizione 'Disassegnazione intervento N.' + acit-id, data/ora sistema. Progressivo ricavato da x31-cerco-prog-sto (max + 1).
  6. Cambio stato chiamata: se tm-cfg-cod-stato <> spaces e lo stato corrente coincide con tm-cfg-stato-asseg, scrive storico 'M1' con descrizione 'Nuovo stato chiamata: ' + tm-cfg-cod-stato e applica acht-stato = tm-cfg-cod-stato. Se tm-cfg-non-eseguita <> spaces, sovrascrive ulteriormente con tm-cfg-non-eseguita.
  7. acht-situazione = spaces
  8. rwr-asnchtes
  9. Sync portale (TASK 180716): se tm-cfg-aggiorna-postgres-online = "S" chiama swa004 con utilswa-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 in x31-cerco-prog-sto con st-asnchsto-notmay (read max + 1).
  • La logica TASK 040119 sui magazzini secondari: si crea il record ASNINTE2 se manca, poi si azzerano acit2-mag-tip e acit2-mag-cod.
  • La logica TASK 180716 sincronizza la riapertura sull'app portale (PostgreSQL) chiamando swa004 con 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.