Job is active? (JACT)

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

Cmd JACT Job is active? > Il lavoro e' attivo?

JACT Restituisce una variabile attivo/non attivo.

Cmd JACTI Job is active? > Il lavoro e' attivo?

JACTI Restituisce un messaggio informativo attivo/non attivo.

Cerca sul sistema la presenza di un lavoro attivo col nome richiesto, non importa con che numero e di quale utente.

La ricerca avviene intercettando la stampa di un WRKACTJOB "Work with active jobs".

La funzionalita' del presente tool e' coperta e ampliata da JWAJQ e JWAJQI "Work active jobs query" basati sul tool JWAJ "Work active jobs outfile". che, per elencare i lavori attivi, si vale a sua volta non di una stampa ma della API di sistema QGYOLJOB "Open List of Jobs".

Il tool corrente e' pero' particolarmrnte semplice e sufficientemente veloce e puo' essere preferito a JWAJ dove non si voglia impattare con la complessita' della chiamata alla API QGYOLJOB.

Top

Parameters

Keyword Description Choices Notes
JOBNAM Job name Name Required, Positional 1
ACTIVE Active *YES/*NO 4 Character value Required, Positional 2
REFPGM Reference program for messages Name, *CPP Optional, Positional 3
Top

Job name (JOBNAM) > Nome lavoro

Nome da cercare tra i lavori attivi del sistema.

Il valore e' obbligatorio.

Valori permessi:

nome-lavoro
Nome del lavoro.
Top

Active *YES/*NO 4 (ACTIVE) > Attivo

Parametro obbligatorio restituito in una variabile di 4 caratteri.

Il valori restituiti possono essere:

*YES Il lavoro e' attivo sul sistema.
*NO  Il lavoro NON e' attivo sul sistema.

Se il parametro in input viene impostato a:

*MSG Ritorna messaggio.

restituisce non solo la risposta *YES/*NO ma anche uno dei seguenti messaggi informativi:

JAC0191
Il lavoro &1 e' ATTIVO
JAC0192
Il lavoro &1 NON e' attivo
Top

Reference program for messages (REFPGM) > Programma riferimento messaggi

Nei tool complessi a piu' livelli, il presente parametro compare in tutti i comandi di interfaccia dal primo all'ultimo dei chiamati in cascata e permette di condividere il programma di riferimento al cui chiamante verranno spediti i messaggi emessi da tutti i tool coinvolti.

Il programma di riferimento e' il command processing program del tool di cappello che, direttamente o indirettamente, chiama tutti gli altri. Il cappello, dopo aver riempito con il proprio nome il parametro "programma di riferimento", lo passa anche ai tool chiamati che lo utilizzano per spedire i propri messaggi.

Valori permessi:

nome-di-un-programma-in-lista-di-chiamata
Il nome di un programma presente nella lista di chiamata del lavoro corrente.

I messaggi emessi dal programma corrente saranno indirizzati al chiamante del programma di riferimento, preferibilmete un video comandi.

Utile quando il comando corrente e' chiamato da un altro comando con il quale condivide il presente parametro.

Valori speciali:

*CPP
Il valore *CPP viene sostituito con il nome del programma corrente.

I comandi da questo chiamati (e che prevedono lo stesso parametro) faranno riferimento al programma corrente e i messaggi emessi da tali programmi saranno indirizzati al chiamante del programma corrente.

Utile quando il comando corrente e' il primo chiamante da un video comandi e a sua volta chiama altri tool condividendo il presente parametro.

*PRV
Il valore *PRV viene sostituito con il nome del programma chiamante del programma corrente.

ATTENZIONE: Il valore *PRV e' previsto solo in qualche comando di ultimo livello allo scopo di renderne comoda la chiamata in un contesto non strutturato come detto sopra. Per sapere se uno specifico comando utilizza il valore *PRV, consultare l'elenco dei valori permessi premendo F4 sul parametro REFPGM.

Top

Esempi d'uso

Esempio 1: Esamina lavori con il comando JACT

Si abbia il seguente sorgente JACTT1, presente anche tra i sorgenti del tool.

PGM        PARM(&JOBNAM)
DCL        VAR(&JOBNAM) TYPE(*CHAR) LEN(10)
DCL        VAR(&ACTIVE) TYPE(*CHAR) LEN(4)
JACT       JOBNAM(&JOBNAM) ACTIVE(&ACTIVE)
SNDPGMMSG  MSGID(JAC0091) MSGF(NERONI2/JACT) +
             MSGDTA(&ACTIVE)
ENDPGM

Si chiama il programma di test che simula l'uso del comando JACT e si ottiene il seguente log.

> CALL PGM(NERONI2/JACTT1) PARM(N1NERO)
  La variabile ACTIVE contiene "*YES"
> CALL PGM(NERONI2/JACTT1) PARM(MANCA)
  La variabile ACTIVE contiene "*NO"

Si osservi il contenuto della variabile di ritorno ACTIVE, evidenziato dall'apposito messaggio di servizio.

Esempio 2: Esamina lavori con il comando JACTI

Si chiama il comando JACTI e si ottiene il seguente log.

> JACTI JOBNAM(N1NERO)
  Il lavoro N1NERO e' ATTIVO
> JACTI JOBNAM(MANCA)
  Il lavoro MANCA NON e' attivo

I messaggi di risposta rispecchiano lo stato dei lavori indagati.

Esempio 3: Esamina lavori con il programma JACTC

Il command processing program JACTC eseguito dai comandi JACT e JACTI e' costruito in modo da permettere anche la chiamata mediante call, in specie da un rpgle. La documentazione della call viene inserita qui perche' la posizione e' intuitiva e mnemonica.

Il programma JACTC e' presente anche in QGPL per permetterne la chiamata anche senza NERONI2 in lista librerie.

Prima variante: ritorna la variabile ma nessun messaggio.

Il programma di esempio chiamata documenta in log il valore della variabile.

Si abbia il seguente sorgente JACTCT1, presente anche tra i sorgenti del tool.

      * Legge il proprio nome programma.
     D PSDS           sds
     D  PGM                  334    343
      * Prenota chiusura.
     C        seton                    lr
      * Riceve i parametri da passare.
     C *entry plist
     C        parm           JOBNAM
JACT C* Esempio di chiamata di "Job is active?".
JACT C        call 'JACTC'               Job is active?
JACT C        parm           JOBNAM 10   I Job name
JACT C        parm           ACTIVE  4   I *MSG / O *YES-*NO
      * Segnala il risultato.
     C        call 'JMSG2'               Send info msg
     C        parm 'JAC0091' JMSGI   7   I Msg identification
     C        parm 'JACT'    JMSGF  10   I Msg file
     C        parm  ACTIVE   JMSGD 512   I Msg data
     C        parm PGM       JMSGR  10   I Reference program

Si chiama il programma JACTCT1 e si ottiene il seguente log.

> CALL PGM(NERONI2/JACTCT1) PARM(N1NERO)
  La variabile ACTIVE contiene "*YES"
> CALL PGM(NERONI2/JACTCT1) PARM(MANCA)
  La variabile ACTIVE contiene "*NO"

Si osservi il contenuto della variabile di ritorno ACTIVE, evidenziato dall'apposito messaggio di servizio.

Esempio 4: Esamina lavori con il programma JACTC

Variante dell'esempio 3: ritorna la variabile e un messaggio di esito congruente con il contenuto della variabile.

Il programma di esempio chiamata documenta in log il valore della variabile.

Si abbia il seguente sorgente JACTCT2, presente anche tra i sorgenti del tool. I programmi JACTCT1 e JACTCT2 differiscono tra loro solo per le istruzioni evidenziate in entrambi.

      * Legge il proprio nome programma.
     D PSDS           sds
     D  PGM                  334    343
      * Prenota chiusura.
     C        seton                    lr
      * Riceve i parametri da passare.
     C *entry plist
     C        parm           JOBNAM
JACT C* Esempio di chiamata di "Job is active?".
JACT C        call 'JACTC'               Job is active?
JACT C        parm           JOBNAM 10   I Job name
JACT C        parm '*MSG'    ACTIVE  4   I *MSG / O *YES-*NO
JACT C        parm PGM       REFPGM 10   I Reference program
      * Segnala il risultato.
     C        call 'JMSG2'               Send info msg
     C        parm 'JAC0091' JMSGI   7   I Msg identification
     C        parm 'JACT'    JMSGF  10   I Msg file
     C        parm  ACTIVE   JMSGD 512   I Msg data
     C        parm PGM       JMSGR  10   I Reference program

Si chiama il programma JACTCT2 e si ottiene il seguente log.

> CALL PGM(NERONI2/JACTCT2) PARM(N1NERO)
  Il lavoro N1NERO e' ATTIVO
  La variabile ACTIVE contiene "*YES"
> CALL PGM(NERONI2/JACTCT2) PARM(MANCA)
  Il lavoro MANCA NON e' attivo
  La variabile ACTIVE contiene "*NO"

I messaggi di risposta rispecchiano lo stato dei lavori indagati. Si osservi il contenuto della variabile di ritorno ACTIVE, evidenziato dall'apposito messaggio di servizio.

Top

Messaggi informativi e di completamento

Messaggi *INFO e *COMP

JAC0091
La variabile ACTIVE contiene "&1"
JAC0191
Il lavoro &1 e' ATTIVO
JAC0192
Il lavoro &1 NON e' attivo

Messaggi di errore

Messaggi *DIAG seguiti da *ESCAPE CPF0001

Nessun messaggio specifico previsto.

Top