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.

TASK-5095 -- Ricerca commessa/sottocommessa dall'ordine cliente (build 2026-06-10)

Quando una chiamata viene inserita partendo da un ordine cliente (w-dc-ordine valorizzato, paragrafo di composizione di tm-oggetto dopo w-dc-ord-num), e' stato aggiunto il perform cerca-ord-commessa thru ex-cerca-ord-commessa. Il nuovo paragrafo:

  1. Inizializza tm-com-tsc (commessa) e tm-com-sot (sottocommessa).
  2. Scorre COGRIGOR sulle righe dell'ordine (ror-testa = w-dc-ordine).
  3. Per ogni riga ordine cerca su COGRIGCM un record rgc-tip = "OR" con rgc-chiave = ror-chia1.
  4. Il primo riferimento trovato (rgc-tsc / rgc-sot) viene propagato in tm-com-tsc / tm-com-sot, in modo che il campo commessa della chiamata sia precompilato senza richiesta manuale all'operatore.

Effetto operativo: la nuova chiamata generata da un ordine cliente eredita automaticamente la commessa/sottocommessa eventualmente associata alle sue righe, riducendo errori di digitazione e velocizzando il caricamento.

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
2026/0610 TASK-5095: in inserimento chiamata da ordine cliente, ricerca automatica della commessa/sottocommessa via COGRIGOR -> COGRIGCM (tipo OR) e precompilazione di tm-com-tsc / tm-com-sot (paragrafo cerca-ord-commessa)

Casistica problemi noti

Creazione chiamata da Ordine: commessa/sottocommessa non ereditata

  • Sintomo: creando una chiamata con "S-F6 = Creazione chiamata di assistenza" dalla finestra finale della Gestione Ordine cliente, la commessa/sottocommessa presente sull'ordine non veniva riportata sulla chiamata generata, costringendo l'operatore a reinserirla manualmente.
  • Causa: la composizione della chiamata da ordine non risaliva dalle righe ordine (COGRIGOR) al collegamento di commessa (COGRIGCM), per cui i campi commessa restavano vuoti.
  • Correzione: aggiunto il paragrafo cerca-ord-commessa che scorre COGRIGOR (ror-testa = w-dc-ordine), cerca su COGRIGCM un collegamento di tipo ordine (rgc-tip = "OR", rgc-chiave = ror-chia1) e propaga il primo rgc-tsc / rgc-sot su tm-com-tsc / tm-com-sot (TASK-5095).
  • Riferimento: dettaglio bug - ClickUp 869da256g