Vai al contenuto

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

  1. Inizializzazione (a000): ctr-abil, open-files/open-files-if, rd-azi, gestione parametro di chiamata (f32-called), lettura divisa di conto (COGU10), leggi-consolidato con blocco se la data sistema e' <= data di consolidato (COGTABEL tipo 57). Se batch salta a a4-after-disp; per aziende "EX" verifica l'archiviazione ottica e imposta la stampante di collaudo. Legge le configurazioni con x99-src-cfg.
  2. Apertura (a4): display maschera mm-1 e titolo "Avanzamento Produzione".
  3. 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.
  4. Orchestrazione (a-20): b-carica (matricole in tabella), gestione batch di stampa, c-elabora (griglia interattiva) e su F3 d-aggiorna.
  5. 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' in c3-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 chiama g-assegna-sn per 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 TO e PERFORM ... THRU, precedente alle convenzioni attuali del progetto (da tenere presente in caso di refactoring).
  • Dimensione sorgente: circa 2.827 righe (cbl/cogf32.cbl).