COGQ37 - Visualizzazione/Gestione Stampi¶
Scopo¶
Visualizzazione, manutenzione e selezione dell'anagrafica stampi/tamponi della produzione di stampaggio. Gestisce in una griglia paginata gli stampi associati a un articolo (chiave merce), e mantiene allineati i record collegati (COGSTAMP, COGMERLK come "lk" di tipo "ST", COGRACMC per il codice avanzato). E' richiamato sia come funzione di menu sia come selezione stampo dal lancio produzione (CALL con util-cogq37).
Menu¶
Magazzino > Produzione > Stampaggio > Gestione Stampi
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Parametri | Parametri di ambiente |
| COGTABEL | Indicizzato | Tabella generica (registrazione log inserimento merci, tipo 10) |
| COGMERCI | Indicizzato I/O | Anagrafica merci (codice articolo e merce stampo creata automaticamente) |
| COGGEANA | Indicizzato Input | Anagrafica generale (clienti/fornitori associati allo stampo) |
| COGRACMC | Indicizzato I/O | Codici avanzati merce; usata via chiave secondaria cogracmc.k02 |
| COGMERLK | Indicizzato I/O | Legami merce/merce (tipo "ST" = stampo per la merce di chiave) |
| COGSTAMP | Indicizzato I/O | Anagrafica stampi (dati di gestione) |
| TRAN-S26 | Sequenziale is external |
File di transito per la creazione automatica prime note di scarico stampi rottamati |
Copybook¶
File e select¶
feurtab.fd,cogq37.select,cogq37.fd,cogfiles.cpy,tran-s26.fd,tran-s26.cpy
Working-storage¶
cogq37.wrk(generata da Screens)wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpywgrid.cpy,utilgdad.cpy- Utility:
utilcogq42.cpy,utilcogqa3.cpy,utils05.cpy,utils26.cpy,utils35.cpy,utils37.cpy,utils52.cpy,utils65.cpy,utils68.cpy,utilw77.cpy,utilncnf.cpy,utilpost.cpy,utilmymail.cpy
Screen¶
cogq37-01.scr(form con frame chiave merce, frame dettaglio, griglia)
Linkage¶
wcont.cpy,wcont1.cpy,utilcogq37.cpy(parametri di chiamata in/out)
Procedure¶
cogq37.decla,cogq37.prcgrave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy,msgmerce.cpydtab.cpy,fscrol2.cpy,utilpggr.cpy,sendw77.cpy- Chiavi secondarie:
cogracmc.k02,tran-s26.k01
CALL¶
| Programma | Descrizione |
|---|---|
| GRIDADMN | Gestione griglia |
| COGS05 | Calcolo EAN della merce in inserimento |
| COGS26 | Creazione prima nota da file di transito (scarico stampo rottamato) |
| COGS35, COGS36, COGS37 | Inizializzazione record collegati alla nuova merce (parametri merce, ecc.) |
| COGS68 | Aiuto/cattura chiave merce |
| COGW77 | Aiuto codice avanzato stampo (sendw77.cpy) |
| COGQ42 | Apertura gestione manutenzioni stampo (richiamata con F7) |
| RNEWCONF | Lettura indirizzi e-mail destinatari notifica rottamazione (gruppo ECOMMERCE, chiave EMAIL-ROTTAMAZIONE-STAMPO) |
| POSTA | Invio e-mail di notifica rottamazione |
Parametri di chiamata (util-cogq37)¶
Campi chiave passati dal chiamante:
- cogq37-caller, cogq37-called — identificazione del flusso
- cogq37-in-mer-chia — merce su cui aprire la griglia
- cogq37-modalita — "S" selezione, "A" aggiornamento (default A)
- cogq37-sel-attivi, cogq37-sel-non-attivi, cogq37-sel-manut, cogq37-sel-non-appr — filtri di stato ammessi
- cogq37-coglavor — riferimento lotto/commessa, abilita la selezione su stampi gia' assegnati alla stessa commessa
- cogq37-out-merce — output: codice merce dello stampo selezionato
- cogq37-sel-cat — vincolo opzionale di tipologia coerente con altri stampi gia' in macchina
Logica di elaborazione¶
- Inizializzazione (
apri): - Apertura file, lettura azienda, generazione nome file di transito S26 (
tmp + program-id + operatore + data + ora). - Lettura configurazione e-mail destinatari rottamazione tramite
RNEWCONF(5 chiaviEMAIL-ROTTAMAZIONE-STAMPO). - Lettura parametri di chiamata e set della modalita' (S/A).
- Selezione articolo (
a-tm-mer-chia,a-fine-chiave): - Accept della chiave merce (gruppo/sottogruppo/codice) con aiuto via COGS68.
- Validazione
x-controlla-tm-mer-chia(letturacogmerci). - In modalita' "called" il blocco e' precompilato e bypassato.
- Caricamento griglia paginata (
a-grid-ini,carica-tab, paragrafirn-*/rp-*/sn-*/sp-*/rd*): - Usa lo schema di paginazione fornito da
fscrol2.cpy/utilpggr.cpyper leggere a blocchi su COGMERLK conmlk-tip = "ST", mlk-merce1 = tm-mer-chia. - Per ogni elemento
rd1-ft-gorileggecogstampe popolatm-ele (i). - Le righe vengono caricate nella griglia con
GRIDADMN "Add-Record". - Ciclo griglia (
a-grid): - Pag su/Pag giu: paginazione (
pg-after-pg-up/dwn). - Shift+F4: amministrazione griglia.
- Invio in modalita' A: modifica completa (
a-tipo-modifica = "Totale"). - F3 in modalita' S (chiamato): modifica parziale (
a-tipo-modifica = "Parziale"). - Invio in modalita' S: selezione dello stampo, valutazione
evaluate tm-r-stato (i)contro i flagcogq37-sel-*. Restituiscecogq37-out-merceal chiamante e termina. - Ctrl+A: inserimento (
a-operazione = "I"). - Ctrl+E: cancellazione (
c-cancella). - F7: chiamata a COGQ42 per le manutenzioni dello stampo corrente.
- Modifica/Inserimento riga (
a-riga-dettaglio-> serie dia-tm-r-*): - 14 campi di dettaglio: codice stampo, tipo, tipologia, n. impronte, stato, proprieta', anagrafica tip/cod, data rilascio, data rottamazione, ubicazione, battute manut/parz/tot.
- Ciascun accept salta al successivo o precedente (F2) e converge in
a-fine-dettaglio. - I controlli sono in
x-controlla-tm-r-*, riassunti dax-conferma-dettaglio. - Conferma dettaglio (
a-fine-dettaglio): - Se la merce e' nulla (nuovo stampo non ancora collegato):
inserisci-mercecrea la merce nel gruppo/sottogruppo predefinito (presi dalla merce 99/99/99999 di template), assegna codice progressivo conx11-src-cod, scrivecogmerci, registra nel log COGTABEL (tipo 10), inizializza tramite COGS35/COGS36/COGS37, scrive il codice avanzato in COGRACMC. - Se la merce esiste e l'utente cambia il codice avanzato: aggiorna
cogracmc(delete + write) verificando unicita'. agg-stamp: aggiorna i campi dello stampo su COGSTAMP. Se lo stato passa a "R" (rottamato) ed e' diverso dal precedente, invocam-invia-messaggioem-scarico-stampo.- Aggiornamento del link COGMERLK (
wr-orwr-). - Rottamazione stampo (
m-scarico-stampo): - Apre il file di transito
tran-s26in i-o. - Scrive un record con
trs-s26-merce = stm-merce, trs-s26-qta = 1, trs-s26-segno = "U". - Chiama COGS26 con magazzino "T" (stampi) e
s26-ope = "Inserimento", ottenendo un documento di scarico. - Notifica rottamazione (
m-invia-messaggio): - Costruisce un messaggio con codice stampo, data attivazione, tipologia.
- Invia tramite POSTA + utilmymail agli indirizzi configurati (fino a 10), modalita' invio automatico.
- Uscita (
fine,z-chiudi): - Chiude i file, elimina il file di transito S26, esce con
goback.
Stati stampo¶
Codifica tm-r-stato (campo stm-stato su COGSTAMP):
| Cod | Significato | Selezionabile per produzione |
|---|---|---|
| A | Attivo | si (se sel-attivi = "S" e lotto compatibile) |
| C | Collaudo manutenzione | si (criterio uguale ad "A") |
| I | In costruzione | no |
| P | Non approvato | si (se sel-non-appr = "S") |
| N | Non attivo | si (se sel-non-attivi = "S") |
| M | In manutenzione | si (se sel-manut = "S") |
| R | Rottamato | no (triggera notifica e scarico) |
Struttura dati in memoria¶
tab-maschera:
tm-dati:
tm-mer-chia (gru/sot/cod)
tm-cod-ava codice avanzato proposto in inserimento
tm-ele-sav buffer 1000 byte per rollback
tm-righe occurs 100:
tm-r-merce (chia) chiave merce stampo (gruppo/sotto/cod)
tm-r-stampo codice avanzato
tm-r-tipo S/T
tm-r-tipologia + des
tm-r-num-impronte
tm-r-stato + tm-r-stato-prec (per rilevare passaggi a "R")
tm-r-proprieta
tm-r-ana (tip/cod) + tm-r-ana-nome
tm-r-data-rilascio, tm-r-data-rott
tm-r-ubicazione
tm-r-batt-manut/parz/tot
tm-r-fl-prod (cla-anno/cla-numero) legame con commessa
Note tecniche¶
- La griglia e' paginata (max 100 elementi in memoria, paginazione con Pag su/Pag giu) tramite copybook
fscrol2.cpyeutilpggr.cpy. - Il file di transito
tran-s26ha attributois external: viene aperto e chiuso piu' volte all'interno dim-scarico-stampoper garantire un file vuoto prima di scrivere il record di scarico. - Le notifiche di rottamazione richiedono che siano configurate le chiavi
ECOMMERCE / EMAIL-ROTTAMAZIONE-STAMPO(1..5) in RNEWCONF. - All'inserimento di una nuova merce stampo viene letta una merce template (
999999999): se manca, il programma blocca l'inserimento. - Storicamente lo stato "I" (in costruzione) era selezionabile per la produzione; il codice e' commentato e disabilitato dal 12/03/2019.
- L'uscita usa
goback(nonexit program), coerente con il pattern del programma chiamato e standalone.