Vai al contenuto

COGM06 - Importazione Distinta Base

Sorgente: cbl/cogm06.cbl | Tipo: Programma batch interattivo | Program-ID: COGM06

Menu:

  • Magazzino > Archivi & Tabelle > Supp. Magnetici > Importazione Dist.Base

Scopo

Caricamento della distinta base di un prodotto da file di testo sequenziale. Cancella la distinta base precedente della merce selezionata e la ricrea con i componenti letti dal file. Al termine, contrassegna il prodotto come "padre" con distinta di tipo "P".


Interfaccia utente

Maschera (tab-maschera)

Campo Tipo Descrizione
tm-da-merce X(09) Codice prodotto (gruppo 2 + sottogruppo 2 + codice 5)
tm-da-merce-des X(36) Descrizione del prodotto
tm-file X(132) Percorso del file di input
tm-file-local X(132) Percorso locale del file (per thin client)
tm-file-remote X(132) Percorso remoto (copia su ext-tmp-dir)
tm-c-l 9(06) Contatore righe lette
tm-c-v 9(06) Contatore righe valide
tm-c-n 9(06) Contatore righe non valide
tm-note X(160) Note

Ordine di accept dei campi

Prodotto > File input > Conferma

Tasti funzione

Tasto Funzione
F3 Conferma e avvia elaborazione
F5 Apri finestra selezione file (C$OPENSAVEBOX)
F8 Aiuto
F9 Ricerca avanzata
ESC Esce
F2 Torna al campo precedente

File e tabelle

File/Tabella Copybook Uso
FEURTAB cogfiles.cpy Tabella parametri generali
COGMERCI cogm06.fd Anagrafica merci (verifica esistenza componenti)
COGDBASE cogm06.fd Distinta base (tabella aggiornata)
COGTRANS -- File indicizzato temporaneo (deduplicazione componenti)
COGSEQUE -- File sequenziale di input (line sequential)

Struttura file di input (COGSEQUE)

Campo Tipo Descrizione
seq-merce X(09) Codice merce componente
seq-qta 9(05)V99 Quantita'

Struttura file temporaneo (COGTRANS)

Campo Tipo Descrizione
trs-merce X(09) Codice merce (chiave univoca)

Programmi chiamati

Programma Scopo
C$OPENSAVEBOX Finestra selezione file (solo su Windows)
C$COPY Copia file da client a server (thin client)
COGS68 Ricerca merce

Copybook principali

  • cogm06.select, cogm06.fd, cogm06.wrk, cogm06.prc, cogm06.decla, cogm06-01.scr -- Screens
  • cogazien.cpy -- Dati azienda (az-sys per rilevare Windows)
  • utils68.cpy -- Ricerca merce (COGS68)
  • utildlg.cpy -- Utility dialogo
  • opensave.def -- Definizioni C$OPENSAVEBOX

Logica di elaborazione

Fase 1: Cancellazione distinta precedente (b-canc-dba)

  1. Posizionamento su COGDBASE con chiave = merce selezionata (dba-merce)
  2. Ciclo RDNXT: per ogni record con la stessa merce padre, esegue DELETE

Fase 2: Inserimento nuova distinta (c-ins-dba)

  1. Se thin client: copia il file dal client al server via C$COPY in ext-tmp-dir/import.txt
  2. Apre COGTRANS (file temporaneo indicizzato per deduplicazione)
  3. Apre COGSEQUE (file di input sequenziale)
  4. Per ogni riga letta:
  5. Verifica esistenza del componente in COGMERCI
  6. Se non trovato: incrementa tm-c-n (non valide), skip
  7. Cerca il componente in COGTRANS: se gia' presente (duplicato), skip
  8. Scrive il componente in COGTRANS (deduplicazione)
  9. Se quantita' = 0, la forza a 1
  10. Scrive il record in COGDBASE con: merce padre, progressivo, merce componente, quantita', data
  11. Incrementa tm-c-v (valide)
  12. Al termine, se almeno un componente inserito:
  13. Legge COGMERCI con lock per la merce padre
  14. Imposta mer-padre = 'P' e mer-tipo-distinta = 'P'
  15. REWRITE

Gestione thin client

Se az-sys = "W" (Windows), il programma verifica la disponibilita' di C$OPENSAVEBOX. Se il file viene selezionato da un client remoto, viene prima copiato nella directory temporanea del server tramite C$COPY.


Note

  • Il file temporaneo COGTRANS e' specifico per operatore (nome include k-program-id e wo-oper) e viene cancellato alla chiusura (DELETE FILE).
  • Il programma usa PERFORM ... THRU per le sezioni di elaborazione (b-canc-dba thru ex-b, c-ins-dba thru ex-c).
  • La visualizzazione note (vis-note) e' richiamata all'inizio ma non ha un campo di input dedicato nella maschera di conferma.

Documentazione tecnica -- 2026-05-01