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¶
- 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. - Apertura (
a4): display mascheramm-1(25x80), titolo "Composizione Matricole", apertura del file di transitotran-f31. - 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. - Orchestrazione (
a-20):b-carica(carica matricole),c-elabora(griglia interattiva), e su F3d-aggiorna. - 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-letturacon 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-logscrivono ~40 punti di traccia numerati suCOGF31.LOG. - Marcatori
*>DOC:: nessuno presente nel sorgente. - Personalizzazioni
k-personal: nessuna. - Dimensione sorgente: circa 4.493 righe (
cbl/cogf31.cbl);k-num-files = 16.