Vai al contenuto

SWCL02 - Esportazione Taglio Dati Lavorazioni Manuali per SW-ING

Intestazione

Campo Valore
Programma SWCL02
Titolo Taglio - esportazione dati lavorazioni manuali
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Cicli di lavorazione > Taglio dati manuali

Scopo e logica generale

SWCL02 estrae i consuntivi delle lavorazioni manuali di taglio (TGLLCONS) per il periodo selezionato e i relativi preventivi di taglio (cesoia/punzonatura/piegatura presenti in TGLPRRIG) per ogni commessa toccata. I dati vengono scritti su BINTGLLCONS (consuntivi) e BINTGLLPREV (preventivi).

Il programma funziona in due modalita':

  • Interattiva: l'operatore indica mese/anno di inizio e fine; la finestra dei consuntivi e' espansa al primo del mese di inizio - ultimo del mese di fine.
  • Batch (chiamata da Aglancio): il periodo e' calcolato sottraendo tm-cfg-num-mesi dalla data di sistema; l'output e' rediretto al log Aglancio tramite gesdebug.

Per ogni periodo viene cancellata la finestra corrispondente in BINTGLLCONS (DELETE per data e azienda). Per i preventivi, la cancellazione e' per singola commessa: ogni commessa che ha consuntivi nel periodo viene prima cancellata da BINTGLLPREV e poi ricostruita dalle righe d'ordine.


Flusso principale

  1. Inizializzazione (m-00): rilevamento modalita' Aglancio, ctr-abil, lettura azienda, apertura file, lettura configurazioni RNEWCONF (x99-src-cfg, x99-src-cfg-agl), apertura log gesdebug, apertura connessione BI.
  2. Setup maschera (interattivo): titolo "Swcl02: Taglio - esportazione dati lavorazioni manuali".
  3. Accept parametri (a-tm-aai, a-tm-mmi, a-tm-aa, a-tm-mm): anno e mese di inizio/fine.
  4. Calcolo periodo (a222-ok):
  5. Modalita' batch o w-richiedo-date <> "D": anno/mese iniziale = data sistema meno tm-cfg-num-mesi.
  6. Modalita' interattiva: usa i valori inseriti dall'operatore.
  7. data-ini-ctr = AAAAMM01; data-fin-ctr = AAAAMMGG con gg = ultimo del mese (28/29/30/31 in base a anno bisestile).
  8. Elaborazione (b-elabora):
  9. b1-cancella: DELETE su BINTGLLCONS per periodo + azienda.
  10. open-file-transito: crea file cogtrans temporaneo per accumulare le commesse toccate.
  11. Scansione TGLLCONS su chiave4 (data inizio) nel periodo, esegue estrai-tgllcons.
  12. Scansione COGTRANS per le commesse accumulate, esegue estrai-tgllprev.
  13. Chiusura (fine / z-chiudi): chiusura e cancellazione del file transito, chiusura connessione BI, aggiornamento ARPSTPRC se batch, chiusura log.

File e tabelle acceduti

File logico Record Modalita' Uso
BINTGLLCONS btlco-rec I-O Consuntivi taglio BI (output principale)
BINTGLLPREV btlpr-rec I-O Preventivi taglio BI (output, accumulato per commessa)
TGLLCONS tlco-rec Input Consuntivi lavorazioni taglio (chiave4 su data inizio)
COGLAVOR cla-rec Input Lavorazioni commessa (chiave6 per ordine collegato, chiave4 per commessa)
COGTESOR tor-rec (tar-rec) Input Testate ordini (per verificare tipo speciale)
COGTORAG (alias cogtesor) tar-rec Input Testata raggruppamento ordini
COGRIGOR ror-rec Input Righe ordini (scansione per preventivi)
TGLPRRIG trpr-rec Input Righe preventivo taglio (chiave2 su testata+riga d'ordine)
TGLPRRIP - Input Righe preventivo taglio (definito in select, non usato in elaborazione)
CLCANAMA mac-rec Input Anagrafica macchine (per associare lavorazione alla macchina di taglio)
COGTRANS trs-rec I-O File temporaneo per accumulare le commesse toccate dai consuntivi
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)
FEURTAB - Input Tabella file Eurosystem
LOGFILE - Output (Inutilizzato, scritture commentate)

Il file COGTRANS e' un file ISAM temporaneo (#$swcl02-<operatore>-<datasis><orasis>) in ext-tmp-dir, cancellato a fine elaborazione.


Copybook inclusi

Screen Designer

Copybook Contenuto
swcl02-01.scr Maschera principale
swcl02.select SELECT dei file (clcanama, cogtesor, cogrigor, coglavor, cogtorag, tglprrig, tgllcons, tglprrip)
swcl02.fd FD dei file
swcl02.wrk Working storage maschera
swcl02.decla Declaratives

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
bintgllcons.cpy/bintgllprev.cpy Record BIN*
arpstprc.cpy Record ARPSTPRC
logfile.cpy Record LOGFILE
cogazien.cpy Dati azienda
sql-decla-ws.cpy Working storage connessione SQL/BI
bintgllcons-sql-ws.cpy/bintgllprev-sql-ws.cpy Interfacce SQL
arpstprc-sql-ws.cpy Interfaccia SQL ARPSTPRC
wstato.cpy/wgrave.cpy/wopenf.cpy/wnscr.cpy Working storage comuni

Chiavi secondarie

Copybook Uso
cogtrans.k01 Chiave primaria file transito
tglprrig.k02 Accesso TGLPRRIG per testata+riga d'ordine
coglavor.k04 / coglavor.k06 Accesso COGLAVOR per commessa / ordine
tgllcons.k04 Accesso TGLLCONS per data inizio
bintgllcons.k01 / bintgllprev.k01 Chiavi primarie tabelle BI
arpstprc.k01 / arpstprc.k01-agg Chiavi ARPSTPRC

Utility

Copybook Contenuto
utilncnf.cpy Struttura parametri RNEWCONF
utilgesdebug.cpy Gestione debug/log Aglancio
utilswgets.cpy Interfaccia SWGETS
utilagprg.cpy Interfaccia parametri Aglancio (in linkage e duplicato come util-2gprg per sondaggio dinamico)
utilu18.cpy Interfaccia COGU18

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (2 chiamate: src-cfg, src-cfg-agl)
SWGETS Recupero stringa di connessione AreaGATE
C$NARG / C$PARAMSIZE Verifica dinamica della presenza di util-agprg

Configurazione (RNEWCONF)

x99-src-cfg (pacchetto "C")

8 chiavi:

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI: "P" Postgres, "C" C-Tree, "D" DBmaker, "N" non abilitato
02 abilita bin-db-path tm-cfg-bin-path Percorso database file-based
03-05 abilita bin-db-conn-string (idx 1-3) tm-cfg-bin-conn-string (1-3) Stringa di connessione Postgres (3 segmenti)
06 abilita bin-db-log-level tm-cfg-bin-log-level Livello di log SQL
07 areaapp cod-azienda tm-cfg-cod-azienda Codice azienda usato per chiave BINTGLLCONS
08 areaapp mesi-esportazione-taglio tm-cfg-num-mesi Numero mesi precedenti per calcolo periodo automatico (modalita' batch)

x99-src-cfg-agl (pacchetto "C", gruppo "areaapp")

3 chiavi (cod-azienda, db-log-level, AGLANCIO-ATTIVO) per la connessione ad AreaGATE e l'aggiornamento di ARPSTPRC.


Logica di business

Cancellazione preventiva consuntivi (b1-cancella)

DELETE su BINTGLLCONS per btlco_data BETWEEN $1 AND $2 e btlco_azi = $3, con $1/$2 = data-ini-ctr/data-fin-ctr e $3 = tm-cfg-cod-azienda. Eseguito tramite sql-execparams su statement preparato dinamicamente.

Estrazione consuntivi (estrai-tgllcons)

Per ogni record TGLLCONS nel periodo: - Inizializza btlco-rec; copia tlco-id (id registrazione), tlco-ope-1 (operatore), commessa formattata "aaaa/nnnnnnnnnn", tlco-mac, tlco-lav, tlco-tip, tlco-data-ini, tlco-tempo. - Per recuperare l'ordine di riferimento: scansione COGLAVOR chiave6 con cla-com-ann/cla-com-num dalla commessa del consuntivo; usa l'ultima riga letta per formattare btlco-ordine come "tipo/aaaa/numero/progressivo". - Scrittura su BINTGLLCONS (sub-cfg-wr-bintgllcons). - Salvataggio nel file COGTRANS della coppia (commessa, commessa formattata) per la successiva estrazione preventivi.

Estrazione preventivi (estrai-tgllprev)

Per ogni commessa in COGTRANS: 1. b2-cancella: DELETE su BINTGLLPREV per btlpr_com = <commessa formattata> (rimuove tutti i preventivi precedenti della commessa). 2. Legge COGLAVOR (chiave4) per recuperare l'ordine collegato alla commessa. 3. Legge COGTORAG (alias di COGTESOR) per verificare tar-tipo-speciale. Se non e' speciale, esegue x-scorri-cogrigor. 4. x-scorri-cogrigor: loop sulle righe COGRIGOR dell'ordine. Per ogni riga, x-scorri-tglprrig. 5. x-scorri-tglprrig: loop sulle righe TGLPRRIG (chiave2 = testata + progressivo riga). Per ogni riga preventivo: scrivi-pre-tgl-lam. 6. scrivi-pre-tgl-lam: scrive/aggiorna fino a 3 record BINTGLLPREV per riga preventivo, uno per ogni tipo di lavorazione di taglio attiva: - Cesoia (trpr-fl-lc-eseguo = "S"): macchina trpr-lc-mac, tempo trpr-lc-tempo-lav. - Punzonatura (trpr-fl-lp-eseguo = "S"): macchina trpr-lp-mac, tempo trpr-lp-tempo-lav. - Piegatura (trpr-fl-lg-eseguo = "S"): macchina trpr-lg-mac, tempo trpr-lg-tempo-lav.

Per ogni tipo, viene letta CLCANAMA per ricavare mac-lav (la lavorazione associata alla macchina). Se il record BINTGLLPREV (chiave = azienda+commessa+tipo+lavorazione, da btlpr.k01) esiste, il tempo viene sommato; altrimenti viene creato.

Trasformazione campi

  • Commessa formattata: <aaaa>/<nnnnnnnnnn> in btlco-com e btlpr-com.
  • Ordine formattato: <tipo>/<aaaa>/<numero>/<progressivo> in btlco-ordine e btlpr-ordine.
  • Tipo lavorazione: "L" (lavorazione) fisso per i preventivi taglio.