Vai al contenuto

SWC032 - Scaricamento Preventivi per SW-ING

Intestazione

Campo Valore
Programma SWC032
Titolo Scaricamento Preventivi su SW-ING
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Magazzino / Vendite > Preventivi

Scopo e logica generale

SWC032 estrae i preventivi clienti e li scrive nell'archivio BINPREVE utilizzato dal sistema di Business Intelligence SW-ING.

Il programma supporta solo backend Postgres (tm-cfg-bin-tipo = "P"): la configurazione segnala errore per qualsiasi altro valore.

Il programma funziona in due modalita':

  • Interattiva: l'operatore avvia l'elaborazione dalla maschera; nessun parametro di periodo richiesto (l'intervallo e' hard-coded 19000101-21000101, di fatto full-refresh).
  • Batch (chiamata da Aglancio): rilevamento via C$NARG/C$PARAMSIZE sul parametro util-agprg; output rediretto al log Aglancio tramite gesdebug.

Prima dell'elaborazione esegue cancella-bin-sub-tm-cfg-bin-tipo (TRUNCATE binpreve), poi riesporta da zero. Per ogni riga: WRITE BINPREVE, in caso di duplicato fallback RWR.


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, init programma, apertura file Eurocoge, lettura azienda, configurazione (x99-src-cfg, x99-src-cfg-agl), inizializzazione connessione BI (init-bin-sub-tm-cfg-bin-tipo).
  2. Rilevamento modalita' Aglancio: se agprg-id-processo valido, modalita' batch con tm-id-processo dal chiamante e chiusura connessione AreaGate per riapertura locale.
  3. Maschera (solo interattivo): titolo "Scaricamento Preventivi su SW-ING", attesa F3 (la maschera mostra controlli per data inizio/fine, ma gli accept sono commentati: di fatto e' full-refresh).
  4. Elaborazione (a-elabora-confermaelaborafase1):
  5. Cancellazione BINPREVE.
  6. Scan COGTESPR (testate preventivo).
  7. Per ogni testata: lettura COGTPRAG, note (COGTPRNT tipo T e TC), commessa (COGRIGCM chiave2), chiamata assist (ASNCHPRV chiave2).
  8. Scan COGRIGPR (righe preventivo) → BINPREVE per ogni riga con merce valorizzata.
  9. Chiusura (fine/z-chiudi): chiusura file e connessione BI, riapertura DB AreaGate per aggiornare stato processo ARPSTPRC (solo modalita' batch).

File e tabelle acceduti

File logico Record Modalita' Uso
BINPREVE bpre-rec I-O BI: preventivi (output principale)
COGTESPR tpr-rec Input Testate preventivo
COGTPRAG tpra-rec Input Dati aggiuntivi testata preventivo
COGTPRNT tprn-rec Input Note preventivo (tipo "T" testata, "TC" costi aggiuntivi)
COGRIGPR rpr-rec Input Righe preventivo
COGRPRAG rpra-rec Input Dati aggiuntivi riga preventivo
COGRIGCM rgc-rec Input Righe commesse (chiave2: tipo "TP" + chia1 preventivo)
ASNCHPRV achv-rec Input Collegamento preventivo-chiamata assist (chiave2: tpr-chia1)
COGTESOR tor-rec Input Testate ordini (per data di decorrenza ordine generato)
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo batch)

Copybook inclusi

Screen Designer

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

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binpreve.cpy Record BINPREVE
arpstprc.cpy Record ARPSTPRC
cogazien.cpy Dati azienda
k-personal.cpy Costanti personalizzazione
k-u10.cpy Costanti COGU10
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage comuni
sql-decla-ws.cpy Working storage connessione SQL/BI
binpreve-sql-ws.cpy Interfaccia SQL BINPREVE
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
utils52.cpy Interfaccia COGS52 (calendario, controlli maschera)
utils62.cpy Interfaccia COGS62 (differenza tempo, per SWLIVE)
utilu10.cpy Interfaccia COGU10
utilcgiarea.cpy Linkage per chiamata BIENG-CALLED (CGI Areagate)

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (2 chiamate: src-cfg, src-cfg-agl)
SWGETS Recupero stringa di connessione SW-ING (modalita' batch)
COGS62 Calcolo differenza in secondi tra timestamp (per SWLIVE)
SWLIVE Keepalive processo Aglancio (ogni 30 secondi in modalita' batch)
C$NARG / C$PARAMSIZE Verifica presenza parametro util-agprg

Configurazione (RNEWCONF)

Chiamata x99-src-cfg (gruppo abilita):

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI: deve essere "P" (Postgres)
02 abilita bin-db-path tm-cfg-bin-path (non usato per Postgres)
03-05 abilita bin-db-conn-string (1-3) tm-cfg-bin-conn-string Stringhe di connessione Postgres
06 abilita bin-db-log-level tm-cfg-bin-log-level Log level connessione

Chiamata x99-src-cfg-agl (modalita' Aglancio):

# Gruppo Chiave Campo interno Descrizione
01 areaapp cod-azienda tm-cfg-cod-azienda Codice azienda AreaApp
02 areaapp db-log-level tm-cfg-bin-log-level-agl Log level connessione AreaGate
03 AREAAPP AGLANCIO-ATTIVO tm-cfg-aglancio-attivo "S" = nuova procedura Aglancio attiva

La stringa di connessione AreaGate e' restituita da SWGETS.


Logica di business

Fase 1: estrazione preventivi

Scan di COGTESPR. Per ogni testata:

  1. Dati aggiuntivi: legge COGTPRAG (chia1).
  2. Note testata: legge COGTPRNT con tipo "T" prog 1 → tm-note-testata.
  3. Note costi aggiuntivi: legge COGTPRNT con tipo "TC" prog 1 → tm-note-cst-agg.
  4. Commessa collegata: scan COGRIGCM chiave2 con tip "TP" e chiave = tpr-chia1; prende rgc-tsctm-com-tsc.
  5. Chiamata assist collegata (solo se az-assist = "S"): scan ASNCHPRV chiave2 con achv-tpr-chia1 = tpr-chia1; prende acht-id e prog.
  6. Loop righe (COGRIGPR per tpr-anno/tpr-numero):
  7. Scarta righe con rpr-merce = k-merce-null (= " 00000"), salvando la descrizione della prima riga in tm-note-priga.
  8. Legge dati aggiuntivi riga (COGRPRAG).
  9. Se ordine generato (tpr-ord-numero <> 0), recupera tor-datdecorr da COGTESOR per bpre-data-ord.
  10. Valorizza BINPREVE con dati di testata, dati aggiuntivi, dati riga, note accumulate, commessa, classificazione assist/commerciale (bpre-tipo-ass-comm = "A" se chiamata trovata, altrimenti "C").
  11. WRITE BINPREVE; in caso di duplicato (w-verbo-invalido), fallback RWR.

Modalita' BIENG-CALLED (CGI)

Il programma riceve util-cgiarea con flag cgia-called. Se chiamato come "BIENG-CALLED" copia in w-dc-util-cgi (al momento la logica di filtro periodo via CGI e' commentata, vedi codice originale).


Note

  • ID processo Aglancio: 50024.
  • Solo backend Postgres supportato (per altri valori di bin-tipo segnala errore).
  • L'intervallo date tm-daint-in/tm-daint-fi esiste nella tab-maschera ma gli accept sono commentati: l'estrazione e' sempre full-refresh.