Vai al contenuto

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. Per az-personal = k-personal-mda parte 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

  1. 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.
  2. 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.
  3. Calcolo automatico del periodo (batch o senza parametro "D"): da ultimo consolidamento contabile + 1 mese fino a oggi.
  4. Elaborazione (b-elabora):
  5. Cancellazione del periodo in BINMOMAG.
  6. 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").
  7. Scan COGMOMAG: per ogni riga della testata scrive un record BINMOMAG.
  8. 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)

  1. Cancellazione del periodo in BINMOMAG (b1-cancella): SQL DELETE FROM binmomag WHERE bcoe_data BETWEEN ... AND bcoe_azi = ... (solo PostgreSQL).
  2. Scan COGTESBO per data nel range data-ini-ctr - data-fin-ctr.
  3. Per ogni testata documento:
  4. Lettura COGTABEL tipo 15 (causale, anche se il risultato non viene filtrato).
  5. Lettura COGTESAP (brand, grp-az-cod, magazzino periferico).
  6. Ricerca fattura: COGRACCO chiave2 su bolla. Se trovato, popola bcoe-key-fattu = ann/tipo/nfat e bcoe-fattu = "S".
  7. Ricerca intervento assistenza (solo se az-assist = "S"): ASNINDMG chiave2 con acim-tip = "D" per estrarre acim-id-intervento.
  8. Scan COGMOMAG per la stessa chiave bolla.
  9. Per ogni riga COGMOMAG:
  10. Compila bcoe-rec con: azienda, chiave magazzino come stringa mag/anno/tipob/bolla, progressivo, tipo doc, magazzino, cliente principale (tes-nonno), cliente consegna (tes-padre se valorizzato, altrimenti tes-nonno), fornitore se tes-tipocf = "F", causale, numero bolla fornitore, data, agente, vettore.
  11. Riferimento fattura e id intervento dai precedenti lookup.
  12. Merce = mag-merce3.
  13. Ricerca commessa (solo se az-commesse = k-merlino): chiamata COGU18 con cerca-commessa.
  14. Quantita' (positiva per E, negativa per altri) e valore (con stesso segno).
  15. Divisa, dati aggiuntivi statistici (grp-az-cod, tip-magpe, cod-magpe, brand).
  16. 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).