× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



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.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.