Ultimo spoolfile creato

Riagganciandomi al post di Massimo Duca Leggere spoolfile con SQL segnalo una tecnica semplice che permette di scoprire i dati dell’ultimo spoolfile generato.

Il sistema operativo ci mette a disposizione l’API QSPRILSP: basta una sola istruzione per avere tutte le informazioni e combinando le due tecniche (trovare lo spool ed elaborarlo con SQL) è possibile trasformare/migliorare l’output dei nostri programmi con pochi semplici passi.

Index

Esempio

Qui di seguito un esempio di come richiamare l’API con indicazione delle variabili che contengono i dati dello spool

  * dichiarazione API e relativi parametri                           
 dgetLastSpoolId   pr                  extpgm('QSPRILSP')            
 d ReceiverVariable…                                               
 d                                1    options(*varsize)             
 d ReceiverVariableLength…                                         
 d                               10i 0 const                         
 d FormatName                     8    const                         
 d errorCode                           likeds(QUSEC)                 
  * variabili locali                                                 
 d wait            s              1                                  
 
  * /copy dichiarazioni ds info per spoolfile e gestione errori      
  /copy qsysinc/qrpglesrc,qsprilsp                                   
  /copy qsysinc/qrpglesrc,qusec                                      
 
 * inizializzazione dati errori                                     
   QUSBPrv = 0;                                                      

   monitor;                                                          
 * ricerca ultimo spoolfile                                         
     getLastSpoolId(QSPL0100 :%size(QSPL0100) :'SPRL0100' :QUSEC);   
   on-error;                                                          
     clear QSPSN03;                                            
     clear QSPJN00;                                            
     clear QSPUN00;                                            
     clear QSPJNBR00;                                          
     clear QSPSNBR03;                                         
    endmon;                                                    
  * visualizzazione dati ultimo spool                         
    dsply ('Lavoro ' + %trimr(QSPJN00) + '/' +                 
         %trimr(QSPUN00) + '/' + QSPJNBR00);              
    dsply ('Nome ultimo spoolfile ' + QSPSN03);                
    dsply ('Numero ultimo spoolfile ' + %char(QSPSNBR03)) ' ' Wait;   
    
    *inlr = *on;                                               
    return;                                                     

L’istruzione monitor è stata inserita per poter gestire l’eventualità che il job non abbia generato spool.

Se al posto di visualizzare (dsply) il risultato della ricerca lo si passa ad un componente che legge lo spool e lo trasforma il gioco è fatto. Inoltre se il codice di questo esempio lo si trasforma in un componente con parametri di I/O lo si può riutilizzare tante tante volte.

Riferimenti

Per ulteriori informazioni è disponibile la documentazione ufficiale IBM (https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/apis/QSPRILSP.htm)

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

Recent Posts

SQL: SELECT con i “superpoteri”

Con un piccolo trucco anche una semplice istruzione SELECT può eseguire qualsiasi comando di sistema ! Vediamo come...

5 mesi ago

NetServer per tutti – parte 5

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago

NetServer per tutti – parte 4

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago

NetServer per tutti – parte 3

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago

NetServer per tutti – parte 2

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago

NetServer per tutti – parte 1

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago