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 comewo-parametro(operazione) al programma chiamato; - Programma grafico? (
tm-fl-grafico,S/N): seN, 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¶
apri- inizializzazione programma, apertura file, lettura azienda (rd-azi). Determina il chiamante conC$CALLEDBY(w-prg-chiamante): se e'LANCIO/LANCIO.COBusa la maschera standard (rd-msk-standard), altrimenti la maschera pop-up (rd-msk-pop).a4- inizializzatab-maschera, forzatm-fl-grafico = "N"(riga190121) e copiawo-parametrointm-param.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*).a-richiesta-conferma(F3) - esegue tutti i controlli (x-imposta-conferma); se OK etm-nome-prgvalorizzato:- se non grafico, apre la finestra di appoggio;
- imposta
wo-parametro = tm-param; - 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(setm-fl-arg = "S", il contenuto aggiuntivo viene copiato inuser-area);
- con linkage aggiuntivo:
- su
on overflow(programma inesistente) mostram-prog-non-esistentee ripristina la maschera; - dopo il ritorno, ripristina
wo-parametro, eseguecancel tm-nome-prge chiude la finestra di appoggio. 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 diw-linkageetm-arg-agg-val. - Usa
go toper il dispatch dei campi e dei tasti funzione, tipico dei programmi a maschera con navigazione bidirezionale.
Documentazione tecnica -- creata 2026-08-07