Vai al contenuto

ASN110 -- Inserimento/Gestione Chiamata Assist 2.0

Sorgente: cbl/asn110.cbl | Tipo: Programma interattivo a maschera (Assist 2.0) | Program-ID: ASN110


Scopo

Programma principale di gestione delle chiamate di assistenza (Assist 2.0): consente l'inserimento di una nuova chiamata, la sua modifica, la creazione/gestione degli interventi collegati, l'aggancio a contratti, ordini, commesse e matricole. E' il punto operativo di riferimento per il front-end degli operatori del call center.

Posizione menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Inserimento/Gestione Chiamata.


File e tabelle principali

Tabella Ruolo
ASNCHTES (acht-*) Testata chiamata
ASNINTE / ASNINTE2 (acit-*) Interventi della chiamata
ASNCONT / ASNCN2 (acnt-*, acn2-*) Contratti di manutenzione
ASNCHORD (acho-*) Aggancio ordini ad una chiamata
ASNCHRIP / ASNCHRID Catena riparazioni
COGTESOR / COGTORAG / COGRIGOR (tor-*, tar-*, ror-*) Ordini cliente collegati alla chiamata
COGGEANA (ana-*) Anagrafica clienti (assistito / fatturazione)
COGTABEL Tabelle di servizio (stati chiamata, priorita', tipi attivita', ...)
ARCMATRICOLE Matricole su cui si interviene

Flussi principali

Fase Descrizione
a-tm-data ... a-tm-mag Inserimento dati testata chiamata
x-controlla-tm-oggetto / x-controlla-tm-note Controlli su Oggetto e Descrizione
x-aggiorna-asninte2 / x-aggiorna-tutti-asninte2 Allineamento campi su interventi collegati (es. testata cambiata)
Sezioni di ricerca contratto (acnt-/acn2-) Verifica copertura contrattuale per la data chiamata
Aggancio ordini (SELEZIONE chiamata COGO40) Collega un ordine esistente alla chiamata

Modifiche introdotte (build 2026-06-04)

TASK-5137 -- Modifica Oggetto/Descrizione su chiamata chiusa

In precedenza, una volta che la chiamata era passata in stato acht-situazione = "C" (chiusa), i campi Oggetto (tm-oggetto / acht-oggetto) e Descrizione (tm-note / acht-note) erano di sola lettura. Con TASK-5137:

  • Sui paragrafi a-tm-oggetto e a-tm-note, alla pressione di F3 con acht-situazione = "C" viene eseguito il controllo di validita' e, se ok, si salta direttamente alla data (go to a-tm-data) senza passare per la routine di ctrl-modifica standard (che ne blocca l'editing).
  • I paragrafi x-controlla-tm-oggetto e x-controlla-tm-note rileggono asnchtes per la chiave corrente; se la chiamata e' chiusa e il valore digitato differisce da quello su file:
  • Viene chiesta conferma all'operatore con messaggio "Chiamata chiusa: confermi la variazione dell'oggetto della chiamata?" (analogo per la descrizione)
  • Su F3 viene aggiornato acht-oggetto/acht-note e riscritto il record con rwr-asnchtes
  • Viene impostato il flag locale w-fl-call-swn937 = "S" e chiamato x-aggiorna-tutti-asninte2
  • Al termine w-fl-call-swn937 viene riazzerato

Il flag w-fl-call-swn937 (nuovo, pic x(01)) e' visibile solo all'interno del programma e serve a pilotare la chiamata a SWN937 (vedi sotto) nel ciclo x-aggiorna-tutti-asninte2.

Chiamata a SWN937 (sync KPN)

All'interno del loop di x-aggiorna-tutti-asninte2, dopo perform x-aggiorna-asninte2, e' stato aggiunto:

if tm-cfg-aggiorna-postgres-online = "S" and
   w-fl-call-swn937 = "S"
   move acht-cli-ass     to utilswa-cli
   move k-program-id     to utilswa-called
   move acit-id          to utilswa-id-intervento
   move acht-id          to utilswa-num-attivita
   call "SWN937" using stringhe
   cancel "SWN937"
end-if

Solo se la configurazione aggiorna-postgres-online e' attiva (sincronizzazione real-time verso il DB KPN) e se la modifica e' partita da TASK-5137 (flag S), viene chiamato il nuovo sottoprogramma SWN937 per sincronizzare le note correlate verso ARPINTES su KPN.

TASK-4832 -- Contratto rinnovato non scaduto

Le sezioni di verifica del contratto di manutenzione (6 occorrenze nel codice) sono state armonizzate. Per ogni contratto candidato, prima del confronto con tm-data, ora si esegue:

if acnt-rinnovato = "S"
   if tm-data >= w-acnt-data-da and
      tm-data <= w-acnt-data-a
      move spaces        to acnt-rinnovato
   end-if
end-if

Effetto: un contratto con flag acnt-rinnovato = "S" ma con tm-data interno alla finestra w-acnt-data-da..w-acnt-data-a viene "declassificato" a non-rinnovato, e quindi resta candidato all'aggancio. Prima di TASK-4832 i contratti rinnovati venivano scartati a prescindere dalla data, perdendo la copertura nella finestra di validita' residua.

TASK-5052 -- Aggancio ordine al cliente assistito + descrizione su ordine

Nella sezione di aggancio ordine cliente alla chiamata (chiamata a COGO40 con o40-operazione = "SELEZIONE"):

  • L'intera logica if tm-cli-fat not = zero / move tm-cli-fat to o40-cli-main / else / move tm-ass-cod to o40-cli-main e' stata sostituita con la sola move tm-ass-cod to o40-cli-main. La ricerca degli ordini disponibili si basa quindi sempre sul cliente assistito, indipendentemente dall'eventuale cliente di fatturazione.
  • E' stato disattivato il controllo che impediva di agganciare un ordine intestato al cliente assistito quando esisteva un cliente di fatturazione (if tor-clifor not = tm-cli-fat ... "Ordine non del cliente fatturazione"). Resta attivo solo il controllo tor-clifor not = tm-ass-cod ("Ordine non del cliente assistito").
  • Dopo move "M" to acho-tip / perform wr-asnchord (registrazione su ASNCHORD), e' stato aggiunto un blocco di scrittura della stringa "Chiamata:NNNN" in tor-descr (e poi in tor-descr1 se la prima e' piena) con perform rwr-cogtesor. La stringa viene appesa nel primo spazio libero (cercato con perform varying w-i from 50 by -1 until w-i = 0 or tor-descr (w-i:1) not = spaces), in modo che sull'ordine sia immediatamente visibile il collegamento alla chiamata.

Messaggio "Chiamata Chiusa" -- estensione

Il messaggio mostrato quando si tenta di lavorare su una chiamata chiusa e' stato esteso da 'Stato Chiamata' e 'Riferimento chiamata cliente' a 'Stato Chiamata' + 'Riferimento chiamata cliente' + 'Oggetto' + 'Descrizione chiamata', coerentemente con la nuova abilitazione introdotta da TASK-5137.


Configurazioni rilevanti

Gruppo Chiave Effetto
(area apostgres) aggiorna-postgres-online Se "S", abilita la sincronizzazione real-time verso KPN. Controlla la chiamata a SWN937
... (altre configurazioni esistenti immutate da queste modifiche)

Storico modifiche

Build Descrizione
2026/0508 TASK-4832: contratti acnt-rinnovato = "S" non vengono piu' scartati a prescindere; restano agganciabili se tm-data e' interno a w-acnt-data-da..w-acnt-data-a (6 sezioni di scan contratti aggiornate)
2026/0513 TASK-5052: aggancio ordine sempre su tm-ass-cod, eliminata branca su tm-cli-fat; aggiunta scrittura "Chiamata:NNNN" su tor-descr/tor-descr1 al momento dell'aggancio (rwr-cogtesor)
2026/0604 TASK-5137: abilitata modifica di Oggetto e Descrizione anche con chiamata chiusa, previa conferma operatore; introduzione flag w-fl-call-swn937 e chiamata a SWN937 (se aggiorna-postgres-online = "S") per propagare le variazioni a KPN. Messaggio "Chiamata Chiusa" esteso ai campi Oggetto/Descrizione