Vai al contenuto

SWC034 - Scaricamento Tabelle, Budget e CO.AN. Scuola Edile per SW-ING

Intestazione

Campo Valore
Programma SWC034
Titolo Scuola Edile: Scaricamento Tabelle, Budget e CO.AN. x SW-ING
Tipo Worker di estrazione BI (non a menu in prog.txt)
Verticalizzazione Scuola Edile
ID processo Aglancio 50035 (k-id-processo)
Tabella stato sincro SWC034 (k-tabella-statosyn)

Scopo e logica generale

SWC034 estrae le anagrafiche di controllo di gestione della verticalizzazione Scuola Edile e le scrive nell'archivio mirror del datamart PostgreSQL BI SW-ING (tabelle bin* il cui schema e' creato da SWCINIT). E' il corrispettivo, per la Scuola Edile, di SWC010 (BINCONSU) e SWC033 (BINORDIN).

Scrive quattro tabelle mirror (aggiunte a SWCINIT ai numeri 128-131):

Fase Tabella destinazione Contenuto
FASE1 binseres Responsabili Centri di Costo
FASE2 binserag Raggruppamenti gerarchici (4 livelli)
FASE3 binsecen Centri (merci/prestazioni) con gerarchia e responsabile
FASE4 binsebud Codici Budget

Il programma supporta solo backend Postgres (tm-cfg-bin-tipo = "P"): la configurazione segnala errore per qualunque altro valore.

Modalita' di esecuzione:

  • Interattiva: l'operatore avvia dalla maschera; contatori e-tm-letti/e-tm-scritti a video per fase.
  • Batch (chiamata da Aglancio): rilevata via C$NARG/C$PARAMSIZE sul parametro util-agprg; l'output e' rediretto al log Aglancio tramite gesdebug e lo stato del processo e' aggiornato su ARPSTPRC. In modalita' batch, ogni 30 secondi viene chiamato SWLIVE (keepalive) per evitare che i motori di Aglancio terminino il processo (PCASE-3896).

Flusso principale

  1. Inizializzazione (apri): rilevamento parametro Aglancio (C$NARG/C$PARAMSIZE), controllo abilitazione (ctr-abil), init programma, caricamento lingua, lettura azienda (rd-azi), apertura file, divisa conto (get-divisa-conto), lettura configurazione (x99-src-cfg + x99-src-cfg-agl), apertura debug/log e connessione BI (init-bin-sub-tm-cfg-bin-tipo).
  2. File di transito cogtrans: nome temporaneo costruito con ext-tmp-dir + wo-oper; apertura in output poi i-o (usato come appoggio per i raggruppamenti gerarchici).
  3. Maschera (solo interattivo): titolo "Scuola Edile:Scarica Tabelle,Budget e CO.AN."; attesa conferma F3.
  4. Elaborazione (elabora): fase1fase2fase3fase4 (vedi Logica di business).
  5. Chiusura (fine/z-chiudi): chiusura file e connessione BI, delete file cogtrans; in modalita' batch riapertura DB AreaGate e aggiornamento stato processo su ARPSTPRC (sub-cfg-rd/wr/rwr-arpstprc), chiusura log.

File e tabelle acceduti

File logico Record Modalita' Uso
BINSERES seres-rec I-O (BI) Responsabili C.C. (output FASE1)
BINSERAG serag-rec I-O (BI) Raggruppamenti gerarchici (output FASE2)
BINSECEN secen-rec I-O (BI) Centri merci/prestazioni (output FASE3)
BINSEBUD sebud-rec I-O (BI) Codici Budget (output FASE4)
COGTABEL euta-rec Input Tabelle EurTab: tipo "TR" (responsabili, FASE1), tipo "TP" (codici budget, FASE4)
COGANRAG arag-rec Input Raggruppamenti analitici (classe + tip "R"/"M"); risalita gerarchica arag-id-padre
COGMERCI mer-rec Input Anagrafica merci → centri (FASE3)
COGMERA4 ma4-rec Input Dati aggiuntivi merce (data avvio, responsabile C.C., nr parte, nr ore)
COGRACMC rcm-rec Input Raccordo codici merce (chiave2) → secen-cod-ava
COGTRANS trs-rec I-O (temp) File di transito per i raggruppamenti
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo batch)
FEURTAB cogfiles Input File parametri Eurocoge

Copybook inclusi

Screen Designer

  • swc034.select, swc034.fd, swc034.wrk, swc034.decla, swc034.prc (maschera e file)

Strutture dati / FD

  • cogfiles.cpy (FD feurtab), arpstprc.cpy
  • binseres.cpy, binserag.cpy, binsecen.cpy, binsebud.cpy (record BI)
  • arpstprc-sql-ws.cpy (interfaccia SQL ARPSTPRC)
  • k-u10.cpy, k-personal.cpy (costanti)

Working-storage / utilita'

  • utilgesdebug.cpy (gestione debug/log), utilswgets.cpy (interfaccia SWGETS)

Linkage

  • stringhe e util-agprg (parametri di lancio; util-agprg presente solo se chiamato da Aglancio)

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (2 chiamate: x99-src-cfg, x99-src-cfg-agl)
SWGETS Recupero stringa di connessione AreaGate (modalita' batch)
COGS62 Calcolo differenza in secondi tra timestamp (per il keepalive SWLIVE)
SWLIVE Keepalive processo Aglancio (ogni 30 secondi in modalita' batch)
PRGDT / DTPRG Conversione data/progressivo
C$NARG / C$PARAMSIZE / C$CARG Verifica presenza del parametro util-agprg

Configurazione (RNEWCONF)

Chiamata x99-src-cfg (7 chiavi):

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI: deve essere "P" (Postgres)
02 abilita bin-db-path tm-cfg-bin-path (non usato per Postgres)
03-05 abilita bin-db-conn-string (1-3) tm-cfg-bin-conn-string Stringhe di connessione Postgres
06 abilita bin-db-log-level tm-cfg-bin-log-level Log level connessione
07 bint swc034-classe-raggruppamento tm-cfg-classe-raggruppamento Classe di raggruppamento analitico (COGANRAG) da usare per la gerarchia dei centri

Chiamata x99-src-cfg-agl (modalita' Aglancio):

# Gruppo Chiave Campo interno Descrizione
01 areaapp cod-azienda tm-cfg-cod-azienda Codice azienda AreaApp
02 areaapp db-log-level tm-cfg-bin-log-level-agl Log level connessione AreaGate
03 AREAAPP AGLANCIO-ATTIVO tm-cfg-aglancio-attivo "S" = nuova procedura Aglancio attiva

La stringa di connessione AreaGate e' restituita da SWGETS.


Logica di business

Ogni fase azzera tm-letti/tm-scritti, scorre la tabella sorgente e scrive il record BI corrispondente (WRITE, con fallback RWR in caso di duplicato). Il codice azienda scritto e' sempre az-personal; data-agg = datasis (data sistema).

FASE1 — Responsabili Centri di Costo → BINSERES

Scan di COGTABEL con euta-tipo-x = "TR" (esce al cambio tipo). Per ogni voce scrive binseres: seres-cod = euta-cod, seres-des = euta-tr-des.

FASE2 — Raggruppamenti gerarchici → BINSERAG

Estrazione su 4 livelli da COGANRAG, filtrata su arag-classe = tm-cfg-classe-raggruppamento e arag-tip = "R". Per ogni livello scrive binserag con serag-cod, serag-des e serag-livello. Il file di transito cogtrans e' usato come appoggio per la costruzione della gerarchia.

FASE3 — Centri (merci/prestazioni) → BINSECEN

Scan di COGMERCI. Per ogni merce con ma4-data-avvio <> 0 (dati aggiuntivi COGMERA4) scrive binsecen:

  • secen-codice = mer-chia (gru/sot/cod), secen-des = mer-descr.
  • secen-cod-ava da COGRACMC (raccordo, chiave2); assente ⇒ spazi.
  • Gerarchia livelli 1-4: risalita ricorsiva su COGANRAG partendo dal codice merce (arag-tip = "M" per il livello 4, poi arag-tip = "R" risalendo con arag-id = arag-id-padre del livello inferiore) → secen-livello4..1.
  • secen-respo = ma4-respo-cc, secen-nr-parte = ma4-nr-parte, secen-nr-ore = ma4-nr-ore.

FASE4 — Codici Budget → BINSEBUD

Scan di COGTABEL con euta-tipo-x = "TP" (esce al cambio tipo). Per ogni voce scrive binsebud: sebud-cod = euta-cod, sebud-des = euta-tp-des.


Note

  • ID processo Aglancio: 50035; tabella stato sincronizzazione: SWC034.
  • Solo backend Postgres supportato; in assenza di stringa di connessione o con bin-tipo diverso da "P" il programma segnala e termina (z-chiudi).
  • Le quattro tabelle bin* sono create/allineate da SWCINIT (n. 128-131); il presente programma le popola.
  • Il file di transito cogtrans e' temporaneo (nome con ext-tmp-dir + wo-oper) e viene cancellato in chiusura.
  • In modalita' batch il keepalive SWLIVE viene invocato all'interno dei loop di fase quando sono trascorsi piu' di 30 secondi dall'ultima chiamata (differenza calcolata con COGS62).