Where allowed to run: All environments (*ALL) Threadsafe: No |
Parameters Examples Error messages |
> Scarica file da giornale
http://www.neroni.it/NERONI2/JDWLJRN.NERONI2.HTML
Scarica un file da giornale interpretando il campo dati.
Interfaccia il comando DSPJRN, nativo del sistema, che permette lo scarico da un giornale delle immagini di un file dati.
Purtroppo il tracciato dello scarico prevede un campo dati unico come contenitore dei dati dei record loggati. La lettura di uno scarico risulta quindi di difficile interpretazione.
Il comando JDWLJRN limita lo scarico ad un solo file ma scrive un sorgente estemporaneo dal quale compila un file di emissione ad hoc che, in luogo dell'unico campo dati, contiene in coda al tracciato di scarico tutti i campi del file originale correttamente esposti.
Il nome del file di emissione viene ottenuto dal nome del file dati prefissato con il carattere J per evitare il rischio di ricalcare un file di database.
La libreria eventualmente mancante viene creata. La libreria deve essere diversa dalle normali librerie dati per evitare confusione. Se si crea una libreria personale apposita dedicata a questa funzione, si consiglia che il nome inizi con il prefisso dell'utility JDWLJRN...
Il comando e' quindi una interfaccia verso il comando di sistema DSPJRN del quale riproduce e al quale passa un sottoinsieme di parametri:
1) per limitare la quantita' di record emessi;
2) per leggere eventuali catene di ricevitori interrotte.
Il sottoinsieme di parametri e' stato ritenuto sufficiente ma potra' facilmente essere implementato in caso di necessita' riproducendone altri con lo stesso significato e funzione degli originali di DSPJRN.
Top |
Keyword | Description | Choices | Notes |
---|---|---|---|
FILE | File to download | Qualified object name | Required, Positional 1 |
Qualifier 1: File to download | Name | ||
Qualifier 2: library | Name, *LIBL | ||
JRN | Journal | Single values: *FILE Other values: Qualified object name |
Optional, Positional 2 |
Qualifier 1: Journal | Name | ||
Qualifier 2: library | Name, *LIBL | ||
OUTLIB | Output library | Name, JDWLJRN | Optional, Positional 3 |
FROMTIME | Starting date and time | Element list | Optional, Positional 4 |
Element 1: Starting date | Date | ||
Element 2: Starting time | Time | ||
TOTIME | Ending date and time | Element list | Optional, Positional 5 |
Element 1: Ending date | Date | ||
Element 2: Ending time | Time | ||
RCVRNG | Range of journal receivers | Single values: *CURCHAIN, *CURRENT, *CURAVLCHN Other values: Element list |
Optional, Positional 6 |
Element 1: Starting journal receiver | Qualified object name | ||
Qualifier 1: Starting journal receiver | Name | ||
Qualifier 2: library | Name, *LIBL, *CURLIB | ||
Element 2: Ending journal receiver |
Single values: *CURRENT Other values: Qualified object name |
||
Qualifier 1: Ending journal receiver | Name | ||
Qualifier 2: library | Name, *LIBL, *CURLIB | ||
JOB | Job name | Single values: *ALL Other values: Qualified job name |
Optional, Positional 7 |
Qualifier 1: Job name | Name | ||
Qualifier 2: Job user | Name | ||
Qualifier 3: Job number | 000000-999999 | ||
USRPRF | User | Name, *ALL | Optional, Positional 8 |
PRTCHG | Print change | *NO, *YES | Optional, Positional 9 |
Top |
Nome del file dati del quale si visionano le entrate loggate nel giornale.
Il valore e' obbligatorio.
Valori permessi:
Nome della libreria in cui risiede il file dati.
Valori permessi:
Top |
Nome del giornale contenente le entrate da visionare.
Il valore e' obbligatorio.
Valori permessi:
Nome della libreria in cui risiede il giornale.
Valori permessi:
Valori speciali:
Top |
Nome della libreria nella quale viene posto il file di emissione.
Se la libreria manca, viene creata.
Valori permessi:
Top |
Specifica la data e l'ora della prima voce di giornale da convertire per la rappresentazione esterna.
Elemento 1: Data di inizio
Elemento 2: Ora di inizio
E' possibile specificare l'orario nel formato 24 ore con o senza separatore:
o Senza un separatore dell'ora, specificare una stringa di 4 o 6 cifre (hhmm o hhmmss) dove hh indica le ore, mm i minuti e ss i secondi.
o Con un separatore dell'ora, specificare una stringa di 5 o 8 cifre in cui per separare le ore, i minuti ed i secondi viene utilizzato il separatore specificato per il lavoro. Se si immette questo comando dalla riga comandi, la stringa deve essere racchiusa tra apici. Se viene utilizzato un separatore dell'ora diverso da quello specificato per il lavoro, questo comando avra' esito negativo.
Top |
Specifica la data e l'ora dell'ultima voce di giornale da convertire per la rappresentazione esterna.
Elemento 1: Data di fine
Elemento 2: Ora di fine
E' possibile specificare l'orario nel formato 24 ore con o senza separatore:
o Senza un separatore dell'ora, specificare una stringa di 4 o 6 cifre (hhmm o hhmmss) dove hh indica le ore, mm i minuti e ss i secondi.
o Con un separatore dell'ora, specificare una stringa di 5 o 8 cifre in cui per separare le ore, i minuti ed i secondi viene utilizzato il separatore specificato per il lavoro. Se si immette questo comando dalla riga comandi, la stringa deve essere racchiusa tra apici. Se viene utilizzato un separatore dell'ora diverso da quello specificato per il lavoro, questo comando avra' esito negativo.
Top |
Specifica il ricevitore di giornale iniziale (primo) e quello finale (ultimo) (l'intervallo dei ricevitori) che contengono le voci da convertire per l'emissione. Il sistema si avvia con il ricevitore di giornale iniziale (come specificato dal primo valore) e procede attraverso la catena ricevitori fino all'elaborazione del ricevitore finale (come specificato dall'ultimo valore).
Note: Se viene superato il numero massimo di ricevitori nell'intervallo (2045), si verifica un errore e non viene convertita alcuna voce di giornale.
Valori singoli:
Elemento 1: Ricevitore giornale iniziale
Qualificativo 1: Ricevitore giornale iniziale
Qualificativo 2: Libreria
Elemento 2: Ricevitore giornale finale
Valori singoli:
Qualificativo 1: Ricevitore giornale finale
Qualificativo 2: Libreria
Top |
Specifica che le voci di giornale da convertire per la rappresentazione esterna sono quelle relative ad un lavoro specificato. Per la rappresentazione esterna vengono convertite solo le voci di giornale del lavoro specificato.
Valori singoli:
Altri valori:
Top |
Specifica che le voci di giornale da considerare per la conversione per la rappresentazione esterna si limitano a quelle create per il nome del profilo utente specificato. Il nome utente identifica il profilo utente sotto il quale e' stato eseguito il lavoro che ha registrato le voci di giornale.
Valori permessi:
Valori speciali:
Top |
Esegue una stampa dei record scaricati con l'evidenziazione delle modifiche ai dati.
Valori permessi:
Top |
Esempio 0: Crea ambiente di test
Si riporta il sorgente della stringa "JDWLJRNZ.", presente nei sorgenti del tool e che crea gli oggetti di test. La stringa utilizza a sua volta dallo stesso file il sorgente del file fisico di test "JDWLJRNZT" e il sorgente "JDWLJRNZF" per il RUNSQLSTM di scrittura nel file fisico di test.
//BCHJOB JOB(JDWLJRNZ.) JOBD(NERONI2/NERONI2) + OUTQ(QPRINTS) ENDSEV(60) LOG(4 00 *SECLVL) + INQMSGRPY(*DFT) MSGQ(*USRPRF) CCSID(280) /* Claudio Neroni 26-10-2017 Creato. */ /* JDWLJRNZ. */ /* Download file from journal. Test CrtJs */ /* Scarica file da giornale. Test CrtJS */ /* Prerequisiti: nessuno. */ /* Imposta la lista librerie. */ CHGLIBL LIBL(QTEMP QGPL) ADDLIBLE LIB(NERONI2) POSITION(*AFTER QTEMP) /* Cancella giornale, ricevitori e file. */ ENDJRNPF FILE(*ALL) JRN(NERONI2/JDWLJRNZ) DLTJRN JRN(NERONI2/JDWLJRNZ) DLTJRNRCV JRNRCV(NERONI2/JDWLJRNZ*) DLTF FILE(NERONI2/JDWLJRNZT) /* Crea file. */ CRTPF FILE(NERONI2/JDWLJRNZT) SRCFILE(NERONI2/JDWLJRN) + SIZE(*NOMAX) LVLCHK(*YES) /* Crea ricevitore. */ CRTJRNRCV JRNRCV(NERONI2/JDWLJRNZ01) + TEXT('Download file from journal. Test receiver') /* Crea giornale. */ CRTJRN JRN(NERONI2/JDWLJRNZ) JRNRCV(NERONI2/JDWLJRNZ01) + TEXT('Download file from journal. Test journal') /* Avvia giornale sul file. */ STRJRNPF FILE(NERONI2/JDWLJRNZT) JRN(NERONI2/JDWLJRNZ) + IMAGES(*BOTH) /* Scrive dati nel file sotto giornale. */ RUNSQLSTM SRCFILE(NERONI2/JDWLJRN) SRCMBR(JDWLJRNZF) + COMMIT(*NONE) //ENDBCHJOB
Eseguita la stringa, si ottengono i seguenti tre oggetti in pieno funzionamento.
Oggetto Tipo Attrib Testo JDWLJRNZ01 *JRNRCV Test receiver JDWLJRNZ *JRN Test journal JDWLJRNZT *FILE PF-DTA Test file
Esempio 1: Scarica nel file di emissione il giornale del file di test
Si riportano comandi e log.
> JDWLJRN FILE(JDWLJRNZT) File NERONI2/JDWLJRNZT e' sotto giornale NERONI2/JDWLJRNZ > /**/RUNQRY QRYFILE((JDWLJRN/JJDWLJRNZT)) RCDSLT(*YES)
Si osservi il comando precompilato di invito all'esame del risultato.
Esempio 2: Come l'esempio 1 ma con giornale terminato
Si riportano comandi e log.
> ENDJRNPF FILE(*ALL) JRN(NERONI2/JDWLJRNZ) 1 di 1 file hanno terminato la registrazione su giornale. > JDWLJRN FILE(JDWLJRNZT) File NERONI2/JDWLJRNZT non e' sotto giornale NERONI2/JDWLJRNZ > /**/RUNQRY QRYFILE((JDWLJRN/JJDWLJRNZT)) RCDSLT(*YES)
Si osservi il messaggio che dichiara giornale chiuso.
Top |
Messaggi *INFO e *COMP
Messaggi *DIAG seguiti da *ESCAPE CPF0001
Top |