Linked to Massimo Duca‘s post Reading spoolfile with SQL I point out a simple technique that allows you to discover the infos of the last spoolfile generated.
The operating system provides us with the QSPRILSP API: just one single line of code to have all the spoolfile informations. Then combining the two techniques (find the spool and process it with SQL) it is possible to transform / improve the output of our programs with a few simple steps.
Index
Below an example of how to call up the API with variables that contain the spool data highlighted
* API declaration dgetLastSpoolId pr extpgm('QSPRILSP') d ReceiverVariable… d 1 options(*varsize) d ReceiverVariableLength… d 10i 0 const d FormatName 8 const d errorCode likeds(QUSEC) * local variables d wait s 1 * /copy declarations for spoolfile info ds and errors handling /copy qsysinc/qrpglesrc,qsprilsp /copy qsysinc/qrpglesrc,qusec * errors initialization QUSBPrv = 0; monitor; * search for last spoolfile getLastSpoolId(QSPL0100 :%size(QSPL0100) :'SPRL0100' :QUSEC); on-error;clear QSPSN03;
clear QSPJN00;
clear QSPUN00;
clear QSPJNBR00;
clear QSPSNBR03;
endmon; * display last spoolfile data dsply ('Job ' + %trimr(QSPJN00) + '/' + %trimr(QSPUN00) + '/' + QSPJNBR00); dsply ('Last spoolfile name ' + QSPSN03); dsply ('Last spoolfile number ' + %char(QSPSNBR03)) ' ' Wait; *inlr = *on; return;
The monitor instruction has been inserted to be able to manage the eventuality that the job has not generated spool.
If instead of displaying (dsply) the search result we pass it to a module or service program that reads the spool and transforms it, it’s done. Furthermore, if the code of this example is transformed into a component with I/O parameters, it can be reused many times.
For more information, the official IBM documentation is available (https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_74/apis/QSPRILSP.htm)
Early April saw the release of the "Spring Version" of ACS Access Client Solution, version 1.1.9.5 Interesting new features especially…
If the packed agenda of sessions at Common Europe Congress 2024, June 3-6 Milan, wasn't enough for you, here's another…
Debugging functions with Visual Studio Code have been available for some time but this new version 2.10.0 simplifies the handling…
Two and a half years after my post Transferring objects with ObjectConnect and Enterprise Extender, I finally got around to…
With a little trick even a simple SELECT statement can execute any system command! Let's see how to do that...
A mini-serial guide to configuring, managing, using, and troubleshooting the IBM i NetServer