Vai al contenuto

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:

  1. SWA000: aggiornamento versione DB;
  2. SWA020: scaricamento matricole assist;
  3. 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:

  1. importazione-nuovi-interventi (blocco C);
  2. aggiornamento-d-interventi-assegnati (blocco D);
  3. importazione interventi eseguiti (blocco A): cursore SQL su ARPINTES eseguiti/non acquisiti → tratta-intervento-eseguito;
  4. importazione interventi in stato "Z" assegnati (blocco B) → tratta-intervento-z-eseguito;
  5. 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 stato P/P mobile, 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 (da ARPINTADD), 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-innesco scarica 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 demo C99999.

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-pdf non A/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