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 chiamataCo 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 workflowASNCHWKF - 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.k02asnintes.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:
- Menu / interattivo: parte da
a-tm-id-chiam. Seposizione-cursore = "B"parte dal barcode - 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 nonmodo-chiusura = E) che sia classeC - 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-dati → a-fine-dati-ok)¶
- Valida tutti i dati (
x-controlla-dati); blocca la modifica se l'intervento ha documenti collegati non anticipati (tm-no-aggio) - Numerazione: se
tipo-numerazione = "C"l'id intervento e'id-chiamata * 100 + progressivo(max 50 interventi per chiamata, controllows-tm-id-int-int); altrimenti progressivo globale - Riporta i campi maschera su
acit-*eacit2-*; imposta lo stato (Ase data assegnazione e tecnico valorizzati); assegnazione zona automatica (assegnazione-zona→ ASNS19) se senza tecnico - Scrive/riscrive
ASNINTES,ASNINTE2,ASNINDAG(note interno), storicoASNCHSTO - Aggiorna situazione chiamata (
Ase assegnato," "se tecnico azzerato) e, se configurato, lo stato chiamata astato-asseg(con evento storicoM1); rispetta la fatturazione sospesa - Per chiamate lab. (classe ≠
C) completa lo stepassegna-intinASNCHWKF - Invio avviso cliente (ASNS05) su assegnazione/variazione data-ora se
avvisa-cliente=E/S - Archiviazione ottica automatica del modulo (COGU06) se
arc-ott-autom = "S"in inserimento - Sincronizzazione agenda CRM (ASNS78) e Google Calendar (syncal); aggiornamento Postgres (swa004) se attivi
- 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
M1al cambio stato automatico - 270723:
modo-chiusura = Eaccetta chiamate non classeC(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 daid-chiamata * 100 + 1e 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