Retrieve caller (JCALLER)

Where allowed to run:
  • Batch program (*BPGM)
  • Interactive program (*IPGM)
Threadsafe: No
Parameters
Examples
Error messages

Cmd JCALLER Retrieve caller > Recupera chiamante

https://www.neroni.it/NERONI2/JCALLER.NERONI2.HTML

Recupera il nome del programma nonno (chiamante del chiamante) o del programma padre (chiamante).

Cmd JCALLERI Interact Retrieve caller > Recupera chiamante interattivo

https://www.neroni.it/NERONI2/JCALLERI.NERONI2.HTML

Al solo scopo di verificare interattivamente il command processing program in comune con il comando JCALLER, non richiede la variabile di ritorno e, in luogo di quella, restituisce un messaggio informativo in log.

Il recupero del solo nome programma avviene in questo tool tramite uno scambio messaggi. Il tool JRTVSTK, invece, tramite l'apposita API, recupera sia il nome che la libreria del programma.

Top

Parameters

Keyword Description Choices Notes
CALLER Caller Program name . . . . 10 Character value Required, Positional 1
KINSHIP Kinship father/grandfather *GRANDFATHER, *FATHER Optional, Positional 2
Top

Caller program name 10 (CALLER) > Nome programma chiamante

Variabile di ritorno di tipo carattere adatta a contenere il nome del programma nonno (chiamante del chiamante) o del programma padre (chiamante).

Valori permessi:

Variabile di 10 caratteri.
La variabile e' obbligatoria.
Top

Kinship father/grandfather (KINSHIP) > Parentela padre/nonno

Relazione di parentela richiesta rispetto al programma esecutore del comando corrente.

Valori permessi:

*GRANDFATHER
Richiede il nome del programma nonno (chiamante del chiamante del comando corrente).
*FATHER
Richiede il nome del programma padre (chiamante del comando corrente).

In un RPG il nome del programma e' reperibile all'interno del programma stesso tramite la lettura della program status data structure. L'espediente non e' invece disponibile all'interno di un CL. Non volendo cablare un nome che potrebbe cambiare per copiatura distratta del sorgente originale o per ridenominazione dell'oggetto compilato, il valore *FATHER all'interno del presente parametro permette anche ad un CL di conoscere il proprio nome.

Top

Esempi d'uso del comando JCALLER Retrieve caller

Esempio 1: Restituisce nella variabile &CALLER il nome del programma nonno (chiamante del chiamante)

Con i soli parametri necessari:
   JCALLER CALLER(&CALLER)
Anche con i parametri di default:
   JCALLER CALLER(&CALLER) KINSHIP(*GRANDFATHER)

Permette di conoscere il nome del programma che ha chiamato il programma esecutore del comando JCALLER.

Esempio 2: Restituisce nella variabile &CALLER il nome del programma padre (chiamante)

Con tutti i parametri, tutti necessari:
   JCALLER CALLER(&CALLER) KINSHIP(*FATHER)

Permette di conoscere il nome del programma esecutore del comando JCALLER.

Esempio 3: Test di JCALLERI

Si compili il seguente CLLE con il nome "JCALLERT1":

PGM
JCALLERI KINSHIP(*GRANDFATHER)
ENDPGM

Sul video comandi QCMD si prema F10 per avere il massimo dettaglio del log che mostra i messaggi presenti a piu' basso livello. Si presenta la scritta: "Tutti i comandi e messaggi precedenti:". Si eseguano quindi i seguenti comandi:

> CHGJOB LOGCLPGM(*NO)
> CALL PGM(JCALLERT1)
  Chiamato da JCALLERT1 a sua volta chiamato da QCMD

Si osservi infine il messaggio informativo rilasciato dal comando JCALLERI.

Top

Messaggi del comando JCALLER Retrieve caller

Messaggi di rilascio nel comando

Messaggi di rilascio

Messaggi informativi

Messaggi di completamento

Messaggi di stato

Messaggi diagnostici seguiti da rilascio

Messaggi diagnostici NON seguiti da rilascio

JCA0191
Errore imprevisto nel comando JCALLER
Top