Vai al contenuto

SWC004 - Scaricamento Tabelle Raggruppamenti Merci per SW-ING

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

Menu: Statistiche > Estrazione dati vs B.I.Swing > Tabelle & Anagrafiche > Tabelle raggruppamenti merci


Scopo

Esporta le tre tabelle dei raggruppamenti merceologici (COGTABEL tipo 17 con euta-cfg-arg "1", "2", "3") e, se az-mer-ava = "S", anche le tabelle di codice avanzato (COGTABEL tipo 62) e le classi del codice merce (COGTABEL tipo 61) verso il sottosistema BI SW-ING.


File e tabelle

Input

File Tipo Modalita' Uso
FEURTAB ISAM Input Parametri
COGTABEL ISAM Input Tipo 17 (raggruppamenti), 61 (classi), 62 (cod-avanzato)

Output BI

Tabella BI Record Modalita' Contenuto
BINRAGR1 bra1-rec I-O Raggruppamento 1 (fase1)
BINRAGR2 bra2-rec I-O Raggruppamento 2 (fase2)
BINRAGR3 bra3-rec I-O Raggruppamento 3 (fase3)
BINRTMTA brtmta-rec I-O Tabella classi articolo (fase-binrtmta)
BINRTMCL brtmcl-rec I-O Classi codice merce (fase-binrtmcl, solo se tm-cfg-cla = "S")
BINRTM01..BINRTM15 brtm01..brtm15-rec I-O Tabelle codice avanzato per livello (fase-binrtmxx)
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio

Copybook utilizzate

Copybook Contenuto
swc004.select, swc004.fd, swc004.wrk, swc004-01.scr, swc004.decla, swc004.prc Screen Designer
binragr1.cpy..binragr3.cpy, binrtmta.cpy, binrtmcl.cpy, binrtm01.cpy..binrtm15.cpy Record BI
binragr1-sql-ws.cpy ecc. Interfacce SQL (una per file)
arpstprc.cpy, arpstprc-sql-ws.cpy Stato processi
sql-decla-ws.cpy Working storage SQL
utilncnf.cpy, utilgesdebug.cpy, utilswgets.cpy, utilagprg.cpy Utility
k-personal.cpy, cogazien.cpy Costanti e dati azienda

Logica di elaborazione

Apertura (apri)

  1. Test util-agprg con C$NARG / C$PARAMSIZE.
  2. ctr-abil, z-99-init-program, rd-azi, open-files.
  3. x99-src-cfg (BI), x999-src-cfg (codici avanzati: euta-c039-cla + binrtmxx-euta-legame 1-15), x99-src-cfg-agl (Aglancio).
  4. init-bin-sub-tm-cfg-bin-tipo.

Elaborazione (elabora)

  1. cancella-bin-sub-tm-cfg-bin-tipo: TRUNCATE su tutte le 20 tabelle BIN.
  2. fase1: scan COGTABEL tipo 17 con euta-cfg-arg = "1" -> BINRAGR1.
  3. fase2: idem con "2" -> BINRAGR2.
  4. fase3: idem con "3" -> BINRAGR3.
  5. Se az-mer-ava = "S":
  6. carica-tab-cod-ava: legge COGTABEL tipo 62 (record con euta-ptc-cod = low-values) per costruire tab-cod-ava matchando con tm-cfg-binrtmxx-euta-c (configurazione).
  7. fase-binrtmta: per ogni codice in tab-cod-ava (max 15) scrive BINRTMTA.
  8. fase-binrtmcl (solo se tm-cfg-cla = "S"): scan COGTABEL tipo 61 -> BINRTMCL.
  9. fase-binrtmxx (1..15): scan COGTABEL tipo 62 con euta-ptc-tip = tca-cod (tca-idx) -> BINRTM01..BINRTM15 secondo l'indice (write-binrtmxx con EVALUATE).

Chiusura

close-bin-sub-tm-cfg-bin-tipo; in modalita' batch riapre connessione AreaGate per aggiornare ARPSTPRC.


Chiamate esterne (CALL)

Programma Scopo
RNEWCONF Configurazione (3 chiamate: BI, codici avanzati, Aglancio)
SWGETS Conn-string AreaGate
C$NARG, C$PARAMSIZE, C$RERR Runtime AcuCOBOL

Configurazioni (RNEWCONF)

BI (x99-src-cfg, gruppo abilita)

Standard SWC*: bin-tipo, bin-db-path, bin-db-conn-string (1-3), bin-db-log-level.

Codici avanzati (x999-src-cfg)

Chiave Gruppo Descrizione
euta-c039-cla sistmerava Flag attivazione classi (tm-cfg-cla)
binrtmxx-euta-legame (1-15) bint Codice del tipo cod-avanzato da legare a BINRTM01..15

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

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


Schedulazione (Aglancio)

k-id-processo = 50004, k-tabella-statosyn = "SWC004". Logica standard SWC*: lanciato con util-agprg, attiva modalita' batch se agprg-id-processo > 0, aggiorna ARPSTPRC in chiusura.


Note

  • L'EVALUATE in write-binrtmxx mappa staticamente l'indice 1..15 alla scrittura sul file binrtm01..binrtm15 corrispondente; per supportare piu' di 15 tabelle servirebbe estendere sia la lista FD sia l'EVALUATE.
  • tab-cod-ava viene costruita dall'intersezione tra i record COGTABEL tipo 62 disponibili e i codici configurati in binrtmxx-euta-legame (1-15): solo i codici match vengono esportati.
  • La cancellazione iniziale (TRUNCATE) e' eseguita sempre prima dell'export, anche per le tabelle di codice avanzato.