SWC019 - Scaricamento Partitario Fornitori x SW-ING¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | SWC019 |
| Titolo | Scaricamento Partitario Fornitori |
| Posizione menu | Statistiche > Estrazione dati vs B.I.Swing > Contabilita' > Partitario fornitori |
Scopo e logica generale¶
SWC019 calcola la fotografia del partitario fornitori a una determinata data e la scarica nelle tabelle BI di destinazione:
- BINPAFOR: sintesi per fornitore (totali a scadere, scaduto a fasce, monte acquisti, fatturato corrente/12 mesi/anno precedente).
- BINPADEF: dettaglio per partita (stesse fasce, riferite alla singola partita aperta, con data valuta e data fattura).
E' il pendant di SWC016 (clienti), con logica analoga.
Il programma funziona in due modalita':
- Interattiva: l'operatore indica la data fine analisi tramite maschera; al termine vengono mostrati i contatori di record letti/scritti.
- Batch (chiamata da Aglancio): la data viene presa dal flag
cgia-data-agg(data di aggiornamento azienda) o dalla data di sistema; l'output e' rediretto al log di processo Aglancio tramitegesdebug.
Prima della scrittura su BI il programma cancella i record BINPAFOR/BINPADEF gia' presenti per la stessa data e per l'azienda corrente (procedura c1-cancella).
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), preparazione file di lavoro temporanei#$swc019_binlav.<oper>e#$swc019_binpar.<oper>. - Accept parametri (modalita' interattiva):
a-tm-data-a(data fine analisi) con supporto calendario COGS52. - Calcolo automatico della data (modalita' Aglancio/batch):
tm-data-a = cgia-data-agg(se valorizzata) odatasis. - Fase B (
b-elabora): elaborazione dal partitario fornitori, scrittura sui file di lavorolavoroelavpar. - Fase C (
c-elabora): cancellazione dei record BI del periodo (c1-cancella), poi scansione dei file di lavoro e scrittura in BINPAFOR (dalavoro) e BINPADEF (dalavpar). - Chiusura (
z-chiudi): chiusura file, chiusura connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' Aglancio).
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| BINPAFOR | bpfor-rec | I-O | Archivio BI sintesi partitario per fornitore (output) |
| BINPADEF | bpdef-rec | I-O | Archivio BI dettaglio partitario per partita (output) |
| LAVORO | lav-rec | I-O | File indicizzato temporaneo: sintesi fornitore |
| LAVPAR | lavp-rec | I-O | File indicizzato temporaneo: dettaglio partita (con data valuta e data fattura) |
| COGPARTI | par-rec | Input | Partitario clienti/fornitori (scansione fornitori par-patipcli = "F") |
| COGMOVPA | mov-rec | Input | Movimenti partita (per calcolo saldo e dare/avere) |
| COGGEANA | ana-rec | Input | Anagrafica generale (fornitori) |
| COGTABEL | euta-rec | Input | Tabelle sistema (tipo 22 causali pagamento, 66 esercizio, 68 tipi documento IVA) |
| COGTESBO | tes-rec | Input | Testate documenti magazzino |
| COGMOMAG | mag-rec | Input | Righe movimenti magazzino |
| COGFATTU | fat-rec | Input | Fatture |
| COGPNCON | pco-rec | Input | Piano dei conti |
| COGPNONC | pno-rec | Input | Prima nota non contabilizzata |
| FEURTAB | - | Input | Tabella file Eurosystem |
| ARPSTPRC | a-stpr-rec | I-O | Stato processi Aglancio (solo modalita' batch) |
| FILELOG | logg-rec | Output | Log testuale |
Copybook inclusi¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
swc019-01.scr |
Maschera principale |
swc019.select |
SELECT dei file |
swc019.fd |
FD dei file |
swc019.wrk |
Working storage maschera |
swc019.decla |
Declaratives |
Strutture dati¶
| Copybook | Contenuto |
|---|---|
cogfiles.cpy |
FD feurtab |
binpafor.cpy / binpadef.cpy |
Record BINPAFOR / BINPADEF |
arpstprc.cpy |
Record ARPSTPRC |
logfile.cpy |
File log testuale |
cogazien.cpy |
Dati azienda |
cogconta.cpy |
Dati esercizio contabile |
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 |
binpafor-sql-ws.cpy / binpadef-sql-ws.cpy |
Interfaccia SQL BINPAFOR/BINPADEF |
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 |
utilckiva.cpy |
Controllo IVA |
utilu10.cpy |
Interfaccia COGU10W |
utils52.cpy |
Interfaccia COGS52 (calendario) |
utils62.cpy |
Interfaccia COGS62 (delta tempo per SWLIVE) |
utilcgiarea.cpy |
Linkage area CGI |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazione (x99-src-cfg, x99-src-cfg-agl) |
| SWGETS | Recupero stringa di connessione SW-ING |
| COGS62 | Calcolo differenza in secondi tra due timestamp (per SWLIVE) |
| SWLIVE | Keepalive processo Aglancio (ogni 30 secondi in modalita' batch) |
Configurazione (RNEWCONF)¶
Lette in x99-src-cfg (pacchetto "C"):
| # | Gruppo | Chiave | Campo interno | Descrizione |
|---|---|---|---|---|
| 01 | abilita | bin-tipo | tm-cfg-bin-tipo |
Tipo connessione BI: "P" PostgreSQL, "C" C-Tree, "D" DBmaker, "N" disabilitato |
| 02 | abilita | bin-db-path | tm-cfg-bin-path |
Percorso file BI (per C-Tree) |
| 03-05 | abilita | bin-db-conn-string (1-3) | tm-cfg-bin-conn-string |
Stringa di connessione PostgreSQL |
| 06 | abilita | bin-db-log-level | tm-cfg-bin-log-level |
Livello di log SQL |
| 07 | PROGCOGV97 | gestione-riba | tm-cfg-rib-tip |
Tipo di gestione RiBa |
La configurazione Aglancio e' letta da x99-src-cfg-agl (gruppo "areaapp": cod-azienda, db-log-level, AGLANCIO-ATTIVO). La stringa di connessione AreaGATE e' recuperata da SWGETS.
Logica di business¶
Fase B: calcolo partitario fornitori¶
Scansione di COGPARTI in chiave primaria filtrando per par-patipcli = "F" (fornitori).
Per ogni partita:
- Lettura causale pagamento (COGTABEL tipo 22) per determinare se considerare la data valuta (
euta-cp-no-valuta). - Su rottura di fornitore: calcola monte acquisti e fatturato annuo (
fat-10,reg-lav), scrive un record nel file di lavorolavoro(sintesi fornitore). - Per ogni partita, scansione di COGMOVPA: somma DARE e AVERE per ottenere il saldo, considera la data valuta del primo movimento, calcola le fasce di scaduto/scadere in base alla differenza tra data movimento e
tm-data-a. - Considera le ritenute d'acconto: sottratte normalmente, sommate se il documento e' una nota di accredito (
euta-segnotiva = "-"su tabella 68). - Scrive il dettaglio della partita nel file di lavoro
lavpar, includendo data valuta e data fattura.
I file lavoro e lavpar sono file indicizzati temporanei specifici dell'operatore (#$swc019_binlav.<oper>, #$swc019_binpar.<oper>).
Fase C: scrittura su BI¶
- Cancellazione (
c1-cancella): per il database PostgreSQL esegue una DELETE su BINPAFOR e BINPADEF con filtro per data e azienda. Per C-Tree/DBmaker il file non viene preventivamente svuotato. - Scrittura sintesi fornitore: scansione sequenziale di
lavoro, valorizzazione dibpfor-rec(data, fornitore, importi scaduto, monte acquisti, fatturato),sub-cfg-wr-binpafor. - Scrittura dettaglio partita: scansione sequenziale di
lavpar, valorizzazione dibpdef-rec(con data valuta e data fattura per ogni partita),sub-cfg-wr-binpadef.
Keepalive Aglancio¶
In modalita' batch, ogni 30 secondi viene chiamato SWLIVE per evitare che il motore di scheduling termini il processo per inattivita'. Il delta tempo e' misurato con COGS62.