Hi Justin and Barbara,
So far I could do it this way using the "Command Log" view. Method logExplanation() is the only method for adding messages to the job log, that is public of class QSYSCommandSubsystem. It adds the "noisy" CL comment characters:
/* Result of iRPGUnit Test Case: RPGUNIT/RUPLUGINT3.SRVPGM, served by server job: 717871/QUSER/QZRCSRVS */
/* CPF5C61: Client request - run program &2/&1. */
/* ==> Sending program: *N, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: 13 */
/* ==> Receiving program: QZRCSRVS, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: */
/* CPF5C61: Client request - run program &2/&1. */
/* ==> Sending program: *N, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: 13 */
/* ==> Receiving program: QZRCSRVS, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: */
/* CPF5C61: Client request - run program &2/&1. */
/* ==> Sending program: *N, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: 13 */
/* ==> Receiving program: QZRCSRVS, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: */
/* CPC2206: Ownership of object &2 in &1 type &3 changed. */
/* ==> Cause . . . . . : The ownership of object &2 in library &1 type &3 has changed. */
/* ==> Sending program: *N, Module: *N, Procedure: *N, Statement nbrs.: 023A */
/* ==> Receiving program: QLIINSRT, Module: *N, Procedure: *N, Statement nbrs.: */
/* CPI2121: Replaced object &1 type *&4 was moved to &5. */
/* ==> Cause . . . . . : Replaced object &1 type *&4 from the &2 library was renamed to &3 and moved to the &5 library. Recovery . . . : If the replaced object is needed, you can use the Move Object (MOVOBJ) command to move the object from the &5 library into another library. The QRPLOBJ library is cleared during the next initial program load (IPL) of the system. The QRPLxxxxx library (where 'xxxxx' is the number of a primary auxiliary storage pool (ASP)) is cleared during the next vary on of the ASP device. */
/* ==> Sending program: *N, Module: *N, Procedure: *N, Statement nbrs.: 02D1 */
/* ==> Receiving program: QLIINSRT, Module: *N, Procedure: *N, Statement nbrs.: */
/* CPF1023: Data area &1 exists in &2. */
/* ==> Cause . . . . . : Data area &1 already exists in library &2. Recovery . . . : Either change the data area or the library name (DTAARA parameter) and then try the command again. */
/* ==> Sending program: *N, Module: *N, Procedure: *N, Statement nbrs.: 07DF */
/* ==> Receiving program: RUTESTCASE, Module: SETUP, Procedure: runCmd, Statement nbrs.: */
/* CPF9897: &1 */
/* ==> Cause . . . . . : No additional online help information is available. */
/* ==> Sending program: *N, Module: PGMMSG, Procedure: sndEscapeMsg, Statement nbrs.: 20800 */
/* ==> Receiving program: RUPLUGINT3, Module: RUPLUGINT3, Procedure: testToggleOK_1, Statement nbrs.: */
/* CPC2206: Ownership of object &2 in &1 type &3 changed. */
/* ==> Cause . . . . . : The ownership of object &2 in library &1 type &3 has changed. */
/* ==> Sending program: *N, Module: *N, Procedure: *N, Statement nbrs.: 023A */
/* ==> Receiving program: QLIINSRT, Module: *N, Procedure: *N, Statement nbrs.: */
/* CPI2121: Replaced object &1 type *&4 was moved to &5. */
/* ==> Cause . . . . . : Replaced object &1 type *&4 from the &2 library was renamed to &3 and moved to the &5 library. Recovery . . . : If the replaced object is needed, you can use the Move Object (MOVOBJ) command to move the object from the &5 library into another library. The QRPLOBJ library is cleared during the next initial program load (IPL) of the system. The QRPLxxxxx library (where 'xxxxx' is the number of a primary auxiliary storage pool (ASP)) is cleared during the next vary on of the ASP device. */
/* ==> Sending program: *N, Module: *N, Procedure: *N, Statement nbrs.: 02D1 */
/* ==> Receiving program: QLIINSRT, Module: *N, Procedure: *N, Statement nbrs.: */
/* CPDA0FF: &1 */
/* ==> Sending program: *N, Module: PGMMSG, Procedure: sndCompMsg, Statement nbrs.: 18300 */
/* ==> Receiving program: QZRCSRVS, Module: QZRCRPC, Procedure: CallProgram, Statement nbrs.: */
/* CPF5C61: Client request - run program &2/&1. */
/* ==> Sending program: *N, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: 13 */
/* ==> Receiving program: QZRCSRVS, Module: QZRCRPC, Procedure: LogRpcMessage, Statement nbrs.: */
Last but not least it seems that there is a bug that prevents attribute "sending program name" of object "QueuedMessage" from being filled. Same thing as with "receiving program instruction number".
At least I correctly set the required attributes (hopefully):
jobLog = new JobLog(system, job, user, number);
jobLog.setListDirection(true);
jobLog.clearAttributesToRetrieve();
jobLog.addAttributeToRetrieve(JobLog.MESSAGE);
jobLog.addAttributeToRetrieve(JobLog.MESSAGE_HELP_WITH_REPLACEMENT_DATA);
jobLog.addAttributeToRetrieve(JobLog.SENDING_PROGRAM_NAME);
jobLog.addAttributeToRetrieve(JobLog.SENDING_MODULE_NAME);
jobLog.addAttributeToRetrieve(JobLog.SENDING_PROCEDURE_NAME);
jobLog.addAttributeToRetrieve(JobLog.SENDING_STATEMENT_NUMBERS);
jobLog.addAttributeToRetrieve(JobLog.RECEIVING_PROGRAM_NAME);
jobLog.addAttributeToRetrieve(JobLog.RECEIVING_MODULE_NAME);
jobLog.addAttributeToRetrieve(JobLog.RECEIVING_PROCEDURE_NAME);
jobLog.addAttributeToRetrieve(JobLog.RECEIVING_STATEMENT_NUMBERS);
jobLog.setStartingMessageKey(startingMessageKey);
jobLog.load();
What do you think about that solution?
- Thomas.
-----Ursprüngliche Nachricht-----
Von: WDSCI-L [mailto:wdsci-l-bounces@xxxxxxxxxxxxxxxxxx] Im Auftrag von Justin Taylor
Gesendet: Montag, 25. März 2019 18:10
An: Rational Developer for IBM i / Websphere Development Studio Client for System i & iSeries
Betreff: Re: [WDSCI-L] RPGUnit plugin & runtime errors
I think it would be great if the messages could appear in the Commands Log view. Of course, a joblog spooled file would work perfectly well.
-----Original Message-----
From: Barbara Morris [mailto:bmorris@xxxxxxxxxx]
Sent: Monday, March 25, 2019 9:50 AM
To: wdsci-l@xxxxxxxxxxxxxxxxxx
Subject: Re: [WDSCI-L] RPGUnit plugin & runtime errors
On 2019-03-25 9:19 AM, Thomas Raddatz wrote:
Hi Justin,
Please also suggest a layout for displaying the messages. Getting the messages is easy:
Server job: 357670/QUSER/QZRCSRVS
Job log messages:
#1: CPF5C61 - Client request - run program RPGUNIT/RUPGMRMT.
#2: CPC2206 - Ownership of object RUPROCLIST in QTEMP type USRSPC changed.
#3: CPI2121 - Replaced object RUPROCLIST type *USRSPC was moved to QRPLOBJ.
#4: CPF1023 - Data area RUPLUGINT3 exists in RPGUNIT.
#5: CPF9897 - Toggle flag 2 must be *OFF
#6: CPC2206 - Ownership of object RUMODLIST in QTEMP type USRSPC changed.
#7: CPI2121 - Replaced object RUMODLIST type *USRSPC was moved to QRPLOBJ.
#8: CPDA0FF - FAILURE. 4 test cases, 5 assertions, 1 failure, 0 error.
#9: CPF5C61 - Client request - run program QGY/QGYOLJBL.
Thomas, is it possible to just print the joblog? (DSPJOBLOG OUTPUT(*PRINT)?
I would want to see
- second level text
- from-program and procedure
- to-program and procedure
As an Amazon Associate we earn from qualifying purchases.