×

Good News Everybody!

The new search engine is LIVE!

Please report any problems to david (at) midrange.com.




On Tue, 2014-10-14 at 10:56 +0200, Jan Grove Vejlstrup wrote:
Hello

I use QMHSNDPM in a serviceprogram to generate an escape-message. The
subprocedure is:

P MSG_reportError...
P B EXPORT
D PI
D p0Msg 256a varying const
D options(*varsize:*nopass:*omit)

D my_errno s 10I 0 based(p_my_errno)

D MsgKey S 4A
D MsgID s 7A
D MsgDta s 256a varying

/free

if %parms>=1 and %addr(p0Msg)<>*null;
MsgId = 'CPF9897';
MsgDta = p0Msg;
else;
p_my_errno = sys_errno();
MsgID = 'CPE' + %editc( %dec(my_errno:4:0) : 'X' );
%len(MsgDta) = 0;
endif;

QMHSNDPM( MsgID
: 'QCPFMSG *LIBL'
: MsgDta
: %len(MsgDta)
: '*ESCAPE'
: '*'
: 3
: MsgKey
: dsEC
);

/end-free
P MSG_reportError...
P E

I have a little testprogram that makes an unlink of a file, that doesn't
exist. This results in error CPE3025. I call MSG-reportError without
parameter. If this is an interactive job, the testprogram ends and the
messagetext corresponding to CPE3025 is shown, just that I want.

If I submit the testprogram, this program just stops without any message
or joblog in QEZJOBLOG. In the systemlog I see only the start and the
end of the testprogram. I want the submitted job to get in MSGW with a
message, that something went wrong.

How can I change my subprocedure so that both goals are achieved?

I may be reading this wrong, but it will only stop on a msgw if there is
a program that is higher in the call stack than where the message is
sent and if that program does not handle it.

If the message is sent to a position that is beyond the initial caller
then the job ends.

Eg Pgm1>Pgm2>pgm3
*escape (stack) 3 = All programs end.
*escape (stack) 2 = Pgm1 gets message, if not handled/monitored
(depending on program type and how it handles non monitored messaged)
issues generic msgw type message.

On an interactive session, there is in effect a "program 0" and
depending on that "program" (menu, program, etc.) it may or may not
display the escape message.

To make the batch job work in the same way, either a dummy program
should be introduced to call pgm1 or the escape should be sent to pgm1.


Thank you very much in advance.

Best regards

Jan




This thread ...

Replies:

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

This mailing list archive is Copyright 1997-2026 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.