SWC012 - Scaricamento Magazzino per SW-ING¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | SWC012 |
| Titolo | Scaricamento Magazzino |
| Posizione menu | Statistiche > Estrazione dati vs B.I.Swing > Magazzino/Vendite > Movimenti magazzino |
Scopo e logica generale¶
SWC012 estrae tutti i movimenti di magazzino del periodo e li scrive nell'archivio BINMOMAG utilizzato dal sistema di Business Intelligence SW-ING.
Il programma funziona in due modalita':
- Interattiva: l'operatore inserisce anno+mese di inizio e anno+mese di fine. Le date complete (
data-ini-ctr= primo del mese,data-fin-ctr= ultimo del mese, calcolato anche bisestile) vengono ricavate automaticamente. - Batch (chiamata da Aglancio o con parametro diverso da "D"): il periodo viene calcolato automaticamente: data inizio = primo del mese successivo all'ultimo consolidamento contabile (COGTABEL tipo 57 codr 1,
euta-dc-aa-ult/euta-dc-mm-ult); data fine = ultimo giorno del mese di sistema. Peraz-personal = k-personal-mdaparte da 3 anni prima del mese di sistema. Periodicamente (ogni 30 secondi) chiama SWLIVE.
Prima dell'elaborazione il programma cancella i record BINMOMAG del periodo (b1-cancella), solo per PostgreSQL via SQL DELETE, poi rielabora da zero.
A differenza degli altri SWC, NON ha una propria x99-confi*: la configurazione e' minimale e tutta lato x99-src-cfg (connessione BI).
Flusso principale¶
- Inizializzazione (
m-00): controllo abilitazione, lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-src-cfg,x99-src-cfg-agl), inizializzazione connessione BI (init-bin-sub-tm-cfg-bin-tipo), setup tasti funzione. - Accept parametri (modalita' interattiva):
a-tm-aai/a-tm-mmi(anno+mese inizio),a-tm-aa/a-tm-mm(anno+mese fine). Calcolo automatico dei giorni (28/29/30/31) per il mese di fine. - Calcolo automatico del periodo (batch o senza parametro "D"): da ultimo consolidamento contabile + 1 mese fino a oggi.
- Elaborazione (
b-elabora): - Cancellazione del periodo in BINMOMAG.
- Scan COGTESBO per data: per ogni testata legge COGTABEL (causale), COGTESAP (brand/grp-az), COGRACCO (riferimento fattura), ASNINDMG (riferimento intervento assistenza per
az-assist = "S"). - Scan COGMOMAG: per ogni riga della testata scrive un record BINMOMAG.
- Chiusura (
fine): chiusura connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' batch).
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| BINMOMAG | bcoe-rec | I-O | Archivio movimenti magazzino BI (output principale) |
| COGTESBO | tes-rec | Input | Testate documenti magazzino (chiave2: data) |
| COGMOMAG | mag-recz | Input | Righe movimenti magazzino |
| COGTABEL | euta-rec | Input | Tabelle sistema (tipo 15: causali; tipo 57: consolidamenti contabili) |
| COGRACCO | rac-rec | Input | Raccordo bolle-fatture (chiave2: bolla) |
| COGTESAP | tsa-rec | Input | Testate documenti aggiuntivi (brand, grp-az-cod, magazzino periferico) |
| ASNINDMG | acim-rec | Input | Indici movimenti assistenza (chiave2: D+chiave testata, per id intervento) |
| FEURTAB | - | Input | Tabella file Eurosystem |
| ARPSTPRC | a-stpr-rec | I-O | Stato processi Aglancio (solo modalita' batch) |
| LOGFILE | - | I-O | Log testuale operazioni (codice in gran parte commentato) |
Copybook inclusi¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
swc012-01.scr |
Maschera principale |
swc012.select |
SELECT dei file |
swc012.fd |
FD dei file |
swc012.wrk |
Working storage maschera |
swc012.decla |
Declaratives |
Strutture dati¶
| Copybook | Contenuto |
|---|---|
cogfiles.cpy |
FD feurtab |
binmomag.cpy |
Record BINMOMAG |
arpstprc.cpy |
Record ARPSTPRC |
logfile.cpy |
Record log testuale |
cogazien.cpy |
Dati azienda |
k-personal.cpy |
Costanti personalizzazione |
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy |
Working storage comuni |
sql-decla-ws.cpy |
Working storage connessione SQL/BI |
binmomag-sql-ws.cpy |
Interfaccia SQL BINMOMAG |
arpstprc-sql-ws.cpy |
Interfaccia SQL ARPSTPRC |
Utility¶
| Copybook | Contenuto |
|---|---|
utilncnf.cpy |
Struttura parametri RNEWCONF |
utilgesdebug.cpy |
Gestione debug/log |
utilswgets.cpy |
Interfaccia SWGETS |
utilagprg.cpy |
Interfaccia Aglancio processo |
utils62.cpy |
Interfaccia COGS62 (differenza tempo, per SWLIVE) |
utilu18.cpy |
Interfaccia COGU18 (ricerca commessa) |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazione (2 chiamate: src-cfg, src-cfg-agl) |
| COGS62 | Calcolo differenza in secondi tra due timestamp (per SWLIVE) |
| COGU18 | Ricerca commessa collegata a riga di movimento (per az-commesse = "M", costante k-merlino) |
| SWGETS | Recupero configurazione SW-ING (stringa connessione) |
| SWLIVE | Keepalive processo Aglancio (ogni 30 secondi in modalita' batch) |
Configurazione (RNEWCONF)¶
A differenza degli altri SWC, non c'e' una x99-confi specifica di programma*. La configurazione di SWC012 e' tutta lato x99-src-cfg (gruppo "abilita" per connessione BI) e x99-src-cfg-agl (gruppo "areaapp" per Aglancio).
Chiavi lette in x99-src-cfg:
| # | Gruppo | Chiave | Campo interno | Descrizione |
|---|---|---|---|---|
| 01 | abilita | bin-tipo | tm-cfg-bin-tipo |
Tipo connessione BI: "N"=no, "C"=C-Tree, "D"=DBmaker, "P"=PostgreSQL |
| 02 | abilita | bin-db-path | tm-cfg-bin-path |
Percorso file dB (per C-Tree) |
| 03-05 | abilita | bin-db-conn-string (idx 1-3) | tm-cfg-bin-conn-string (1..3) |
Stringa connessione PostgreSQL (3 parti) |
| 06 | abilita | bin-db-log-level | tm-cfg-bin-log-level |
Livello log SQL |
Chiavi lette in x99-src-cfg-agl (gruppo "areaapp"): cod-azienda, db-log-level, AGLANCIO-ATTIVO. La stringa di connessione Aglancio viene restituita da SWGETS.
Logica di business¶
Elaborazione principale (b-elabora)¶
- Cancellazione del periodo in BINMOMAG (
b1-cancella): SQLDELETE FROM binmomag WHERE bcoe_data BETWEEN ... AND bcoe_azi = ...(solo PostgreSQL). - Scan COGTESBO per data nel range
data-ini-ctr-data-fin-ctr. - Per ogni testata documento:
- Lettura COGTABEL tipo 15 (causale, anche se il risultato non viene filtrato).
- Lettura COGTESAP (brand, grp-az-cod, magazzino periferico).
- Ricerca fattura: COGRACCO chiave2 su bolla. Se trovato, popola
bcoe-key-fattu=ann/tipo/nfatebcoe-fattu = "S". - Ricerca intervento assistenza (solo se
az-assist = "S"): ASNINDMG chiave2 conacim-tip = "D"per estrarreacim-id-intervento. - Scan COGMOMAG per la stessa chiave bolla.
- Per ogni riga COGMOMAG:
- Compila bcoe-rec con: azienda, chiave magazzino come stringa
mag/anno/tipob/bolla, progressivo, tipo doc, magazzino, cliente principale (tes-nonno), cliente consegna (tes-padrese valorizzato, altrimentites-nonno), fornitore setes-tipocf = "F", causale, numero bolla fornitore, data, agente, vettore. - Riferimento fattura e id intervento dai precedenti lookup.
- Merce =
mag-merce3. - Ricerca commessa (solo se
az-commesse = k-merlino): chiamata COGU18 concerca-commessa. - Quantita' (positiva per E, negativa per altri) e valore (con stesso segno).
- Divisa, dati aggiuntivi statistici (grp-az-cod, tip-magpe, cod-magpe, brand).
- Scrittura BINMOMAG via
sub-cfg-wr-binmomag.
SWLIVE periodico¶
Ogni 30 secondi (controllato via COGS62) chiama SWLIVE per notificare ad Aglancio che il processo e' ancora vivo (PCASE-3896, modifica del 24/06/18).