COGF32 - Avanzamento Produzione (a matricole)¶
Sorgente: cbl/cogf32.cbl | Tipo: Programma interattivo a maschera caratteri con griglia | Program-ID: COGF32
Menu:
- Magazzino > Produzione > Produzione 2 > Avanzamento
Il programma e' anche richiamabile come sottoprogramma (f32-called = "COGF32-CALLED", copybook utilf32.cpy), ad esempio da COGF31 per la sola chiusura del lotto (f32-solo-chiusura-lotto = "S") o in modalita' batch.
Scopo¶
Avanzamento di produzione di un lotto di lavorazione (COGLAVOR) gestito a matricole (cla-tip = "2") o a lotto (cla-tip = "L"). L'avanzamento avviene matricola per matricola, quando sono pronte (tutti i componenti necessari scaricati). L'operatore seleziona un lotto (per anno/numero, risalendo dal numero matricola con F5, o partendo dalla produzione con F6/COGF76); il programma carica in tabella tutte le matricole del lotto (da COGMTPRE) mostrandone lo stato (Pronta / Evasa / Non pronta / Upgraded) e permette di selezionare quelle pronte (lettura barcode o digitazione del numero matricola) per l'evasione.
Alla conferma (F3) crea le prime note di magazzino di scarico dei componenti dal magazzino conto/lavoro e la p.n. di carico del prodotto finito, crea i record matricola del prodotto finito in COGMATRI agganciati alla p.n. di carico, calcola il costo medio dei componenti e, se tutte le matricole sono evase, chiude il lotto (COGLAVOR fl-cls="C"), chiude gli impegni COGMOVDB tipo "VI" ed eventualmente l'ordine (COGU27); se permane un blocco amministrativo invia una mail al responsabile amministrativo. Puo' stampare etichette matricole (COGF34), etichette componenti (COGF35) e moduli di collaudo (COGF42), e girare in modalita' batch quando richiamato da COGF31.
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
a000):ctr-abil,open-files/open-files-if,rd-azi, gestione parametro di chiamata (f32-called), lettura divisa di conto (COGU10),leggi-consolidatocon blocco se la data sistema e' <= data di consolidato (COGTABEL tipo 57). Se batch salta aa4-after-disp; per aziende "EX" verifica l'archiviazione ottica e imposta la stampante di collaudo. Legge le configurazioni conx99-src-cfg. - Apertura (
a4): display mascheramm-1e titolo "Avanzamento Produzione". - Selezione lotto (
a4-after-disp/a7-ann/a7-num/a7-lotto): richiesta anno (COGS52) e numero lotto; F5 = risali da matricola (a1-cerca-matricola), F6 = inizio produzione (COGF76). Valida su COGLAVOR il tipo lotto ("2" o "L") e lo stato, legge la riga consegna COGCONOR, l'anagrafica cliente COGGEANA, il blocco produzione da COGTORAG e il prodotto finito da COGMERCI. - Orchestrazione (
a-20):b-carica(matricole in tabella), gestione batch di stampa,c-elabora(griglia interattiva) e su F3d-aggiorna. - Chiusura (
fine/z-chiudi): chiusura file, chiusura finestra,cancel "COGL61",z-99-exit-program.
Caricamento matricole (b-carica, b1-controlla-dettaglio)¶
Scandisce COGMTPRE per il lotto (chiave secondaria .k02), carica la tabella in memoria (tm-tab-righe occurs 500), determina lo stato ("E" evasa/entrata su COGMATRI, "P" pronta, "e" evasa non completa) e verifica gli upgrade (COGMTMOD). Una matricola e' "pronta" solo se tutti i componenti in COGMTDET hanno qta-sca >= qta.
Griglia interattiva (c-elabora)¶
Loop di navigazione. Tasti principali: lettura barcode / numero matricola (c2-lettura), F1 selezione stampa, F3 aggiorna, F4 riapri lotto, F5/F7 etichette, F8 seleziona tutti, Shift-F8 ricarica, F9 collaudo.
Aggiornamento (d-aggiorna)¶
d1-crea-tab-pnota costruisce la tabella prima nota; d2-ins-mag/d21-ins-mag inseriscono le righe di magazzino; d3-ins-tes/d31-testata creano le testate bolla (numerazione via COGS25); d32-raccordo crea il raccordo COGGENER tipo "LP"; d4-crea-matricola crea i record COGMATRI del prodotto finito; d5-chiudi-cogmovdb chiude gli impegni tipo "VI"; d6-chiusura-lotto chiude il lotto quando tutte le matricole sono evase.
File temporanei¶
Il programma non usa file di transito dati (COGTRANS o simili): le strutture temporanee sono tabelle in working-storage (tm-tab-righe occurs 500, tab-pnota occurs 200). L'unico file esterno temporaneo e' arc.ini copiato via C$COPY per la configurazione dell'archiviazione ottica.
Tabelle e file¶
| File logico | Accesso | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella file / percorsi di sistema |
| COGTABEL | Input | Tabelle parametriche; tipo 57 codr 1 = data consolidato |
| COGMERCI | Input | Anagrafica merci (prodotto finito, componenti) - chiave secondaria .k03 |
| COGGEANA | Input | Anagrafica generale (cliente) |
| COGTESBO | I-O | Testate bolle / prime note magazzino (create in d31-testata) |
| COGMOMAG | I-O | Righe movimenti magazzino / prime note (create in d21-ins-mag) |
| COGMERAP | Input | Merci per magazzino / parametri (conto, flag giacenza) |
| COGLAVOR | I-O | Lotti di lavorazione / produzione (letto, riaperto, chiuso) - chiavi secondarie .k03, .k05 |
| COGCONOR | Input | Righe di consegna ordine (riga consegna del lotto) |
| COGMOVDB | I-O | Movimenti impegno; chiusura tipo "VI" |
| COGMATRI | I-O | Matricole prodotto finito (verifica esistenza e creazione) - chiave secondaria .k04 per s/n |
| COGGENER | I-O | Raccordi generici; tipo "LP" = raccordo lotto / prima nota |
| COGMTPRE | I-O | Matricole di produzione (testata) - chiave secondaria .k02 per lotto |
| COGMTDET | I-O | Dettaglio componenti delle matricole di produzione |
| COGMTMOD | I-O | Matricole di produzione modificate / upgrade |
| COGTORAG | Input | Testate ordini raggruppamento; blocco produzione / amministrativo |
| PRNTOPER | I-O | Anagrafica operatori collaudo / assemblaggio (file "if", aperto solo se necessario - personalizzazione EX) |
| FLSTA | - | File di stato / stampa standard |
Nessun file dichiarato come tabella temporanea di transito.
COPY incluse¶
Working-Storage¶
Standard: wopenf.cpy, wstato.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy.
Interfacce di call e utility: utilf34.cpy, utilf35.cpy, utilf42.cpy, utilcogf76.cpy, utils25.cpy, utils52.cpy, utils54.cpy, utils68.cpy, utilu10.cpy, utilu12.cpy, utilu27.cpy, wdisp002.cpy, utilwp04.cpy, utilrcnf.cpy, utilncnf.cpy, utilu06.cpy, utilpost.cpy, utilmymail.cpy, utilcogl61.cpy.
FD copybook¶
cogfiles.cpy, cnfgprnt.cpy e i .cpy di ciascuna tabella. La maschera e' costruita a mano come literal testuale (mm-1); il programma non e' generato da Screen Designer.
Linkage¶
wcont.cpy, utilf32.cpy (interfaccia di chiamata: f32-called, f32-lotto, f32-ope, f32-solo-chiusura-lotto), utilf41.cpy, wcont1.cpy
Procedure Division¶
Chiavi .k01/.k02/.k03/.k04/.k05/.k01-agg delle tabelle, stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, open1.cpy, openi.cpy, mmmask.cpy, dtab.cpy, scree, sendwp04.cpy, tstfun2. Programma standalone (usa mmmask.cpy, z-99-exit-program).
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGU10 | Gestione divisa / cambio / arrotondamento |
| COGS52 | Input / verifica anno |
| COGF76 | Inizio produzione (F6) |
| COGS54 | Gestione stampa / spool (indirizzamento stampante) |
| COGF42 | Stampa / archiviazione modulo di collaudo |
| COGU06 | Archiviazione ottica documenti |
| COGF41 | Visualizzazione upgrade matricola |
| COGL61 | Calcolo prezzo di acquisto / PMA / PMV (cancellato in chiusura) |
| COGF34 | Stampa etichetta matricola (tipo "M") |
| COGF35 | Stampa etichetta componenti (tipo "C") |
| COGS25 | Numerazione progressiva bolla / documento |
| COGU12 | Aggiornamento giacenze / saldi magazzino |
| COGU27 | Chiusura ordine (cliente interno, lotto completo) |
| COGS68 | Gestione / lettura codice merce (help articolo) |
| COGWP04 | Help operatori (via sendwp04.cpy) |
| POSTA | Invio email al responsabile amministrativo |
| RNEWCONF | Lettura configurazioni |
| READCONF | Lettura file arc.ini locale (chiave DIRTEMP) |
| C$COPY | Copia file (arc.ini remoto -> locale) |
Nessun gestore tabella tipo Y* (programma non generato da Screen Designer).
Configurazioni RNEWCONF¶
Lette in x99-src-cfg (attivo solo se az-arc-ott = "S" o az-personal = "EX"; altrimenti tm-cfg-arc-presente = "N"). Chiamata RNEWCONF con ncnf-pac-gen = "C", 2 chiavi:
| Gruppo | Chiave | Campo | Descrizione |
|---|---|---|---|
| arc-ott | path-client-faxe2000 | tm-cfg-path-faxe2000 |
Percorso client Faxe2000 per l'archiviazione ottica (path di arc.ini remoto) |
| azienda | email-resp-amministrativo | tm-cfg-email-amm |
Email del responsabile amministrativo, usata in d6 per notificare la chiusura lotto con blocco amministrativo residuo |
Inoltre, via READCONF (non RNEWCONF), legge dal file locale arc.ini la chiave DIRTEMP -> tm-cfg-dir-stampa (poi comunque sovrascritto con ext-tmp-dir).
Note tecniche¶
- Doppia natura: standalone o richiamato con
f32-called = "COGF32-CALLED"(anche solo per la chiusura lotto o in batch da COGF31). - Personalizzazioni aziendali (
az-personal): - "EX": gestione operatori assemblaggio/collaudo (PRNTOPER, campi
tm-ope-ass/tm-ope-col, obbligatorieta' inc3-controlla, aggiornamento COGMTPRE), archiviazione ottica moduli collaudo (COGU06/COGF42), stampante dedicata "collaudo.prn". Richiede archiviazione ottica presente. - "FF" (FERRANTI): in
c2-lettura, all'evasione di una matricola chiamag-assegna-snper assegnare/validare un serial number manuale univoco (verificato in memoria e su COGMATRI chiave.k04). - Lotti / matricole / serial number: distingue lotto tipo "2" (produzione a matricole singole) da tipo "L" (produzione a lotto, tutte le matricole insieme, con flag
fl-lotto-pronto/fl-lotto-evaso/fl-evadi-lotto/fl-sel-tutti). Il s/n della matricola (mtr-sn) e' il numero matricola stesso o l'S/N manuale (FERRANTI). - Consolidato: blocco dell'esecuzione se la data sistema e' <= data di consolidato (COGTABEL tipo 57).
- Aggiornamento giacenze: delegato a COGU12 (il vecchio codice diretto su COGSLMAG e' commentato).
- Marcatori
*>DOC:: nessuno presente nel sorgente. - Stile legacy: uso estensivo di
GO TOePERFORM ... THRU, precedente alle convenzioni attuali del progetto (da tenere presente in caso di refactoring). - Dimensione sorgente: circa 2.827 righe (
cbl/cogf32.cbl).