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:
- Test linkage
util-agprg(C$NARG,C$PARAMSIZE). ctr-abil,z-99-init-program,rd-azi,open-files.x99-src-cfgcon 15 chiavi (BI + parametri specifici SWA001: vedi sotto).x99-src-cfg-agl(Aglancio: cod-azienda, db-log-level, AGLANCIO-ATTIVO; conn-string da SWGETS).- Determinazione modalita' batch (
w-dc-called = "S"). 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 scriptlancio_ambientiper 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.