Vai al contenuto

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:

  1. Versione dell'interfaccia: se la configurazione versione-programmi-ent vale "GRAFICA" lancia la versione GUI COGV14W, altrimenti la versione a caratteri COGV14C.
  2. Taglio lamiere (personalizzazione): se la configurazione taglio-lamiere vale "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)

  1. apro: rileva il numero di argomenti con C$NARG. Con 1 argomento inizializza link-w-u30; con 2 argomenti copia il link-u30 ricevuto in link-w-u30. Esegue z-99-init-program, legge l'azienda (rd-azi) e carica le due chiavi RNEWCONF (pacchetto "C") in tm-cfg.
  2. ela-00:
  3. 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.
  4. Sceglie il nome del programma da lanciare (COGV14W se versione grafica, altrimenti COGV14C) e lo memorizza in w-nome-programma.
  5. Propagazione contesto COGU30: se il chiamante e' COGU30 e il chiamato coincide con COGV14 (u30b-caller = "COGU30" e u30b-called = k-program-id), lancia il programma passando anche link-w-u30; altrimenti lo lancia con la sola stringhe.
  6. fine / z-chiudi: se il programma era stato chiamato con 2 argomenti, ricopia link-w-u30 in link-u30 per restituire il contesto al chiamante, poi z-99-exit-program ed exit 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-u30 verso il programma lanciato serve a mantenere la continuita' del contesto quando l'entrata viene richiamata dall'interno del flusso COGU30.