Vai al contenuto

COGV100 -- Creazione inventario da terminalino

Sorgente: cbl/cogv100.cbl | Tipo: Programma batch con interfaccia grafica (maschera parametri + elaborazione) | Program-ID: COGV100

Menu: Magazzino > Inventario > Creazione inventario da terminalino


Scopo

Importa i dati di inventario rilevati tramite lettore barcode portatile (terminalino). Legge il file scaricato dal dispositivo, identifica gli articoli per codice a barre (EAN) o per codice merce, e carica i dati nell'archivio di transito inventario (COGINVTR). Supporta due tipi di input: file diretto dal terminalino (formato proprietario) e file da mobile wireless.


Interfaccia utente

Maschera parametri

Campo Tipo Descrizione
tm-passw x(08) Password per azzeramento archivio
tm-ini x(01) Flag azzeramento archivio (S/N)
tm-mag x(01) Codice magazzino
tm-sta x(01) Stampa anomalie (S/N)
tm-tipo-inpfil x(01) Tipo input: M=terminalino diretto, S=mobile wireless
tm-letti contatore Numero letture processate
tm-scritti contatore Numero record caricati

Tasti funzione

Tasto Funzione
F3 Conferma e avvia elaborazione
F8 Aiuto sul campo magazzino
ESC Uscita

File e Tabelle

File/Tabella Copybook Uso
COGINVTR coginvtr.cpy Archivio transito inventario (output)
INPFILMAT (definito inline, line sequential) File input da terminalino diretto
INPFILSN (definito inline, indexed) File input da mobile wireless
LOGERR (definito inline) File log errori
FLSTA flsta.cpy File stampa anomalie
FEURTAB cogfiles.cpy File tabelle Euro
Tabelle via cogv100.select cogv100.fd COGMERCI, COGMATRI (matricole), COGRACMC (raccordo codici)

Struttura del programma

Flusso principale

apri -> ctr-abil -> z-99-init-program -> rd-azi -> open-files
     -> Apertura COGINVTR (con creazione se non esiste)
     -> a4 (inizializzazione parametri)
     -> Accept: a-tm-passw, a-tm-ini, a-tm-mag, a-tm-sta, a-tm-tipo-inpfil
     -> a-richiesta-conferma (validazione)
     -> x0-creo-file (scarico dati dal terminalino via COGU60)
     -> x1-scarica-dati (elaborazione file input)
     -> x2-stampa-err (se richiesta stampa anomalie)
     -> Copia file input con timestamp
     -> fine (chiusura e log)

Paragrafi principali

Paragrafo Funzione
a4 Inizializzazione parametri (magazzino default, tipo input)
a-tm-passw Accept password per azzeramento
a-tm-ini Accept flag azzeramento archivio
a-tm-mag Accept magazzino
a-tm-sta Accept flag stampa anomalie
a-tm-tipo-inpfil Accept tipo input (M/S)
a-richiesta-conferma Validazione e conferma
x0-creo-file Scarico dati dal dispositivo tramite COGU60
x1-scarica-dati / x1-00 Elaborazione del file input
x1-10-loop Loop di lettura record per record
x1-10-ok Identificazione merce e scrittura in COGINVTR
x1-50 Fine lettura
x2-stampa-err Generazione report anomalie
x3-stampa-log Stampa log errori

Logica di elaborazione

Scarico dati dal dispositivo (x0-creo-file)

  1. Chiama COGU60 per il download dal terminalino
  2. Il tipo di input determina il formato:
  3. M (terminalino diretto): file archivio.dat nella cartella temporanea
  4. S (mobile wireless): file indicizzato mwseq.{operatore} (caller COGG62)

Elaborazione file input (x1-scarica-dati)

Per ogni record letto dal file input:

  1. Identifica l'articolo:
  2. Ricerca per codice EAN a 13 cifre nella tabella matricole (COGMATRI k04)
  3. Se non trovato, ricerca nel raccordo codici merce (COGRACMC)
  4. Se non trovato, interpreta come codice merce diretto
  5. Se l'articolo e' identificato:
  6. Cerca se esiste gia' un record in COGINVTR per merce+magazzino
  7. Se esiste: somma la quantita'
  8. Se non esiste: crea un nuovo record
  9. Se l'articolo non e' identificato: registra l'errore nel log

Azzeramento archivio

Se tm-ini = "S" e la password e' corretta: 1. Chiede conferma 2. Chiude COGINVTR 3. Lo riapre in output (svuota il file) 4. Lo richiude e riapre in I-O

Archiviazione file input

Al termine, il file input viene copiato (tramite C$COPY) nella cartella di sistema con un nome che include mese, giorno, ora e minuti per lo storico.


Configurazioni

Il tipo di input (tm-tipo-inpfil) viene preimpostato in base alla personalizzazione aziendale: - VEGE, OPEL: default "S" (mobile wireless) - Altre: default "M" (terminalino diretto)


Chiamate esterne

Programma Scopo
COGU60 Scarico dati dal terminalino
COGS54 Utility stampa
C$COPY Copia file (runtime AcuCOBOL)

Copybook utilizzate

Copybook generate da Screens

cogv100.select, cogv100.fd, cogv100.wrk, cogv100.prc, cogv100.decla, cogv100-01.scr

Copybook di libreria

  • cogfiles.cpy -- Definizione file Euro
  • coginvtr.cpy -- Archivio transito inventario
  • flsta.cpy -- File stampa
  • wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy -- Working storage standard
  • cogazien.cpy -- Dati azienda
  • utils54.cpy -- Interfaccia COGS54
  • utilu07.cpy -- Interfaccia COGU07
  • utilu60.cpy -- Interfaccia COGU60
  • utils08.cpy -- Interfaccia COGS08

Linkage

  • wcont.cpy -- Struttura linkage standard
  • wcont1.cpy -- Linkage supplementare

Altre copybook

  • cogmatri.k04 -- Chiave 4 matricole (ricerca per EAN)

Note tecniche

  • Il programma usa PERFORM ... THRU in tre punti (x0-creo-file THRU ex-x0, x1-scarica-dati THRU ex-x1, x2-stampa-err THRU ex-x2) -- una eccezione alla convenzione generale del progetto, dovuta all'eta' del sorgente.
  • L'archivio COGINVTR viene creato automaticamente se non esiste (stato '35' alla open).
  • Il file di input per il tipo "M" ha un formato con codice EAN e quantita'; il tipo "S" usa un file indicizzato con serial number come chiave.
  • L'identificazione dell'articolo tenta piu' strategie in cascata: EAN diretto, raccordo codici, codice merce. Per i codici EAN datati (senza secolo), viene assunto il prefisso "19".
  • Il file input viene eliminato (DELETE FILE) alla chiusura del programma per evitare rielaborazioni accidentali.

Documentazione tecnica -- 2026-04-18