COGQ50 - Simulazione Lancio di Produzione
Panoramica
Programma interattivo character-mode (maschera disegnata con box grafici inline, non da Screens) per la simulazione del lancio di un lotto di produzione su ciclo di lavorazione. Raccoglie i parametri (magazzino, articolo/disegno, quantita', tipo elaborazione, priorita', prima fase, date inizio/fine), valida i dati e delega la simulazione vera e propria a COGQ60. Non gestisce griglia paginata; tutta l'elaborazione avviene nel sottoprogramma chiamato.
Tipo: Programma interattivo character-mode (maschera hardcoded in working-storage).
| Menu |
Percorso |
| Magazzino |
Produzione > Cicli di Lavorazione > Operativo > Simulazione Lancio di Produzione |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| FEURTAB (cogfiles) |
Input |
Tabella parametri generali |
| COGMERCI |
Input |
Anagrafica merci (verifica esistenza articolo) |
| COGMAGA2 (cogmagaz) |
Input |
Anagrafica magazzini (verifica magazzino) |
| CLCTABEL |
Input |
Tabella cicli lavorazione (legge data consuntivo: tipo=0, cod=0) |
| CLCLAVOR |
Input |
Lavorazioni del ciclo (decodifica fase per visualizzazione) |
| CLCDISEG |
Input |
Disegni/cicli (ricerca per articolo e per disegno) |
Copybook principali
| Copybook |
Descrizione |
| feurtab.fd |
SELECT FEURTAB |
| cogmerci.fd |
SELECT COGMERCI |
| cogmaga2.fd |
SELECT COGMAGA2 |
| clctabel.fd |
SELECT CLCTABEL |
| clclavor.fd |
SELECT CLCLAVOR |
| clcdiseg.fd |
SELECT CLCDISEG |
| cogfiles.cpy |
Record FEURTAB |
| cogmerci.cpy |
Record COGMERCI |
| cogmaga2.cpy |
Record COGMAGA2 |
| clctabel.cpy |
Record CLCTABEL |
| clclavor.cpy |
Record CLCLAVOR |
| clcdiseg.cpy |
Record CLCDISEG |
| wstato.cpy |
Stato operazioni |
| wopenf.cpy |
Apertura file |
| wgrave.cpy |
Errori gravi |
| wnscr.cpy |
Gestione schermata |
| cogazien.cpy |
Dati azienda |
| utils22.cpy |
Utility ricerca merce S22 (COGS22) |
| utils52.cpy |
Utility date (COGS52) |
| utils60.cpy |
Utility selezione opzioni (COGS60) |
| utilq24.cpy |
Utility ricerca disegno (COGQ24) |
| utilq60.cpy |
Utility interfaccia COGQ60 (simulazione) |
| utilqs1.cpy |
Utility calendario macchine (COGQS1) |
| utilw36.cpy |
Utility ricerca magazzino (W36) |
| wcont.cpy / wcont1.cpy |
Area comunicazione chiamante |
Variabili principali della maschera (tab-maschera)
| Campo |
Tipo |
Descrizione |
| tm-mag |
X(01) |
Codice magazzino (spazio = tutti) |
| tm-merce |
X(09) |
Codice articolo (gru+sot+cod) |
| tm-mer-des |
X(30) |
Descrizione articolo (display) |
| tm-disegno |
X(10) |
Codice disegno |
| tm-qta |
9(07) |
Quantita' da produrre |
| tm-prima-fase |
9(04) |
Prima fase del ciclo da eseguire |
| tm-tip-ela |
X(01) |
Tipo elaborazione: "A"=Automatica, "M"=Manuale |
| tm-priorita |
X(01) |
Priorita': "!"=Altissima, "A"=Alta, "M"=Media, "B"=Bassa |
| tm-data-ini |
9(08) |
Data inizio pianificazione |
| tm-data-fin |
9(08) |
Data consegna richiesta |
| tm-data-cns |
9(08) |
Data ultimo aggiornamento consuntivo (da CLCTABEL tipo=0) |
Tabelle opzioni (per COGS60)
| Tabella |
Opzioni |
| tab-opt-tip-ela |
"A01Automatica", "M01Manuale" |
| tab-opt-priorita |
"!02Altissima", "A01Alta", "M01Media", "B01Bassa" |
Struttura name-files e name-files-q
Due strutture per passare i nomi dei file a COGQ60:
- name-files (k-num-files=2): file con estensione 002 e 004
- name-files-q (k-num-files-q=3): file con estensioni 001, 002, 006
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| COGS22 |
Ricerca merce (campo articolo) |
| COGQ24 |
Ricerca disegno (F8 sul campo disegno) |
| COGS60 |
Selezione opzioni da lista (tipo elaborazione, priorita') |
| COGS52 |
Input data con calendario (date inizio e consegna) |
| COGQS1 |
Verifica calendario lavorativo macchine per la data inserita |
| COGQ60 |
Motore di simulazione lancio produzione (elaborazione principale) |
Flusso di elaborazione
1. Inizializzazione (screen-0)
ctr-abil per abilitazione
open-files + open-files-cl (apertura separata file cicli)
rd-azi
- Caricamento maschera hardcoded (
mm-1 -> main-mask, dimensioni 11x77, posizione 7,2)
- a4: reinizializza tab-maschera; imposta default (data da
datasis, magazzino az-main-mag, qs1-opn='!')
- Legge CLCTABEL tipo=0, cod=0 per
tm-data-cns
- a-05 (magazzino): accept
tm-mag; F8 -> send-w36; se spazio -> "Tutti i magazzini"; altrimenti legge COGMAGA2
- a-10 (articolo): chiama COGS22; se vuoto va ad a-15; altrimenti legge COGMERCI
- a-15 (disegno): accept
tm-disegno; F8 -> send-q24; se vuoto -> errore; cerca in CLCDISEG per disegno (chia2); se trovato -> legge COGMERCI per merce base
- a-15-disp: cerca CLCDISEG per merce (chia primaria) -> carica
tm-disegno
- a-20 (quantita'): accept
tm-qta; F5 -> a1-prima-fase; valida > 0
- a-30 (tipo elaborazione): COGS60 con 2 opzioni (Automatica/Manuale)
- a-40 (priorita'): COGS60 con 4 opzioni
- a-50 (data inizio): COGS52; verifica
tm-data-ini > tm-data-cns (altrimenti errore); chiama COGQS1 per verifica giorno lavorativo; se ore = 0 -> "giorno non lavorativo"; copia tm-data-ini in tm-data-fin
- a-55 (data consegna): COGS52; verifica
tm-data-ini <= tm-data-fin
3. Conferma e simulazione (a-90 -> COGQ60)
acc-conf per conferma finale
- Inizializza
util-q60, popola tutti i campi, chiama COGQ60
cancel 'COGQ60'
- Va a
fine
4. Selezione prima fase (a1-prima-fase)
- Popup schermata
screen-1 (6x55, posizione 13,10)
- Accept del numero di fase
- Valida esistenza in CLCDISEG tramite
rd-clcdiseg-chia2 (disegno + numero + fase=0 + mac=spaces)
- Se trovata: legge CLCLAVOR per descrizione; mostra fase e descrizione
- Su F3: salva in
tm-prima-fase; chiude popup
5. Chiusura (fine)
close-files
z-99-exit-program
Note tecniche
- La maschera e' hardcoded in working-storage (01 mm-1) con box grafici DOS, non usa Screens/screen section.
- COGQS1 e' richiamato con qs1-opn='!' la prima volta (inizializzazione calendario); le chiamate successive usano 'A' o 'B' a seconda dello stato
qs1-opn.
- Il file CLCDISEG ha due accessi: per merce base (chiave primaria: base+num+fase+mac) e per disegno (chiave secondaria chia2: disegno+num+fase+mac).
- La costante
k-program-id = "COGQ50" e' usata per prog-err e w-nome-hlp.
- Tutto il calcolo di simulazione (occupazione macchine, date fase per fase) e' eseguito in COGQ60; COGQ50 e' solo un front-end di raccolta parametri.