SWA005 - Importazione interventi da AreaAPP/Areagate¶
Sorgente: cbl/swa005.cbl (11.601 righe) | Tipo: Programma batch/worker di sincronizzazione dati da database PostgreSQL (AreaAPP) verso il gestionale, con download immagini via FTP/AWS
Menu: Assist 2.0 > Operativo > Gestione Interventi a Richiesta
Nota funzione reale: l'etichetta di menu e' generica. SWA005 e' il worker di importazione degli interventi eseguiti/creati sull'app mobile (AreaAPP / Areagate). Non e' un programma di interfaccia: apre una finestra di stato ("Ricezione Dati Interventi Da Mobile") e lavora in modo non interattivo (eventuale richiesta della data di estrazione da menu). E' tipicamente lanciato da scheduler (LANCIO/WPOPTRE) o dalla catena di procedure Aglancio.
Scopo¶
Sincronizza verso il gestionale i dati degli interventi di assistenza prodotti sull'app mobile, leggendoli dalle tabelle ARPINTES e collegate su un database PostgreSQL (accesso via connessione binaria bin). Per ogni intervento:
- importa gli interventi eseguiti (
RCIT-FL-ESEGUITA = "S",RCIT-FL-ACQUISITA <> "S"), portandoli nel gestionale in stato "Provvisorio" (P); - importa gli interventi in stato "Z" assegnati (creati sull'app per un cliente ma non eseguiti);
- importa i nuovi interventi e gli interventi assegnati/modificati dall'app;
- popola le tabelle di dettaglio (materiali, prestazioni, matricole, schede, difformita', note tecnico);
- crea/collega il cliente assistito se nuovo;
- scarica le immagini dell'intervento (archiviazione ottica) via FTP o AWS S3.
E' il complemento in ingresso del flusso Assist 2.0 verso l'app: legge cio' che l'app ha prodotto e lo riporta nel gestionale.
Orchestrazione (main → b-elabora)¶
All'avvio esegue in sequenza altri worker di sincronizzazione:
- SWA000: aggiornamento versione DB;
- SWA020: scaricamento matricole assist;
- SWA030 (050220): importazione nuovi clienti.
Poi, se non e' in gestione la nuova procedura SWN037 (ARPINTES versione >= 2 e processo SWN037 in direzione T/I), esegue b-elabora, che richiama in ordine:
importazione-nuovi-interventi(blocco C);aggiornamento-d-interventi-assegnati(blocco D);- importazione interventi eseguiti (blocco A): cursore SQL su
ARPINTESeseguiti/non acquisiti →tratta-intervento-eseguito; - importazione interventi in stato "Z" assegnati (blocco B) →
tratta-intervento-z-eseguito; - nuovamente
importazione-nuovi-interventi(per risolvere problemi di sincronia).
Se il processo SWN037 e' attivo, SWA005 viene skippato e (a seconda del chiamante) innesca SWN037 o scrive una segnalazione critica come remind di disattivare il cron.
Al termine, esporta gli eventuali nuovi clienti inseriti (SWA031) e innesca SWA065 (se Aglancio non attivo).
Importazione di un intervento (tratta-intervento-eseguito / -z-eseguito)¶
Per l'intervento in elaborazione (rcit-*), scrive/aggiorna il gestionale:
- ASNINTES (
acit-rec): testata intervento portata a statoP/Pmobile, dati esecuzione (data/ora, risolutivo, trasferta, km/ore viaggio, tipo intervento, importo concordato, destinazione, magazzino); - ASNINTE2 (
acit2-rec): sconto incondizionato, data/ora rilascio, tipo/causale esito (PCASE-2036), importo pagato (daARPINTADD), flag residenziale; - ASNCHTES / ASNCHDET: aggiornamento dati chiamata (commessa, sottocommessa, destinazione, contratto);
- ASNINDAG (tipo
T): note del tecnico; popola-asnapppr/popola-asnappmt/popola-asnchdet: prestazioni/materiali, matricole, dettaglio chiamata;popola-asnintmp/popola-asnindif: temporanei e difformita';- se configurato
commessa-impianto, cerca la commessa con codice uguale al s/n della matricola (cerco-commessa); - se archiviazione ottica attiva (
az-arc-ott = "S"):download-immagini-innescoscarica le immagini dell'intervento (FTP o AWS).
Interfaccia¶
Il programma e' invocato con procedure division using stringhe (nessun linkage applicativo dedicato oltre alle strutture comuni). E' pilotato da wo-parametro:
"D": da menu, richiede la data da cui estrarre gli interventi;"5": modalita' non permessa per l'azienda demoC99999.
I linkage utilswa020, utilswa, utilasn060w, utilswa031 sono usati per le chiamate ai sotto-worker.
File acceduti¶
Tabelle PostgreSQL (lettura via connessione bin, cursori SQL)¶
| Tabella | Copybook | Contenuto |
|---|---|---|
| ARPINTES | rcit-rec |
Testata intervento app (chiave di filtro azienda + flag eseguita/acquisita/stato/assegnata) |
| ARPINTES2 | rcit2-rec |
Estensione intervento (sconto, esito, rilascio produzione) |
| ARPINTADD | intadd-rec |
Dati aggiuntivi (importo pagato) |
| ARPINDET | Dettaglio intervento (materiali/prestazioni) | |
| ARPINMAT | Matricole dell'intervento | |
| ARPINTEC | Tecnici (per interventi "Z") | |
| ARPCHDET | Dettaglio chiamata | |
| ARPSKDATI / ARPSKDATN | Dati schede (valori / note) | |
| ARPINTMP | Dati temporanei intervento | |
| ARPINDIF / ARPTPDIF / ARPTPDSL | Difformita' e relative tabelle | |
| ARPCHIMG | Immagini della chiamata/intervento | |
| ARPCHPRP | Prestazioni previste | |
| APPINTES | (import importa-appintes) |
|
| ARPCLIECOM | Clienti e-commerce | |
| APSTATOSYN | a-syn-rec |
Stato/versione sincronizzazione tabelle |
Archivi gestionale (scrittura)¶
ASNINTES, ASNINTE2, ASNCHTES, ASNCHDET, ASNINDAG, ASNAPPPR, ASNAPPMT, ASNINTMP, ASNINDIF, COGIMAGE (immagini), oltre agli archivi anagrafici cliente (via INSANA).
Chiavi secondarie¶
asnintes.k06, cogimage.k02, asnmatri.k02, cogaridx.k02, coggeana.k02, asnchtes.k02, oltre alle chiavi delle tabelle Postgres (arp*.k01/k01-agg).
Configurazioni RNEWCONF (x99-src-cfg)¶
Il programma legge 42 configurazioni. Le principali:
| Idx | Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|---|
| 01 | areaapp |
(attivazione) | tm-cfg-attiva-areaapp |
Se <> "S" il programma esce (profilo AreaAPP non abilitato) |
| 02 | areaapp |
(codice azienda) | tm-cfg-cod-azienda |
Azienda di elaborazione (filtro su tutte le query) |
| 03-05 | areaapp |
connessione DB | tm-cfg-bin-conn-string |
Stringa di connessione PostgreSQL |
| 06 | areaapp |
db-log-level |
tm-cfg-bin-log-level |
Livello log DB |
| 07-11 | areaapp |
FTP (server/utente/passw/cartella/path) | Parametri FTP per il download immagini | |
| 12-14 | STAMPE |
periferica/path stampa/spedizione | Stampa rapportino intervento | |
| 15-16 | ASSIST |
numerazione/stato chiamata | Numerazione interventi, stato chiamata importata | |
| 19 | AREAAPP |
MODO-STAMPA-INTERVENTO |
tm-cfg-modo-stampa |
Modo di stampa |
| 21 | ass-chiam |
tipo-attivita-consegna |
tm-cfg-tipo-attivita-consegna |
Attivita' di consegna (per flag chiamata-consegna) |
| 28 | commesse |
commessa-impianto |
tm-cfg-commessa-impianto |
Se S, aggancia commessa da s/n matricola |
| 29 | areaapp |
swa005-servizio-stampa-intervento |
tm-cfg-servizio-stampa-int |
W (Jasper/web, richiede rapportino pronto) o G (default) |
| 33-35 | piping |
creazione cliente / formato indirizzo | Import nuovi clienti assistiti | |
| 37-39 | ASS-STRUM |
dossier (generazione/tipo/prefisso) | Creazione dossier chiamata | |
| 40 | assist |
tecnici-uso-mag-secondari |
tm-cfg-tecnici-uso-mag-secondari |
Magazzini secondari tecnici |
| 41 | AWS |
ATTIVAZIONE-BUCKET |
tm-cfg-aws-active |
Attivazione bucket S3 per immagini (F forza CheckServer) |
| 42 | AREAAPP |
AGLANCIO-ATTIVO |
tm-cfg-aglancio-attivo |
Se non S, innesca SWA065 a fine elaborazione |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| SWA000 | Aggiornamento versione DB |
| SWA020 | Scaricamento matricole assist |
| SWA030 | Importazione nuovi clienti |
| SWA031 | Esportazione clienti inseriti da piping |
| SWA065 | Post-elaborazione (se Aglancio non attivo) |
| SWN037 | Nuova procedura Areagate (skippa SWA005 se attiva) |
| INSANA | Inserimento/aggiornamento anagrafica cliente |
| COGUA6 | Validazione/decodifica campi |
| ASNS05 / ASNS24 / ASNS78 | Sotto-elaborazioni assist (numerazione, dati chiamata) |
| ASN598 / ASN060W / ASN053 | Gestione documenti/stampa collegata |
| COGU06 | (gestione immagini/documenti) |
| CRMS06 / CRMS10 | Archiviazione ottica / dossier |
| FTP | Download immagini via FTP (CheckServer, mget) |
| COPIAF | Gestione file (copia/spostamento immagini) |
| GESSTR | Manipolazione stringhe/note |
| SVIEW | Visualizzazione/conversione file |
| GESLPRC / GESDEBUG | Log eventi e segnalazioni di procedura |
| COGS25 / COGS52 / GETADDR | Numerazione, data, indirizzi |
Note implementative¶
- Le query su PostgreSQL usano il pattern
sql-precall/sql-format-val-*/sql-setp-*/cursore-sql-st-*con parametri posizionali ($1::character(6), ecc.). - La modalita' debug (
w-tm-cfg-debug-doc) permette di elaborare un singolo intervento per ID. - Con
servizio-stampa-int = "W": un intervento eseguito viene ignorato se il rapportino PDF non e' ancora pronto (rcit-fl-stampa-pdfnonA/N), per evitare di acquisire un intervento pre-chiuso senza rapportino completo. - La connessione DB (
bin) e' aperta/chiusa condizionalmente (fl-dbpg-kpn-aperto-qui) per non chiudere una connessione gia' aperta dal chiamante (ext-dbpg-kpn-aperto). - Le immagini sono scaricate dal bucket AWS (se
aws-active) oppure via FTP, e archiviate a dossier/archiviazione ottica.
Storico modifiche significative (dal sorgente)¶
- 120214: import interventi in stato "Z" assegnati (
tratta-intervento-z-eseguito) - 050315: import
ARPCHDET - 300817: import difformita' (
ARPTPDIF/ARPTPDSL) - 260918: import
APPINTES - 051017: esportazione clienti inseriti da piping (SWA031)
- 050220: importazione cliente (
b01-importazione-cliente) e SWA030 - 180119: dati personalizzati EDA (data/ora rilascio produzione, note problemi)
- 110521: PCASE-2036, import tipo/causale esito
- 260422: gate SWN037 (skip SWA005) in base al chiamante