Vai al contenuto

SWA001 - Scaricamento Archivi Assist 2.0 per SW-ING

Sorgente: cbl/swa001.cbl | Program-ID: SWA001 | Tipo: Batch BI (interattivo + Aglancio)

Menu: Statistiche > Estrazione dati vs B.I.Swing > Assist 2.0 > Archivi Assist 2.0


Scopo

Estrae l'intero set di tabelle anagrafiche e archivi operativi del modulo Assist 2.0 (ASN*) e li scarica nelle corrispondenti tabelle BI (BIA*). E' la procedura di alimentazione del datawarehouse assistenza.


File e tabelle

Input (gestionale ASN/COG)

Principali (lista completa nel sorgente, sez. INPUT-OUTPUT lines 41-83):

Categoria File
Anagrafiche tabelle ASNCNTIP, ASNCNMOD, ASNVEICL, ASNTPDIF, ASNFRIMB, ASNMTRTP, ASNMARCH, ASNMODEL, ASNSTCHM, ASNTPATT, ASNPRIOR, ASNPROVC, ASNCAUES
Anagrafiche tecnici (lettura CO.GE. tramite COGANATN per riferimenti)
Operative ASNMATRI (matricole), ASNCNTES (contratti testate), ASNCNDET (contratti dettaglio tariffe), ASNCNFAT (fatturazione contratti), ASNCNFMT (fatturazione per matricola), ASNCNSER (servizi contratto)
Movimenti ASNINTER (interventi), ASNCHIAM (chiamate), ASNINDMG, ASNPRODT (produzione tecnico), ASNSITIN (situazione interventi), ASNRIFER (riferimenti)
Supporto COGTABEL (tipi descrittivi), COGAZIEN (azienda), asns07-t-dettaglio.fd (file transito calcolo costi via ASNS07), COGTRANS (file temporaneo per cache)
FEURTAB Parametri

Output BI (SQL via PostgreSQL)

Una tabella BI per ogni archivio input principale:

Tabella BI Contenuto
BIACNTIP, BIACNMOD Tipi e modelli contratto
BIAVEICL, BIATPDIF, BIAFRIMB Veicoli, tipi difetto, fasce rimborso
BIAMTRTP, BIAMARCH, BIAMODEL, BIAMATRI Tipi/marche/modelli/anagrafica matricole
BIASTCHM, BIATPATT, BIAPRIOR, BIAPROVC Stati chiamata, tipi attivita', priorita', provenienze
BIARIFER Riferimenti contratti
BIACNFAT, BIACNFMT, BIACNTES, BIACNDET, BIACNSER Contratti (fatturazione, dettaglio tariffe, servizi)
BIATIPFA, BIATIPSC Tabelle descrittive tipi fatturazione / stato contratto
BIAINTER Interventi
BIACHIAM Chiamate
BIAPRODT Produzione per tecnico
BIACAUES Causali esito intervento
BIASITIN Situazione interventi
ARPSTPRC Stato processi Aglancio

Copybook utilizzate

Screen Designer

Copybook Contenuto
swa001.select, swa001.fd, swa001.wrk, swa001-01.scr, swa001.decla, swa001.prc Screen Designer

Strutture dati

Copybook Contenuto
bia*.cpy (una per tabella BI) Record BI
bia*-sql-ws.cpy (una per tabella) Interfacce SQL
asns07-t-dettaglio.cpy Record transito ASNS07 (dettaglio costi intervento)
arpstprc.cpy, arpstprc-sql-ws.cpy Stato processi Aglancio
sql-decla-ws.cpy Working storage connessione SQL
cogazien.cpy Dati azienda
k-personal.cpy, costanti-asns07.cpy (verifica), cogfiles.cpy Costanti e FD FEURTAB

Utility

Copybook Contenuto
utilncnf.cpy Lettura RNEWCONF
utilgesdebug.cpy Gestione log/debug
utilswgets.cpy Conn-string AreaGate
utilagprg.cpy Linkage Aglancio (passato 2 volte come da pattern SWC*)
utilasns07.cpy Calcolo costi/dettagli intervento via ASNS07
utils62.cpy Differenza tempo per keepalive SWLIVE
wstato, wgrave, wopenf, wnscr Working storage standard

Logica di elaborazione

Apertura

Pattern standard SWC/SWA:

  1. Test linkage util-agprg (C$NARG, C$PARAMSIZE).
  2. ctr-abil, z-99-init-program, rd-azi, open-files.
  3. x99-src-cfg con 15 chiavi (BI + parametri specifici SWA001: vedi sotto).
  4. x99-src-cfg-agl (Aglancio: cod-azienda, db-log-level, AGLANCIO-ATTIVO; conn-string da SWGETS).
  5. Determinazione modalita' batch (w-dc-called = "S").
  6. init-bin-sub-tm-cfg-bin-tipo.

Elaborazione (b-elabora)

Sequenza di blocchi senza fase1/fase2/fase3: ogni blocco corrisponde a una tabella o archivio ed e' implementato inline in b-elabora (4000+ righe). Pattern tipico per ogni archivio:

perform verifica-swlive
initialize <asn-rec>
perform st-<asn-file>-notmin
if w-verbo-ok
   perform rdnxt-<asn-file>
   perform until w-fine-file
      if w-dc-called not = "S"
         add 1 to w-m-l
         display w-m-l line 3 col 26 convert
      end-if
      initialize <bia-rec>
      move <asn-campo>  to <bia-campo>
      ...
      perform sub-cfg-wr-<bia-table>
      perform rdnxt-<asn-file>
   end-perform
end-if

Per matricole, contratti e interventi vengono eseguite letture aggiuntive (catene su modelli, tariffe, dettagli) e per gli interventi puo' essere chiamato ASNS07 tramite utilasns07.cpy per calcolare costi e dettagli.

Keepalive SWLIVE

verifica-swlive viene chiamato all'inizio di ogni blocco principale: calcola via COGS62 il tempo trascorso dall'ultima esecuzione e, se > 30 secondi, chiama SWLIVE per evitare che Aglancio termini il processo (PCASE-3896).

Modalita' debug

fl-debug = "S" salta direttamente a b-fine-tabelle (utile per testare solo le sezioni successive).

Chiusura

Chiusura file e connessione BI; modalita' batch riapre AreaGate e aggiorna ARPSTPRC.


Chiamate esterne (CALL)

Programma Scopo
RNEWCONF Configurazione (BI + 9 parametri SWA001 + Aglancio)
SWGETS Conn-string AreaGate
SWLIVE Keepalive Aglancio (ogni > 30 secondi)
ASNS07 Calcolo costi/dettagli intervento (per BIAINTER, BIAPRODT)
COGS62 Differenza in secondi
C$NARG, C$PARAMSIZE, C$RERR Runtime AcuCOBOL

Configurazioni (RNEWCONF)

BI + parametri SWA001 (x99-src-cfg)

# Gruppo Chiave Campo Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione (N/C/D/P)
02 abilita bin-db-path tm-cfg-bin-path Path C-Tree
03-05 abilita bin-db-conn-string (1-3) tm-cfg-bin-conn-string Stringhe PostgreSQL
06 abilita bin-db-log-level tm-cfg-bin-log-level Livello log
07 bint data-inizio-scarico-interventi-swa001 tm-cfg-data-sca-int Limite inferiore data interventi (per non riscaricare tutto lo storico)
08 bint data-inizio-scarico-chiamate-swa001 tm-cfg-data-sca-chi Limite inferiore data chiamate
09 ASSIST UM-PRESTAZIONI-A-TEMPO tm-cfg-um-tempo UM per prestazioni a tempo (upper-case)
10 ASS-VAL TIPO-COSTO-STANDARD tm-cfg-costo-standard Tipo costo da usare (upper-case)
11 BINT SWA001-DEBUG-CHIAMATA tm-cfg-debug-chiamata Numero chiamata per debug specifico
12 ass-contr chiamate-programmate-sabato tm-cfg-chiam-sabato Flag include sabato
13 ass-contr tipo-mtr-licenze-sw tm-cfg-tipo-mtr-licenze-sw Tipo matricola licenze software (PCASE-3792, 25/05/2022)
14 ass-contr tipo-mtr-firewall tm-cfg-tipo-mtr-firewall Tipo matricola firewall
15 ass-contr fatturazione-canone-matricole tm-cfg-fatturazione-canone-matricole Modalita' fatturazione canone matricole

Aglancio (x99-src-cfg-agl, gruppo areaapp)

Standard: cod-azienda, db-log-level, AGLANCIO-ATTIVO.


Schedulazione (Aglancio)

k-id-processo (5xxxx, verifica nel sorgente per il valore esatto), k-tabella-statosyn = "SWA001". Lanciato con util-agprg; in modalita' batch attiva la modalita' ridotta SWLIVE (passa agprg-ope = "RIDOTTA" + agprg-istanza letto da ARPSTPRC).


Note

  • Programma molto grande (6.400+ righe) con elaborazione inline di tutti gli archivi assist: non sono presenti paragrafi fase1/fase2/... separati.
  • Le date di inizio scarico interventi/chiamate (chiavi RNEWCONF #7 e #8) sono fondamentali per evitare di esportare l'intero storico ad ogni esecuzione: il programma le usa come filtro nelle query/iterazioni sui rispettivi archivi.
  • Source-computer/object-computer dichiarato come pc-sperry.
  • E' presente un file di check fcheck (PCASE-3792, ora commentato in favore di PCASE-3896) che era usato dallo script lancio_ambienti per verificare lo stato del processo.
  • Esistono diverse varianti di sviluppo del programma in cbl/ (swa001_gio.cbl, swa001tmp.cbl); il sorgente di produzione e' swa001.cbl.