Vai al contenuto

COGF31 - Composizione Matricole (Produzione a matricole)

Sorgente: cbl/cogf31.cbl | Tipo: Programma interattivo a maschera caratteri con griglia | Program-ID: COGF31

Menu:

  • Magazzino > Produzione > Produzione 2 > Prod. x Matricole > Composizione Matricole

Il programma e' anche richiamabile come sottoprogramma (f31-called = "COGF31-CALLED", copybook utilf31.cpy) ricevendo il lotto dal chiamante.


Scopo

Composizione delle "pre-matricole" di un lotto di produzione gestito a matricole. Dato un lotto (COGLAVOR con cla-tip = "2"), il programma carica le matricole di prodotto finito prenotate del lotto (COGMTPRE) con il dettaglio dei loro componenti (COGMTDET) e le mostra in griglia, una matricola per volta. L'operatore associa a ciascun componente il serial number / la matricola del componente fisico (per lettura barcode/S/N o EAN).

Alla conferma (F3) il programma genera i movimenti di magazzino: prima nota di scarico dei componenti dal magazzino della consegna e prima nota di carico sul magazzino di conto/lavoro (az-mag-cla). Aggiorna gli impegni di distinta base (COGMOVDB tipo "VI"), le giacenze (via COGU12), registra le uscite matricole (COGMTUSC/COGMATRI) e, se tutte le matricole del lotto risultano avanzate, innesca la chiusura del lotto tramite COGF32. Consente inoltre upgrade, sostituzione, aggiunta ed eliminazione di componenti.


Struttura del programma

Flusso principale

  1. Inizializzazione (a000): ctr-abil, gestione chiamata esterna (f31-called), open-files, rd-azi, lettura configurazioni RNEWCONF, costruzione nome file di transito e del file di log, lettura divisa di conto (COGU10). Se il lotto e' di tipo "L" delega a COGF05 e termina.
  2. Apertura (a4): display maschera mm-1 (25x80), titolo "Composizione Matricole", apertura del file di transito tran-f31.
  3. Selezione lotto (a7-ann / a7-num / a7-lotto): richiesta e validazione dell'anno (COGS52) e del numero lotto. F5 = risali dal numero matricola p.f. (a1-cerca-matricola), F7 = verifica. Controlli: lotto esistente, tipo "2", non gia' chiuso, consegna collegata presente. Determina il "primo scarico" cercando il raccordo tipo "LP" su COGGENER.
  4. Orchestrazione (a-20): b-carica (carica matricole), c-elabora (griglia interattiva), e su F3 d-aggiorna.
  5. Chiusura (fine / z-chiudi): z-close-files, chiusura e riapertura del transito, cancel "COGL61", z-99-exit-program.

Caricamento matricole (b-carica, b1-leggi-dettaglio)

Scandisce COGMTPRE per il lotto (chiave secondaria .k02), popola la tabella in memoria tab-matricole (limite k-ele-tab-matricole = 990, PBUG-2052) e, per ciascuna matricola, copia i componenti da COGMTDET nel file di transito tran-f31.

Griglia interattiva (c-elabora / c-10)

Loop per singola matricola. Tasti principali:

Tasto Azione Paragrafo
Invio / barcode Lettura e associazione componente c2-lettura
Tab / Shift-Tab Cambio matricola (salva la tabella) c3-salva-tabella
F1 Aggiungi componente c7-aggiungi
F4 Togli componente c6-togli
F5 Upgrade componente c4-modifica-comp
F7 Sostituzione componente c5-sostituzione
F8 Serial number disponibili WIN068
F3 Conferma / aggiornamento d-aggiorna

In c2-lettura sono gestiti i controlli sul serial number (gia' uscito, gia' assegnato, gia' prenotato in spedizione tramite COGGENER tipo "CM") e il controllo giacenza (x4-ctr-gia).

Aggiornamento (d-aggiorna)

d1-crea-tab-pnota aggiorna COGMTDET e costruisce la tabella prima nota; d2-ins-mag/d21-ins-mag/d3-ins-tes/d31-testata creano le righe e le testate dei movimenti di magazzino (numerazione via COGS25); d5-aggiorna-matricole registra le uscite dei serial number; d62-chiusura-lotto chiude il lotto quando tutte le matricole sono avanzate (delega a COGF32).

File di transito temporaneo

File logico Nome fisico Descrizione
tran-f31 #$COGF31.<operatore> Copia di lavoro dei componenti per matricola durante la sessione (indexed, univoco per operatore)
coglog COGF31.LOG (in ext-sys-dir) Log testuale (line sequential, extend) con ~40 punti di traccia numerati

Il transito e' (ri)creato all'ingresso in a4 con close/open output/close/open i-o (troncato a ogni sessione); se gia' in uso da altro operatore segnala "Funzione gia' in uso". Non viene cancellato con delete file, solo troncato.


Tabelle e file

File logico Accesso Descrizione
FEURTAB Input Tabella nomi file / percorsi di sistema
COGTABEL Input Tabelle di sistema; tipo 57 codr 1 = data consolidato (leggi-consolidato)
COGMERCI Input Anagrafica merci (descrizione, flag s/n, scarico produzione, EAN via .k03)
COGGEANA Input Anagrafica clienti (nome cliente)
COGTESBO I-O Testate bolle delle prime note di magazzino generate
COGMOMAG I-O Righe movimenti magazzino (scarico componenti / carico prodotto finito)
COGMERAP Input Anagrafica merci "AP" (flag giacenza, conto, gruppo/sottogruppo/codice)
COGLAVOR I-O Lotti di lavorazione/produzione (tipo, consegna, ordine, cliente, chiusura) - chiavi secondarie .k03, .k05
COGCONOR I-O Righe consegna ordini (data, merce p.f.)
COGMOVDB I-O Impegni di distinta base, movimenti tipo "VI" (fabbisogno/scarico componenti)
COGMATRI I-O Matricole / serial number (s/n, flag entrata/uscita, merce) - chiave secondaria .k04 per s/n
COGMTUSC I-O Uscite matricole (documento di scarico associato al s/n)
COGGENER I-O Raccordi generici: tipo "LP" lotto -> prima nota, tipo "CM" matricola -> buono prelievo - chiave secondaria .k02
COGMTPRE I-O Testate matricole di produzione (p.f. del lotto) - chiave secondaria .k02 per lotto
COGMTDET I-O Dettaglio composizione matricola (componenti, qta, qta scaricata, matricola componente)
COGMTMOD I-O Log modifiche / upgrade componenti matricola
COGSLMAG Input Saldi / giacenze magazzino (solo controllo giacenza, PCASE-3905)
tran-f31 I-O (temp) Transito componenti per matricola (vedi sopra) - chiavi .k02, .k03
coglog Output/extend Log testuale COGF31.LOG

COPY incluse

Working-Storage

k-u10.cpy, wopenf.cpy, wstato.cpy, wgrave.cpy, wnscr.cpy, utils21.cpy, utils25.cpy, utils50.cpy, utils52.cpy, utils68.cpy, utilu07.cpy, utilu10.cpy, utilu12.cpy, utilu20.cpy, utilw28.cpy, utilw68.cpy, wdisp002.cpy, cogazien.cpy, utils54.cpy, utilncnf.cpy, utilcogl61.cpy

FD copybook

cogfiles.cpy, cnfgprnt.cpy e i .cpy di ciascuna tabella. Il transito tran-f31 (SELECT/FD/COPY inline) e' una tabella temporanea dichiarata manualmente.

Linkage

wcont.cpy, util021.cpy, utilf05.cpy, utilf31.cpy (interfaccia di chiamata: f31-called, f31-lotto), utilf32.cpy, utils10.cpy, wcont1.cpy

Procedure Division

Chiavi .k01/.k0x delle tabelle, tran-f31.k02/.k03, getdcont, stato.cpy, stato1.cpy, winmsg.cpy, open1.cpy, mmmask.cpy, scree, dtab.cpy, tstfun2. Programma standalone (usa mmmask.cpy, z-99-exit-program); non generato da Screen Designer (maschera a caratteri).


CALL a sottoprogrammi

Programma Scopo
COGF05 Gestione lotto di tipo "L" (delega, pagina propria)
COGF32 Chiusura lotto (f32-solo-chiusura-lotto = "S")
RNEWCONF Lettura configurazioni
COGU10 Gestione divisa / cambio / arrotondamento
COGU12 Aggiornamento giacenze / movimenti di magazzino
COGU07 Creazione link matricola padre/figlia
COGU20 Input quantita' editata
COGS52 Input / verifica anno
COGS68 Gestione campo merce / composizione
COGS21 Campo di scelta (X / spazio)
COGS25 Numeratore progressivi documento
COGS10 Richiesta password di sblocco controllo giacenza (PCASE-3905)
WIN068 Finestra serial number disponibili (F8)
COGL61 Calcolo prezzo medio / prezzo acquisto merce (cancellato in chiusura)

Nessun gestore tabella tipo Y* (programma non generato da Screen Designer). La vecchia CALL a READCONF e' commentata/disattivata.


Configurazioni RNEWCONF

Lette in a000 con due blocchi (ncnf-pac-gen = "C"):

Gruppo Chiave Campo Descrizione
PRODUZIONE.CNF PROD2-GG-SOMMA-DATA-GAR-AUTOMATICA tm-cfg-gg-data-gar Giorni da sommare per la data garantita automatica al primo scarico (config letta ma il codice che la applicava e' commentato)
progcogv51 euta-c041-ctr-gia tm-cfg-ctr-gia Modalita' controllo giacenza: "N" nessuno, "B" blocco, altro = avviso (usato in x4-ctr-gia su COGSLMAG)
progcogv51 ctr-gia-sblocco-password tm-cfg-ctr-gia-sblocco-password Se "S", con controllo bloccante chiede password (COGS10) per sbloccare lo scarico oltre giacenza; se "N" blocca senza sblocco

Note tecniche

  • Doppia natura: standalone o richiamato con f31-called = "COGF31-CALLED" (lotto passato dal chiamante).
  • Gestione lotti / matricole / serial number: cuore del programma. Serial number gestiti via COGMATRI (flag entrata/uscita), COGMTUSC (uscite), COGMTPRE/COGMTDET/COGMTMOD (matricole p.f., dettaglio, modifiche). Lettura barcode/S/N/EAN in c2-lettura con controlli su s/n gia' uscito, gia' assegnato, gia' prenotato in spedizione (COGGENER "CM").
  • Controllo giacenza (PCASE-3905, 2024): configurabile bloccante con sblocco via password; l'aggiornamento giacenze e' delegato a COGU12 (il vecchio codice diretto su COGSLMAG e' commentato).
  • Logging estensivo: registra-log/x1-scrivi-log scrivono ~40 punti di traccia numerati su COGF31.LOG.
  • Marcatori *>DOC:: nessuno presente nel sorgente.
  • Personalizzazioni k-personal: nessuna.
  • Dimensione sorgente: circa 4.493 righe (cbl/cogf31.cbl); k-num-files = 16.