Vai al contenuto

ASN120 - Inserimento / Gestione intervento (assegnazione chiamata)

Sorgente: cbl/asn120.cbl (7.278 righe) | Tipo: Programma interattivo centrale del modulo Assist 2.0, maschera a campi con menu a tendina, inserimento/variazione/cancellazione intervento e cascata di programmi collegati

Menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta > Inserimento/Gestione Intervento


Scopo

E' il programma centrale della gestione interventi. A partire da una chiamata di assistenza (ASNCHTES, classe C) crea e gestisce gli interventi collegati (ASNINTES + estensione ASNINTE2): assegnazione a squadra/tecnici, data e ora, tipo attivita' (agenda/generico), magazzino, commessa, destinazione diversa, note, numero intervento cliente, ore e tecnici previsti.

Gestisce l'intero ciclo di vita dell'intervento:

  • Inserimento (fl-vario = "I") e variazione (fl-vario = "V"), con numerazione interventi automatica (per chiamata C o progressiva)
  • Cancellazione (F4), con cancellazione a cascata di tutti i record collegati (dati aggiuntivi, righe, movimenti giornalieri commessa, righe/materiali da APP mobile)
  • Ingresso da menu, da called (ASN120-CALLED), e in modalita' cancellazione chiamata (asn120-tipo-elab = "C"): cancella tutti gli interventi collegati alla chiamata
  • Storico modifiche chiamata (ASNCHSTO), aggiornamento situazione chiamata e stato, avviso cliente (email/SMS/telefono)
  • Integrazione con agenda/CRM (ASNS78, sincronizzazione Google Calendar), archiviazione ottica automatica del modulo di stampa, aggiornamento PostgreSQL online (APP)
  • Gestione chiamate di laboratorio quando modo-chiusura = "E" (accetta chiamate classe ≠ C) e workflow ASNCHWKF
  • Menu a tendina per non conformita' (COGNA0/COGNA1)

Dalla dialog finale l'utente puo' proseguire con prestazioni da eseguire (ASN111), stampa (ASN060) e invio email/SMS (ASN082).


Interfaccia chiamato (linkage)

util-asn120 (utilasn120.cpy):

Campo Tipo Uso
asn120-called x(20) Vale "ASN120-CALLED" per invocazione da altro programma
asn120-caller x(08) Programma chiamante
asn120-id-chiam-in 9(12) Id chiamata di ingresso
asn120-id-inter-in 9(12) Id intervento di ingresso
asn120-id-inter-ou 9(12) Id intervento in output
asn120-tipo-elab x(01) "C" = cancellazione di tutti gli interventi della chiamata (batch, senza interfaccia)

Riceve inoltre in linkage utilg32.cpy (lookup tecnico) e utilswa.cpy (sincronizzazione area/web).

File acceduti

Input/lettura principali

File Copybook Uso
ASNCHTES acht-rec Testata chiamata: classe, situazione, cliente assistito/fatturazione, priorita', stato, tipo attivita', contratto, avvisa-cliente, area tecnica
ASNCHDET achd-rec Dettaglio chiamata: matricola (per tecnico proposto, note interno)
ASNCHSTO achs-rec Storico modifiche chiamata (scrittura eventi assegnazione/stato)
ASNCHWKF achw-rec Workflow chiamata lab. (step assegnazione intervento, chiave k02)
ASNSTCHM astc-rec Stati chiamata: descrizione, flag fatturazione sospesa
ASNTPATT atpa-rec Tipo attivita': descrizione, colore, contatore n. intervento cliente
ASNPRIOR apri-rec Priorita' chiamata
ASNTEAMS atea-rec Squadre (con decorrenza, chiave k02)
ASNAREAT arte-rec Aree tecniche (sede/magazzino di competenza)
ASNMATRI amtr-rec Matricole (tecnico collegato, descrizione)
COGGEANA ana-rec Anagrafica clienti
COGDESTI dst-rec Destinazioni diverse
COGRIFER rif-rec Riferimenti/tecnici
COGANATN atn-rec Raccordo anagrafica-tecnico
COGMAGAZ / COGMAGPE magz-rec / mgp-rec Magazzini interni / esterni (secondari)
COGRACCO rac-rec Raccolta contabile (verifica documenti fatturati, chiave k02)
COGMATRI mtr-rec Matricole di carico (serial number su documento, chiave k03)
COGTESBO tes-rec Testate documento (causale, per riapertura)
CRMANAGR cra-rec Nominativi CRM (cliente prospect)

Output/scrittura principali

File Copybook Scrittura
ASNINTES acit-rec Testata intervento (insert/update/delete): dati assegnazione, tecnici, stato, commessa, magazzino, n. intervento cliente
ASNINTE2 acit2-rec Estensione intervento: magazzino secondario, ore/tecnici previsti
ASNINDAG aitd-rec Dati aggiuntivi intervento (note uso interno, tipo I)
ASNCHSTO achs-rec Eventi storico (inserimento/assegnazione, cambio stato)
ASNCHTES acht-rec Aggiornamento situazione/stato chiamata
ASNINDET/ASNINDE2/ASNINDED Cancellazione righe intervento (in cancellazione)
ASNINTMP/ASNINDIF acip-rec/acii-rec Cancellazione righe temporanee/differenze
ASNAPPPR/ASNAPPMT Cancellazione righe/materiali da APP mobile
COGDMRIG/COGRIGCM dmr-rec/rgc-rec Cancellazione movimento giornaliero commessa collegato (PBUG-1171)

Chiavi secondarie

  • asnteams.k02
  • asnintes.k02 (id chiamata), k09 (n. intervento cliente)
  • asnchwkf.k02 (id chiamata + step)
  • cogimage.k02, cogracco.k02, cogmatri.k03, cogrigcm.k02

Programmi chiamati (principali)

Programma Operazione Scopo
ASN210 ASN210-CALLED F9: ricerca avanzata chiamata
ASN230 ASN230-CALLED F9 su intervento: ricerca intervento della chiamata
ASN038 (lookup) F8: lookup squadra
ASN040 (lookup) F8: lookup targa mezzo
ASN050 (called) F6: gestione contratto collegato
ASN060 (stampa) Stampa modulo intervento (dialog finale / F9)
ASN082 (called) Invio email/SMS intervento (dialog finale F11 / S-F1)
ASN111 ASN111-CALLED S-F7 / dialog F7: prestazioni da eseguire
ASNS78 Sincronizzazione intervento con agenda/attivita' CRM
ASNS05 INVIO-INTERVENTO Invio avviso cliente (email/SMS) su assegnazione
ASNS19 CERCA Assegnazione tecnico per zona (in inserimento senza tecnico)
ASNS23 CANCELLA Pulizia collegata alla cancellazione intervento
ASNS30 ESISTENZA-ARPINTES Verifica esistenza id intervento su Postgres (numerazione)
COGNA0 COGNA0-CALLED (CREAZIONE) Menu non conformita': inserimento nuova NC su chiamata
COGNA1 COGNA1-CALLED Menu non conformita': consultazione NC
COGU06 Inserisci Archiviazione ottica automatica del modulo stampa chiamata
COGU11 cancella-tutto Cancellazione documenti magazzino collegati (riapertura)
COGU35W (via call-u35) Gestione commessa/sottocommessa in testata
COGG32 (via call-g32-generic) Lookup tecnici 1-5
POSTIT Post-it cliente all'ingresso
getaddr Indirizzo/mappa/itinerario luogo evento (Google maps)
syncal (AreaToCale) Sincronizzazione real-time Google Calendar
swa004 Aggiornamento PostgreSQL online (APP)
W$MENU Menu a tendina (File / Non conformita' / ?)
DIALOGS Dialog finale operazioni
RNEWCONF Configurazioni

Lookup gestiti da subroutine incluse: send-w92 (destinazioni), send-w36 (magazzino), send-w115 (magazzino secondario).

Configurazioni RNEWCONF (x99-load-config)

Idx Gruppo Chiave Variabile Effetto
01 assist cod-attivita-su-chiamata tm-cfg-attivita Tipo attivita' CRM da collegare alla chiamata
02 abilita clipot agenda tm-cfg-agenda Abilita agenda clienti potenziali
03 assist arc-ott-autom tm-cfg-arc-ott S = archiviazione ottica automatica modulo stampa
04 assist cancella-chiamata-chiusa tm-cfg-canc-chia-chiu Permette cancellazione su chiamata chiusa
05 assist gestione-dest-diversa tm-cfg-gestione-dest-diversa Abilita destinazione diversa
06 assist codice-stato-chiamata tm-cfg-cod-stato Stato chiamata di partenza
07 assist codice-stato-assegnazione tm-cfg-stato-asseg Stato a cui portare la chiamata all'assegnazione
08 assist tipo-numerazione-interventi tm-cfg-tipo-numerazione C = numerazione interventi legata alla chiamata (max 50/chiamata)
09 assist posizione-cursore-asn120 tm-cfg-posizione-cursore B = cursore iniziale su barcode
10 PROGCOGV51 euta-c041-db-sca tm-cfg-db-sca Config scarico distinta (per COGU11)
11 PROGCOGV51 euta-c041-db-esc tm-cfg-db-esc Config esclusioni distinta (gru/sot)
12 ORDINI GESTIONE-DISTINTE-KIT tm-cfg-gestione-kit Gestione distinte kit (per COGU11)
13 areaapp (pac C) agg-postgres-online tm-cfg-aggiorna-postgres-online S = aggiornamento Postgres online (APP)
14 assist gestione-impianti-carburanti tm-cfg-gest-imp-carbur S = squadra + tecnici multipli (carburanti)
15 assist nome-tecnico-breve-cruscotto tm-cfg-sigla-breve-tec Sigla breve tecnico
16 assist gestione-magazzino-intervento tm-cfg-gest-mag Abilita campo magazzino intervento
17 ass-chiam intervento-in-agenda tm-cfg-intervento-in-agenda Tipo attivita' proposto (G agenda)
18 areaapp (pac C) calendar-syncro-real-time tm-cfg-syncro-calendar-rt S = sincronia Google Calendar
19 assist tecnici-uso-mag-secondari tm-cfg-tecnici-uso-mag-secondari S = magazzini secondari (esterni) per tecnico
20 ENTRATE CAU-RIPARAZIONE-ASSIST tm-cfg-cau-rip Causale entrata riparazione (deroga cancellazione)
21 ass-strum modo-chiusura tm-cfg-modo-chiusura E = accetta chiamate non classe C (chiusura esterna/laboratorio)
22 entrate cau-rip-permuta-fat tm-cfg-cau-rip-permuta-fat Causale permuta riparazione fatturata
23 entrate cau-rip-permuta-nofat tm-cfg-cau-rip-permuta-nofat Causale permuta riparazione non fatturata

Link di riferimento: gruppi assist, abilita, ass-chiam, ass-strum, entrate, ordini, areaapp.

Logica di elaborazione

Ingresso (apri / a4)

Tre modalita' di ingresso:

  1. Menu / interattivo: parte da a-tm-id-chiam. Se posizione-cursore = "B" parte dal barcode
  2. Called da menu (ASN120-CALLED, tipo-elab ≠ "C"): precarica id chiamata e intervento; controlla che la chiamata non sia in stato non modificabile (C/Z/V) e (se non modo-chiusura = E) che sia classe C
  3. Cancellazione chiamata (asn120-tipo-elab = "C"): verifica che nessun intervento abbia documenti collegati non anticipati, poi cancella tutti gli interventi (x9-cancella-tutto) e termina

Sequenza di accept

Chiave: id chiamata → id intervento → barcode (a-avanti valida la chiave x-controlla-chiave). Dati: tipo attivita' → squadra → tecnici 1-5 → data/ora assegnazione → targa → spostabile → commessa → magazzino → n. intervento cliente → ore previste → n. tecnici previsti → destinazione → note → note interno. Molti campi hanno visibilita' condizionata (cliente CRM, gestione carburanti, magazzini secondari) e la navigazione salta i campi non pertinenti.

Il barcode (a-tm-barcode) codifica id chiamata + progressivo immagine: se riconosciuto risolve direttamente l'intervento tramite acit-img-prog.

Ricerca intervento (cerco-id-inter)

Se collegato a una chiamata con un solo intervento "Aperto", lo propone automaticamente.

Aggiornamento (a-fine-datia-fine-dati-ok)

  1. Valida tutti i dati (x-controlla-dati); blocca la modifica se l'intervento ha documenti collegati non anticipati (tm-no-aggio)
  2. Numerazione: se tipo-numerazione = "C" l'id intervento e' id-chiamata * 100 + progressivo (max 50 interventi per chiamata, controllo ws-tm-id-int-int); altrimenti progressivo globale
  3. Riporta i campi maschera su acit-* e acit2-*; imposta lo stato (A se data assegnazione e tecnico valorizzati); assegnazione zona automatica (assegnazione-zona → ASNS19) se senza tecnico
  4. Scrive/riscrive ASNINTES, ASNINTE2, ASNINDAG (note interno), storico ASNCHSTO
  5. Aggiorna situazione chiamata (A se assegnato, " " se tecnico azzerato) e, se configurato, lo stato chiamata a stato-asseg (con evento storico M1); rispetta la fatturazione sospesa
  6. Per chiamate lab. (classe ≠ C) completa lo step assegna-int in ASNCHWKF
  7. Invio avviso cliente (ASNS05) su assegnazione/variazione data-ora se avvisa-cliente = E/S
  8. Archiviazione ottica automatica del modulo (COGU06) se arc-ott-autom = "S" in inserimento
  9. Sincronizzazione agenda CRM (ASNS78) e Google Calendar (syncal); aggiornamento Postgres (swa004) se attivi
  10. Dialog finale con opzioni: prestazioni da eseguire (F7→ASN111), stampa (F9→ASN060), invio chiamata email/SMS (F11→ASN082)

Cancellazione (F4 → cancella / a1-cancella)

Bloccata se non abilitato, se intervento pre-chiuso (stato = "P"), se collegato a bolle elaborate (fl-bol = "E") o a documenti magazzino non anticipati. In cascata: pulizia attivita' CRM (ASNS78/ASNS23), dati aggiuntivi ASNINDAG (esclusi tipo S/U, PCASE-3951), righe ASNINDE2/ASNINDED/ASNINTMP/ASNINDIF/ASNINDET (+ movimento giornaliero commessa COGDMRIG/COGRIGCM, PBUG-1171), righe/materiali APP ASNAPPPR/ASNAPPMT, ASNINTE2.

Riapertura intervento (xf6-apri-inter)

Funzione disabilitata (go to xf6-99): la riapertura con cancellazione documenti magazzino via COGU11 e' demandata al programma di gestione intervento.

Messaggi principali

I messaggi sono referenziati come m-asn120-<n>-<sub> (tabella lingua) e recuperati con x-set-m-asn120-<id>:

ID Contesto
m-asn120-2-1 ... 9-1 Cancellazione chiamata: chiamata in stato non consentito / interventi con documenti
m-asn120-10-1 Titolo maschera
m-asn120-11-1 ... 18-1 Chiamata in stato Chiusa/Fittizia/Vistare / non classe C
m-asn120-20-1 ... 28-1 Intervento con documenti (no modifica), conferma inserimento/variazione, abilitazioni
m-asn120-29-1/30-1 Errore scrittura/riscrittura intervento
m-asn120-32-1 ... 39-1 Cancellazione: abilitazione, bolle elaborate, documenti collegati, esito
m-asn120-46-1/47-1 Coerenza numerazione intervento-chiamata (tipo-numerazione = C)
m-asn120-50-1 ... 88-1 Validazioni campi (chiave, barcode, squadra, tecnici, magazzino, destinazione, n. intervento cliente)
m-asn120-89-1 ... 96 Etichette pulsanti custom e messaggi specifici (agenda obbligatoria, pre-chiuso)

Storico modifiche significative (dal sorgente)

  • 230913: gestione commessa/sottocommessa (COGU35W)
  • 300714: gestione impianti carburanti (squadra + tecnici multipli), sigla breve tecnico
  • 271114: campo magazzino intervento, area tecnica
  • 101018: cliente assistito puo' essere nominativo CRM (prospect)
  • 241018: magazzini secondari esterni per tecnico (W115)
  • 190117: fatturazione sospesa (no cambio stato automatico)
  • 111119: PCASE-1003/1004 data assegnazione non obbligatoria se tecnico valorizzato
  • 041022: PBUG-1421 data/ora assegnazione obbligatorie per tipo attivita' "Agenda"
  • 271022: evento storico M1 al cambio stato automatico
  • 270723: modo-chiusura = E accetta chiamate non classe C (laboratorio); step workflow
  • 151123: causali permuta riparazione (fat/no-fat) nella deroga cancellazione documenti
  • 130122: PBUG-1171 cancellazione movimento giornaliero commessa collegato
  • 180924: campi ore previste e n. tecnici previsti
  • 160924: controllo max 50 interventi per chiamata
  • 140723: verifica esistenza id intervento su Postgres (ASNS30) in numerazione
  • 280222: menu a tendina (File / Non conformita' COGNA0-COGNA1 / ?)
  • 100624: PCASE-3951 in cancellazione preserva dati aggiuntivi tipo S/U

Note implementative

  • Il barcode intervento e' id-chiamata (12) + filler (2) + progressivo-immagine
  • La numerazione "per chiamata" (cerca-numerazione-bis) parte da id-chiamata * 100 + 1 e itera fino al primo id libero
  • Molti flussi di assegnazione riscrivono immediatamente acit-tecnico (1) dalla matricola collegata (181019) per evitare che l'intervento appaia assegnato ma non lo sia
  • I documenti "anticipati" (acim-tip = "N"), i carichi chiamata lab. ("C") e i DDT uscita fornitore riparazione ("F") sono esclusi dai controlli di blocco modifica/cancellazione
  • Sincronizzazioni esterne (CRM, Google Calendar, Postgres) sono attivate solo dalle rispettive configurazioni e mostrate in status bar