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)¶
- Chiama COGU60 per il download dal terminalino
- Il tipo di input determina il formato:
M(terminalino diretto): filearchivio.datnella cartella temporaneaS(mobile wireless): file indicizzatomwseq.{operatore}(caller COGG62)
Elaborazione file input (x1-scarica-dati)¶
Per ogni record letto dal file input:
- Identifica l'articolo:
- Ricerca per codice EAN a 13 cifre nella tabella matricole (COGMATRI k04)
- Se non trovato, ricerca nel raccordo codici merce (COGRACMC)
- Se non trovato, interpreta come codice merce diretto
- Se l'articolo e' identificato:
- Cerca se esiste gia' un record in COGINVTR per merce+magazzino
- Se esiste: somma la quantita'
- Se non esiste: crea un nuovo record
- 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 Eurocoginvtr.cpy-- Archivio transito inventarioflsta.cpy-- File stampawstato.cpy,wopenf.cpy,wgrave.cpy,wnscr.cpy-- Working storage standardcogazien.cpy-- Dati aziendautils54.cpy-- Interfaccia COGS54utilu07.cpy-- Interfaccia COGU07utilu60.cpy-- Interfaccia COGU60utils08.cpy-- Interfaccia COGS08
Linkage¶
wcont.cpy-- Struttura linkage standardwcont1.cpy-- Linkage supplementare
Altre copybook¶
cogmatri.k04-- Chiave 4 matricole (ricerca per EAN)
Note tecniche¶
- Il programma usa
PERFORM ... THRUin 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