SWC020 - Scaricamento Movimenti Centri di Costo x SW-ING¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | SWC020 |
| Titolo | Scaricamento Movimenti Centri di costo |
| Posizione menu | Statistiche > Estrazione dati vs B.I.Swing > Contabilita' > Movimenti centri di costo |
Scopo e logica generale¶
SWC020 estrae i movimenti di analitica per centro di costo e li scarica nella tabella BI di destinazione:
- BINMOVCC: movimenti analitici per centro di costo con tutti i dati di analisi (documento, conto, importo, riparti, riferimenti).
Il programma funziona in due modalita':
- Interattiva: di default non chiede parametri e parte automaticamente dalla data di chiusura dell'esercizio precedente. Se invocato con
wo-parametro = "D", mostra l'accept di data inizio/fine. - Batch (chiamata da Aglancio): l'output e' rediretto al log di processo Aglancio tramite
gesdebug.
Prima dell'elaborazione vengono cancellati i record BINMOVCC del periodo (cancella-bin-sub-tm-cfg-bin-tipo). La cancellazione discrimina i movimenti consuntivi dai provvisori in base al flag tm-cfg-tipo-estr.
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). - Lettura esercizio contabile (
a4): COGTABEL tipo 66, apertura COGCOATT (prima nota corrente) e COGCOPRE (prima nota precedente). - Selezione periodo (modalita' interattiva): se
wo-parametro = "D", mostraa-tm-daint-in/a-tm-daint-fi; altrimenti salta direttamente aa-elabora-confermacon la data di chiusura esercizio. - Cancellazione e elaborazione (
a-elabora-conferma): cancella-bin-sub-tm-cfg-bin-tipo: cancellazione preliminare dei record BI.elabora: lettura tabella modelli analitica (COGTABELtipo "AU") +scarica-cogmovcc.- Chiusura (
z-chiudi): chiusura file e connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' Aglancio).
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| BINMOVCC | bcdc-rec | I-O | Archivio BI movimenti centri di costo (output) |
| COGMOVCC | cdc-rec | Input | Movimenti analitici centri di costo (sorgente principale) |
| COGBPCC | bpcc-rec | Input | Tabella di mappatura servizio/centro/modello -> codice di riparto |
| COGTABEL | euta-rec | Input | Tabelle sistema (tipo 66 esercizio, tipo "AU" modelli analitica, tipi 21/84/88) |
| COGPNCON | pco-rec | Input | Piano dei conti |
| COGPNONC | pno-rec | Input | Prima nota non contabilizzata (per recupero data competenza, flag provvisorio) |
| COGCOATT | con-rec | Input | Prima nota esercizio attuale |
| COGCOPRE | con-rec | Input | Prima nota esercizio precedente |
| FEURTAB | - | Input | Tabella file Eurosystem |
| ARPSTPRC | a-stpr-rec | I-O | Stato processi Aglancio (solo modalita' batch) |
| FILELOG | log-rec | Output | Log testuale (#$logbin009.txt) |
Copybook inclusi¶
Screen Designer¶
| Copybook | Contenuto |
|---|---|
swc020-01.scr |
Maschera principale |
swc020.select |
SELECT dei file |
swc020.fd |
FD dei file |
swc020.wrk |
Working storage maschera |
swc020.decla |
Declaratives |
Strutture dati¶
| Copybook | Contenuto |
|---|---|
cogfiles.cpy |
FD feurtab |
binmovcc.cpy |
Record BINMOVCC |
arpstprc.cpy |
Record ARPSTPRC |
cogcoatt.cpy / cogcopre.cpy |
FD prima nota corrente/precedente |
cogconta.cpy / wcont.cpy / wcont1.cpy |
Working storage contabili |
cogazien.cpy |
Dati azienda |
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy |
Working storage comuni |
sql-decla-ws.cpy |
Working storage connessione SQL/BI |
binmovcc-sql-ws.cpy |
Interfaccia SQL BINMOVCC |
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) |
utils62.cpy |
Interfaccia COGS62 (delta tempo per SWLIVE) |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazione (x99-src-cfg, x99-src-cfg-agl) |
| SWGETS | Recupero stringa di connessione SW-ING |
| AZVALIDA.COB | Validazione data fattura |
| COGS62 | Calcolo differenza in secondi tra due timestamp (per SWLIVE) |
| SWLIVE | Keepalive processo Aglancio (ogni 30 secondi in modalita' batch) |
| C$RERR | Recupero stato esteso file (uso C-Tree/DBmaker) |
| W$FLUSH | Flush schermo |
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 |
Il campo tm-cfg-tipo-estr ("S" = solo provvisori, altro = consuntivi) e' presente nella struttura ma la lettura della chiave RNEWCONF e' commentata nel codice corrente: il valore di default e' "P" (forzato a "P" se a spazi).
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¶
Lettura modelli analitica¶
In testa a elabora, viene letta da COGTABEL la tabella tipo "AU" (modelli analitica) caricando fino a 6 codici modello in tabella w-mod. Questi codici vengono usati per ricercare i riparti su COGBPCC.
Scarica-cogmovcc¶
Scansione sequenziale di COGMOVCC. Per ogni movimento con cdc-datamov >= tm-data (data inizio):
- Trasferimento campi base: codice anno, documento, mastro/conto/sottoconto, segno, livelli analitica, magazzino, merce, commessa, riferimenti documento magazzino.
- Ricerca cliente/fornitore (
cerca-cli-for): scansione di COGPNONC sul documento per individuare il cliente o fornitore associato (PCASE-1412: usa direttamentecdc-ana-tipo/cdc-ana-codse presenti). - Calcolo segno importo: il segno DARE/AVERE viene tradotto in segno aritmetico (DARE = negativo).
- Determinazione consuntivo vs provvisorio (PCASE-4289): lettura di COGPNONC per il documento; se
pno-fl-proe' a spazi il movimento e' consuntivo (bcdc-importovalorizzato), altrimenti e' provvisorio (bcdc-importo-provvalorizzato ebcdc-fl-prov = "P"). - Validazione date: data movimento, data competenza, sottoconto e livello 3 vengono validati; eventuali zeri scatenano una segnalazione (errore-1/2/3/4) sul log.
- Calcolo riparti analitica: per ognuno dei 6 modelli di analitica, scansione di COGBPCC su (servizio =
bcdc-rep, CC =bcdc-cc, modello). Se trovato esattamente un riparto, viene assegnato a uno degli slotbcdc-ricla(1..6); se piu' di uno, viene segnalato (errore-5). - Validazione data fattura (
AZVALIDA.COB): se errata, sostituita con data di sistema. - Scrittura BINMOVCC: in base a
tm-cfg-tipo-estr: - se
"S"(solo provvisori): scrive solo sebcdc-fl-prov = "P". - altrimenti scrive il movimento (consuntivo o provvisorio).
Cancellazione preliminare¶
cancella-bin-sub-tm-cfg-bin-tipo instrada a una procedura specifica per il tipo di database (C-Tree: cancella-ctree, DBmaker: cancella-dbmaker, PostgreSQL: cancella-postgres). Per C-Tree/DBmaker la cancellazione e' un loop sequenziale che applica il filtro tm-cfg-tipo-estr (cancella solo i provvisori se in modalita' "S").
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.