COGV14 - Inserimento Entrate Fornitori (programma di lancio)¶
Sorgente: cbl/cogv14.cbl | Tipo: Programma di lancio (dispatcher) | Program-ID: COGV14
Menu:
- Magazzino > Entrate > Inserimento
- Magazzino > Entrate > Inserimento > Inserimento
- Contanti > Entrate > Manuali > Inserimento
Scopo¶
COGV14 non gestisce direttamente l'inserimento delle entrate merci da fornitore: e' un programma di lancio (dispatcher) che, in base alla configurazione RNEWCONF, decide quale variante effettiva del programma di inserimento entrate richiamare. Il commento di testata lo dichiara esplicitamente: "Inserimento entrate fornitori (programma di lancio)".
Il dispatch avviene su due assi:
- Versione dell'interfaccia: se la configurazione
versione-programmi-entvale"GRAFICA"lancia la versione GUI COGV14W, altrimenti la versione a caratteri COGV14C. - Taglio lamiere (personalizzazione): se la configurazione
taglio-lamierevale"S", prima del lancio propone una DIALOGS con la scelta del tipo di entrata (Materie prime / Profilati / Altre merci) e per le prime due opzioni instrada verso i moduli dedicati TGL110 (materie prime) e TGL111 (profilati).
Struttura del programma¶
Flusso principale (main / apro / ela-00)¶
apro: rileva il numero di argomenti conC$NARG. Con 1 argomento inizializzalink-w-u30; con 2 argomenti copia illink-u30ricevuto inlink-w-u30. Eseguez-99-init-program, legge l'azienda (rd-azi) e carica le due chiavi RNEWCONF (pacchetto "C") intm-cfg.ela-00:- Se
tm-cfg-taglio-lamiere = "S", costruisce e chiama la DIALOGS con i tasti F5/F6/F7. Su F5 chiama TGL110 ed esce; su F6 chiama TGL111 ed esce; su F7 (Altre merci) prosegue con il flusso standard. - Sceglie il nome del programma da lanciare (
COGV14Wse versione grafica, altrimentiCOGV14C) e lo memorizza inw-nome-programma. - Propagazione contesto COGU30: se il chiamante e'
COGU30e il chiamato coincide conCOGV14(u30b-caller = "COGU30"eu30b-called = k-program-id), lancia il programma passando anchelink-w-u30; altrimenti lo lancia con la solastringhe. fine/z-chiudi: se il programma era stato chiamato con 2 argomenti, ricopialink-w-u30inlink-u30per restituire il contesto al chiamante, poiz-99-exit-programedexit program.
Tabelle e file¶
Il programma non apre file dati: si limita a leggere l'azienda tramite rd-azi (routine dal copybook mmmask.cpy che opera su feurtab) e a leggere le configurazioni via RNEWCONF. Tutta la gestione dati e' delegata al programma effettivamente lanciato.
COPY incluse¶
Working-Storage¶
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utildlg.cpy (DIALOGS), utilncnf.cpy (RNEWCONF), utiltgl110.cpy (interfaccia TGL110), utiltgl111.cpy (interfaccia TGL111), linku30.cpy (con replacing per la variante di lavoro link-w-u30)
Linkage¶
wcont.cpy, utilu30b.cpy (contesto chiamata COGU30 con u30b-caller / u30b-called), wcont1.cpy, linku30.cpy
Procedure Division¶
stato.cpy, stato1.cpy, winmsg.cpy, util1.cpy
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| C$NARG | Routine di sistema: numero di argomenti passati al programma |
| RNEWCONF | Lettura configurazioni |
| DIALOGS | Dialog di scelta tipo entrata (solo con taglio-lamiere = "S") |
| TGL110 | Inserimento entrate materie prime (personalizzazione taglio lamiere) |
| TGL111 | Inserimento entrate profilati (personalizzazione taglio lamiere) |
| COGV14W | Inserimento entrate fornitori - versione grafica (GUI) |
| COGV14C | Inserimento entrate fornitori - versione a caratteri |
Configurazioni RNEWCONF¶
Lette in apro (pacchetto "C", 2 chiavi):
| Gruppo | Chiave | Destinazione | Descrizione |
|---|---|---|---|
| entrate | versione-programmi-ent | tm-cfg-versione |
"GRAFICA" → lancia COGV14W (GUI); altrimenti COGV14C (caratteri) |
| abilita | taglio-lamiere | tm-cfg-taglio-lamiere |
"S" → abilita la scelta tipo entrata con dispatch verso TGL110/TGL111 |
Note tecniche¶
- E' un puro dispatcher: non contiene logica di inserimento merci; il titolo di menu ("Inserimento") differisce dalla funzione reale del sorgente, che e' la selezione/lancio del programma di inserimento appropriato.
- La variante grafica/caratteri viene decisa a runtime da configurazione: la stessa voce di menu puo' quindi aprire due interfacce diverse a seconda dell'ambiente.
- Il ramo "taglio lamiere" e' una personalizzazione specifica (moduli
TGL*) e non e' visibile agli altri profili aziendali. - La propagazione di
link-u30verso il programma lanciato serve a mantenere la continuita' del contesto quando l'entrata viene richiamata dall'interno del flusso COGU30.