Vai al contenuto

SWC010 - Scaricamento Movimenti Costi di Produzione per SW-ING

Intestazione

Campo Valore
Programma SWC010
Titolo Scaricamento consumi di produzione su SW-ING
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Magazzino/Vendite > Movimenti costi di produzione

Scopo e logica generale

SWC010 estrae i movimenti di consumo materiali per produzione e li scrive nell'archivio BINCONSU utilizzato dal sistema di Business Intelligence SW-ING. Originariamente sviluppato per Artic Seals (esporta BINCONSU).

Il programma funziona in due modalita':

  • Interattiva: l'operatore inserisce il periodo da estrarre tramite maschera; al termine viene mostrato il contatore di righe lette/scritte.
  • Batch (chiamata da Aglancio): il periodo e' calcolato automaticamente in base alla configurazione (nr-mesi-bi0009); l'output e' rediretto al log di processo Aglancio tramite gesdebug.

Per ogni iterazione cancella i record BINCONSU del periodo via SQL (DELETE FROM binconsu WHERE bcns_data BETWEEN ... AND bcns_azi = ...) e li rielabora da zero.

L'estrazione e' sempre completa: il file logfile viene cancellato a ogni avvio.


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-confi, x99-src-cfg), inizializzazione connessione BI (init-bin-sub-tm-cfg-bin-tipo), setup tasti funzione.
  2. Accept parametri (modalita' interattiva): a-tm-daint-in (data inizio), a-tm-daint-fi (data fine), con supporto calendario COGS52.
  3. Calcolo automatico del periodo (modalita' Aglancio/batch): data fine = data di sistema; data inizio = data di sistema meno nr-mesi-bi0009 * 30 giorni.
  4. Elaborazione (a-elabora-conferma):
  5. Cancellazione SQL del periodo in BINCONSU.
  6. Scan COGTESBO per data (testate documenti): per ogni documento a-esamina-documento.
  7. Scan CLCSTCNS per data (consuntivi stampaggio, chiave 5 su stc-ini-data): per ogni riga a-esamina-riga-consuntivo.
  8. Chiusura (fine): chiusura connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' batch).

File e tabelle acceduti

File logico Record Modalita' Uso
BINCONSU bcns-rec I-O Archivio movimenti costi di produzione BI (output)
COGTESBO tes-rec Input Testate documenti magazzino (chiave2: data)
COGMOMAG mag-recz Input Righe movimenti magazzino
COGGENER gnr-rec Input Riferimenti generali (chiave2: tipo + parte-2, per legare documento a commessa di produzione)
COGLAVOR cla-rec Input Commesse di lavorazione (per merce in lavorazione)
COGDBASE dba-rec Input Distinta base (componenti del prodotto, alias clndbase per scendere nei miscelati)
COGMERCI mer-rec Input Anagrafica merci (per UM componente)
CLCSTCNS stc-rec Input Consuntivi stampaggio (chiave5: data inizio)
FEURTAB - Input Tabella file Eurosystem
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)
LOGFILE - I-O Log testuale operazioni (cancellato ad ogni avvio)

Copybook inclusi

Screen Designer

Copybook Contenuto
swc010-01.scr Maschera principale
swc010.select SELECT dei file
swc010.fd FD dei file
swc010.wrk Working storage maschera
swc010.decla Declaratives

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binconsu.cpy Record BINCONSU
arpstprc.cpy Record ARPSTPRC
logfile.fd / logfile-ext.cpy FD ed estensioni del log testuale
cogazien.cpy Dati azienda
k-u10.cpy Costanti COGU10
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
binconsu-sql-ws.cpy Interfaccia SQL BINCONSU
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
utilcogl61.cpy Interfaccia COGL61 (PMA componente)
utilg31.cpy Interfaccia COGG31 (conversione UM)
utils01.cpy Interfaccia COGS01 (listino, in linkage)
utils52.cpy Interfaccia COGS52 (calendario)
utilu09.cpy / utilu10.cpy Interfaccia COGU09 / COGU10W

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (3 chiamate: confi, src-cfg, src-cfg-agl)
COGL61 Recupero prezzo medio acquisto componente alla fine anno movimento
COGU10W Formattazione/arrotondamento importi
SWGETS Recupero configurazione SW-ING (stringa connessione)
DTPRG / PRGDT Conversione data <-> progressivo (calcolo periodo automatico)

Configurazione (RNEWCONF)

Lette nella chiamata x99-confi (pacchetto "C"):

# Gruppo Chiave Campo interno Descrizione
01 BINT nr-mesi-bi0009 tm-cfg-nr-mesi Numero di mesi precedenti per calcolo automatico periodo
02 BINT no-merci-bi0009 tm-cfg-no-merci Flag estrazione righe senza merce (non usato attivamente in SWC010)
03 BINT cod-merce-bi0009 tm-cfg-merce-nm Codice merce per righe senza merce
04 gestbuonip causale-contanti-1 tm-cfg-cau-con-1 Causale corrispettivi 1
05 gestbuonip causale-contanti-2 tm-cfg-cau-con-2 Causale corrispettivi 2
06 BINT espl-dbase-bi0009 tm-cfg-espl-dbase Flag esplosione distinta base
07 BINT criterio-costo-bi0009 tm-cfg-criterio-costo Criterio costo (non usato in SWC010, che usa sempre PMA)

La configurazione per la connessione BI e' letta da x99-src-cfg (gruppo "abilita": bin-tipo, bin-db-path, bin-db-conn-string 1-3, bin-db-log-level).

La configurazione Aglancio e' letta da x99-src-cfg-agl (gruppo "areaapp": cod-azienda, db-log-level, AGLANCIO-ATTIVO).


Logica di business

Esame documento di magazzino (a-esamina-documento)

Per ogni testata COGTESBO nel periodo:

  1. Cerca su COGGENER (tipo "mov-prod") un riferimento a una commessa di produzione (a-cla-chia1).
  2. Se trovato, legge COGLAVOR e marca il documento come "collegato a produzione".
  3. Filtri sulle righe COGMOMAG del documento:
  4. Solo movimenti di entrata (mag-entrusc = "E").
  5. Se collegato a produzione: solo movimenti che riguardano la merce in lavorazione.
  6. Se non collegato a produzione: solo movimenti sul magazzino principale (tes-mag = az-main-mag) con tipo bolla "P" (prima nota).
  7. Per ogni movimento valido, scrive un record di log e chiama a-esamina-movimento con provenienza "Magazzino".

Esame riga consuntivo stampaggio (a-esamina-riga-consuntivo)

Per ogni riga CLCSTCNS nel periodo con stc-slot > 0 e stc-ope-c = "Avanzamento stampaggio", viene preparato un record con provenienza "Stampaggio" (merce = stc-articolo, magazzino principale, quantita' = stc-pezzi, lotto = stc-lotto) e si chiama a1-estrai.

Estrazione componenti (a1-estrai)

Per la merce padre (a1-merce):

  1. Scan COGDBASE per i componenti diretti.
  2. Per ogni componente con dba-gru-f = "MM" (miscelato): chiama a-esamina-miscelato che scende nella distinta base figlia (clndbase) e moltiplica la quantita' percentuale del miscelato per la quantita' del componente.
  3. Per ogni componente non miscelato: chiama a-inserisci-binconsu.
  4. Al termine inserisce un record "finto" con componente "XX 00001", UM "NR" e quantita' del prodotto finito (a1-qta).

Inserimento BINCONSU (a-inserisci-binconsu)

Per ogni componente:

  • Recupera UM da COGMERCI.
  • Calcola quantita' componente: a1-qta * a-qta (dove a-qta e' la quantita' del componente nella distinta).
  • Costo unitario: chiamata COGL61 con cogl61-in-pma = "S" su data 31/12 dell'anno del movimento. Per materie prime (mer-gru = "MB" o "MP") il PMA e' al kg, quindi costo-tot = pma * qta / 1000; altrimenti costo-tot = pma * qta.
  • Arrotondamento via COGU10W (z-u10-bcns-costo-tot).
  • Commessa formattata come aa/numero.
  • Causale documento (TASK-3467, 10/03/26): bcns-causale = tes-causale per i versamenti da magazzino; zero per i consuntivi di stampaggio.
  • Scrittura con fallback rwr se gia' presente.