Vai al contenuto

CALLGEN - Innesco programma generalizzato (lanciatore universale)

Intestazione

Campo Valore
Programma CALLGEN
Sorgente cbl/callgen.cbl (661 righe)
Titolo Gestione Coge: Innesco programma generalizzato
Tipo Interattivo (GUI, screen callgen-01.scr)
Modulo Sistema
Posizione menu Sistema > Utility > Programmi Sistema

Scopo

CALLGEN e' un lanciatore universale: raccoglie da maschera il nome di un programma COBOL e i suoi parametri, poi lo esegue dinamicamente tramite CALL a nome variabile. E' lo strumento con cui un tecnico puo' avviare un qualsiasi modulo del gestionale (o un programma di manutenzione/diagnostica) senza che questo abbia una voce di menu dedicata.

L'operatore compila i seguenti campi (tab-maschera):

  • Programma (tm-nome-prg, obbligatorio): nome del modulo da eseguire;
  • Parametro (tm-param): valore passato come wo-parametro (operazione) al programma chiamato;
  • Programma grafico? (tm-fl-grafico, S/N): se N, CALLGEN apre una finestra di appoggio a carattere (set-win-appoggio) prima di chiamare il programma;
  • Linkage aggiuntivo? (tm-fl-arg): abilita il passaggio di un'area dati aggiuntiva;
  • Contenuto (tm-arg-agg-val) e dimensione (tm-arg-agg-siz, 1..1000) del linkage aggiuntivo.

Logica di elaborazione

  1. apri - inizializzazione programma, apertura file, lettura azienda (rd-azi). Determina il chiamante con C$CALLEDBY (w-prg-chiamante): se e' LANCIO/LANCIO.COB usa la maschera standard (rd-msk-standard), altrimenti la maschera pop-up (rd-msk-pop).
  2. a4 - inizializza tab-maschera, forza tm-fl-grafico = "N" (riga 190121) e copia wo-parametro in tm-param.
  3. a-tm-nome-prg ... a-tm-arg-agg-val - sequenza di accept dei campi, con gestione tasti funzione (F2 indietro, F3 conferma, ESC uscita), spostamento con mouse (x-test-mouse) e controlli di campo. I campi del linkage aggiuntivo sono abilitati/disabilitati dinamicamente (x-enabled-tm-arg-agg*).
  4. a-richiesta-conferma (F3) - esegue tutti i controlli (x-imposta-conferma); se OK e tm-nome-prg valorizzato:
  5. se non grafico, apre la finestra di appoggio;
  6. imposta wo-parametro = tm-param;
  7. esegue il programma:
    • con linkage aggiuntivo: call tm-nome-prg using stringhe tm-arg-agg-val(1:tm-arg-agg-siz) w-linkage;
    • senza: call tm-nome-prg using stringhe w-linkage (se tm-fl-arg = "S", il contenuto aggiuntivo viene copiato in user-area);
  8. su on overflow (programma inesistente) mostra m-prog-non-esistente e ripristina la maschera;
  9. dopo il ritorno, ripristina wo-parametro, esegue cancel tm-nome-prg e chiude la finestra di appoggio.
  10. fine/z-chiudi - chiusura file e finestra, exit program.

File e tabelle acceduti

CALLGEN non elabora dati di business: apre la sola catena file standard (feurtab + copybook di sistema). Tutta l'attivita' su tabelle avviene nel programma chiamato.

Aree passate al programma chiamato:

Area Origine Note
stringhe linkage (wcont.cpy) area comune standard; contiene wo-parametro = tm-param
w-linkage pic x(1000) area di linkage generica sempre passata
tm-arg-agg-val (1:tm-arg-agg-siz) maschera area aggiuntiva, solo se linkage aggiuntivo abilitato
user-area (w-user-area) working valorizzata con tm-arg-agg-val se tm-fl-arg = "S" senza area aggiuntiva

Chiamate / COPY rilevanti

Programma Scopo
<tm-nome-prg> Programma indicato dall'operatore, eseguito dinamicamente con CALL a nome variabile
C$CALLEDBY Routine di sistema AcuCOBOL: individua il programma chiamante (per scegliere la maschera)

COPY notevoli: callgen.select, callgen.fd, callgen.wrk, callgen-01.scr, callgen.prc, mmmask.cpy (init/exit programma standalone), cogazien.cpy (area azienda).


Note

  • E' uno strumento tecnico/diagnostico: consente di lanciare qualsiasi modulo passandogli parametro e linkage arbitrari; per questo e' collocato in "Programmi Sistema".
  • La finestra di appoggio a carattere serve ai programmi non grafici (tm-fl-grafico = "N"), che si aspettano un contesto video testuale; per i programmi GUI non viene aperta.
  • La dimensione del linkage aggiuntivo e' limitata a 1000 byte (x-controlla-tm-arg-agg-siz): coerente con l'ampiezza di w-linkage e tm-arg-agg-val.
  • Usa go to per il dispatch dei campi e dei tasti funzione, tipico dei programmi a maschera con navigazione bidirezionale.

Documentazione tecnica -- creata 2026-08-07