SWC002 - Scaricamento Anagrafica Merci e Tabelle Magazzino per SW-ING
Sorgente: cbl/swc002.cbl | Program-ID: SWC002 | Tipo: Batch BI (interattivo + Aglancio)
Menu: Statistiche > Estrazione dati vs B.I.Swing > Tabelle & Anagrafiche > Anagrafiche Merci & Tabelle Magaz.
Scopo
Esporta l'anagrafica merci e le principali tabelle di classificazione magazzino verso il sottosistema di Business Intelligence SW-ING (tabelle bin*).
Il programma puo' essere lanciato:
- Interattivo (da menu Eurocoge): visualizza una maschera con i contatori di righe lette/scritte per ogni fase;
- Batch (da Aglancio): comportamento controllato da
w-dc-called = "S", output ridiretto a log via gesdebug, aggiornamento ARPSTPRC.
File e tabelle
| File |
Tipo |
Modalita' |
Uso |
| FEURTAB |
ISAM |
Input |
Parametri file |
| COGMERCI |
ISAM |
Input |
Anagrafica merci (loop principale fase1) |
| COGMERAP |
ISAM |
Input |
Dati aggiuntivi merce (reparti, raggruppamenti, max ordine) |
| COGMERA2 |
ISAM |
Input |
Classificazione statistica e qta per bancale |
| COGRACMC |
ISAM |
Input |
Raccordo cod-avanzato per merce (chiave2 su merce) |
| COGSLMAG |
ISAM |
Input |
Saldo magazzino principale (giacenza fisica/virtuale/impegnata/ordinata) |
| COGLGMER |
ISAM |
Input |
Ubicazioni merce (st-cogcoglgmer, primi 2 record) |
| COGTABEL |
ISAM |
Input |
Tabelle sistema (tipi AA gruppi, AB sottogruppi, 16 contropartite, 62 codici-avanzati) |
| COGTESLS |
ISAM |
Input |
Testate listini di vendita |
| COGLISNW |
ISAM |
Input |
Righe listini (chiave: merce+tipo+rif+fascia+data; ricerca rdprv su data) |
| COGPNCON |
ISAM |
Input |
Piano dei conti (descrizione contropartite) |
| COGBRAND |
ISAM |
Input |
Anagrafica brand (fase6) |
| TGLPRRKE |
ISAM |
Input |
Solo per Siderpress: ricerca preventivo da rcm-merce |
Output (B.I.Swing - SQL via PostgreSQL o C-Tree/DBmaker)
| Tabella BI |
Record |
Modalita' |
Contenuto |
| BINMERCI |
bmer-rec |
I-O |
Anagrafica merci (output principale fase1) |
| BINCLASS |
- |
I-O |
Tabella classi |
| BINSTAME |
bstm-rec |
I-O |
Stati merce (E/F/M/N/P/S - hardcoded fase2) |
| BINGRUPP |
bgrp-rec |
I-O |
Tabella gruppi (fase3) |
| BINSOGRU |
bsgr-rec |
I-O |
Tabella sottogruppi (fase4) |
| BINCPCON |
bcpn-rec |
I-O |
Contropartite contabili (fase5) |
| BINTESLS |
btls-rec |
I-O |
Testate listini (fase0) |
| BINLISNW |
blnw-rec |
I-O |
Righe listino merce (fase11-exp-listino) |
| BINBRAND |
bbra-rec |
I-O |
Brand / marchi (fase6) |
| ARPSTPRC |
a-stpr-rec |
I-O |
Stato processi Aglancio (solo modalita' batch) |
File transito
| File |
Uso |
| COGTRANS |
File temporaneo (#$swc002.<oper> in ext-tmp-dir) per memorizzare i listini disponibili durante fase1 |
Copybook utilizzate
Screen Designer
| Copybook |
Contenuto |
swc002.select, swc002.fd, swc002.wrk, swc002-01.scr, swc002.decla, swc002.prc |
File Screen Designer |
Strutture dati BI
| Copybook |
Contenuto |
binmerci.cpy, binclass.cpy, binstame.cpy, bingrupp.cpy, binsogru.cpy, bincpcon.cpy, bintesls.cpy, binlisnw.cpy, binbrand.cpy |
Record BI |
binmerci-sql-ws.cpy, bingrupp-sql-ws.cpy, ecc. |
Interfacce SQL |
arpstprc.cpy, arpstprc-sql-ws.cpy |
Stato processi |
sql-decla-ws.cpy |
Working storage connessione SQL |
Utility
| Copybook |
Contenuto |
cogazien.cpy |
Dati azienda |
k-personal.cpy |
Costanti per varianti per azienda (LO Nexxta, siderpress, modena-funghi, ecc.) |
costanti-tgls.cpy |
Costanti listini |
utilncnf.cpy |
Lettura configurazioni RNEWCONF |
utilgesdebug.cpy |
Log/debug gesdebug |
utilswgets.cpy |
Configurazione SW-ING (path, conn-string) |
utilagprg.cpy |
Linkage Aglancio (passato 2 volte, una rinominata per test presenza) |
utilcogl61.cpy |
Recupero prezzo ultimo acquisto / PMA |
utils62.cpy |
Calcolo differenza tempo per keepalive SWLIVE |
wgrave, wnscr, wopenf, wstato |
Working storage standard |
Logica di elaborazione
Apertura (apri)
- Test presenza linkage
util-agprg tramite C$NARG + C$PARAMSIZE.
ctr-abil, z-99-init-program, rd-azi, open-files.
x99-src-cfg (configurazione BI: bin-tipo, bin-db-path, bin-db-conn-string 1-3, bin-db-log-level).
x999-src-cfg (configurazione codici avanzati: euta-c039-cla + binrtmxx-euta-legame 1-15).
x99-src-cfg-agl (configurazione Aglancio: cod-azienda, db-log-level, AGLANCIO-ATTIVO, conn-string da SWGETS).
- Determinazione modalita' (
w-dc-called = "S" se chiamato da Aglancio con agprg-id-processo > 0).
- Apertura file COGTRANS in
ext-tmp-dir/#$swc002.<oper>.
init-bin-sub-tm-cfg-bin-tipo: apertura connessione PostgreSQL / C-Tree / DBmaker secondo tm-cfg-bin-tipo.
Elaborazione (elabora)
carica-tab-cod-ava (solo se az-mer-ava = "S"): legge COGTABEL tipo 62 e popola tab-cod-ava/tab-cod-ava2.
fase0: scan completo COGTESLS, scrive BINTESLS e accumula su COGTRANS. Aggiunge riga "L"/100 "Prezzo Ultimo Acquisto".
fase1: scan completo COGMERCI; per ogni merce:
- Letture: COGMERAP, COGMERA2, COGRACMC, COGSLMAG (giacenze), COGLGMER (max 2 ubicazioni).
- Se Siderpress:
m-ricostruzione-chiavi-cm iniziale; per merci PF/PR cerca i dati dal preventivo (x-estrai-dati-pf-siderpress -> x-estrai-dati-pf-lamiera).
- Se
az-mer-ava = "S": chiama prepare-binrtmxx per ogni codice avanzato configurato.
- Scrive BINMERCI tramite
sub-cfg-wr-binmerci.
- Chiama
fase11-exp-listino: per ogni listino in COGTRANS, ricerca COGLISNW (rdprv su data) e scrive BINLISNW; poi chiama COGL61 per il prezzo ultimo acquisto e scrive ulteriore riga "L"/100.
fase2: scrive 6 record fissi su BINSTAME (E/F/M/N/P/S) con descrizioni hardcoded.
fase3: scan COGTABEL tipo "AA" -> BINGRUPP.
fase4: scan COGTABEL tipo "AB" -> BINSOGRU.
fase5: scan COGTABEL tipo 16 + lookup COGPNCON -> BINCPCON.
fase6: scan COGBRAND -> BINBRAND.
Chiusura (fine / z-chiudi)
cancel "COGL61", chiusura file, delete file COGTRANS.
- Chiusura connessione BI (
close-bin-sub-tm-cfg-bin-tipo).
- Solo modalita' batch: riapre connessione AreaGate e aggiorna ARPSTPRC.
Keepalive SWLIVE
verifica-swlive: chiamato dentro next-tm-letti e dentro fase11-exp-listino. Calcola tramite COGS62 la differenza in secondi rispetto all'ultima invocazione; se > 30 secondi chiama SWLIVE per evitare che Aglancio termini il processo.
Chiamate esterne (CALL)
| Programma |
Scopo |
| RNEWCONF |
Lettura configurazione (3 chiamate: confi-merci-ava, src-cfg BI, src-cfg-agl) |
| SWGETS |
Recupero conn-string SW-ING |
| COGL61 |
Prezzo ultimo acquisto / prezzo medio |
| COGS62 |
Differenza in secondi (per SWLIVE) |
| SWLIVE |
Keepalive processo Aglancio (ogni 30 secondi) |
| C$NARG, C$PARAMSIZE, C$RERR |
Runtime AcuCOBOL (test parametri / errori SQL) |
| DTPRG / PRGDT |
Conversione data <-> progressivo (se gestione date) |
Configurazioni (RNEWCONF)
Configurazione BI (x99-src-cfg, gruppo abilita)
| Chiave |
Campo interno |
Descrizione |
| bin-tipo |
tm-cfg-bin-tipo |
Tipo connessione: "N" disabilitato, "C" C-Tree, "D" DBmaker, "P" PostgreSQL |
| bin-db-path |
tm-cfg-bin-path |
Path per C-Tree |
| bin-db-conn-string (1-3) |
tm-cfg-bin-conn-string |
Stringhe connessione PostgreSQL |
| bin-db-log-level |
tm-cfg-bin-log-level |
Livello log |
Configurazione codici avanzati (x999-src-cfg)
| Chiave |
Gruppo |
Descrizione |
| euta-c039-cla |
sistmerava |
Flag estrazione classe (tm-cfg-cla) |
| binrtmxx-euta-legame (1-15) |
bint |
Mappatura tipo cod-avanzato -> tabella BINRTM01..15 |
Configurazione Aglancio (x99-src-cfg-agl, gruppo areaapp)
cod-azienda -> tm-cfg-cod-azienda
db-log-level -> tm-cfg-bin-log-level-agl
AGLANCIO-ATTIVO -> tm-cfg-aglancio-attivo
Stringa connessione AreaGate via SWGETS.
Schedulazione (Aglancio)
k-id-processo = 50002 / k-tabella-statosyn = "SWC002". Invocato con linkage util-agprg; quando agprg-id-processo > 0 attiva la modalita' batch (w-dc-called = "S"), forza bin-tipo = "P", chiude la connessione AreaGate gia' aperta (ext-dbpg-kpn-aperto), elabora, poi alla fine riapre la connessione AreaGate per aggiornare ARPSTPRC.
Note
- Per Siderpress (
az-personal = "SP") e' prevista una ricostruzione iniziale chiavi commessa-merce e una ricerca dei dati progettazione dal preventivo (lamiera/profilo).
- Per Modena Funghi (
az-personal = "MF"), se mer-um-alt e' valorizzata, viene usata al posto di mer-um.
- La gestione del codice avanzato (15 tabelle BINRTM01..15) viene attivata solo se
az-mer-ava = "S".
- L'eventuale prefisso
deb nei sub-cfg-wr-bintesls / sub-cfg-wr-binlisnw indica che la scrittura listini e' debug-able (alcuni installati commentano).