Jose Santana wrote:
I have an RPG program that makes a call to a command from an CMS application to checkout some objects under certain circumstances. My RPG program monitors for any errors on the call to the checkout
command in the event that an object cannot be checked out for some
reason beyond its control. However, when I try to capture the error
I'm only getting the "program CHECKOUT ended Abnormally" message that's issued by the called command but it is not capturing the
preceding CPF2469 escape message. This escape message then causes the main program MYPGM to crash. Here's a snippet of my code:

<code>
c monitor
c call 'QCMDEXC'
c parm CmdStr
c parm CmdLen
c endif
c dow 1=1
c callp ReceiveMsg(Msg0200
c : %size(Msg0200)
c : 'RCVM0200'
c : '*'
c : 0
c : '*LAST'
c : *blanks
c : 1
c : '*REMOVE'
c : ApiError)
c* ReceiveMsg makes a call to the QMHRCVPM
c if Msg0200.BytesAvail = 0
c Leave
c endif
c callp LogMessage
c enddo
c endmon
</code>

Can anyone please shed some light as to what I might be missing.
Aren't all messages thown by the QCMDEXC call supposed to be captured
by the calling program's Monitor /End-mon block? Any help is greatly
appreciated.

Since it would be silly to use QCMDEXC to CALL CHECKOUT [i.e. as a program, just call it from the RPG program], I infer that instead of "Program CHECKOUT" failed, the error was CPF0001 indicating "Command CHECKOUT ended abnormally."? If the actual CmdStr were given, that would have been clearer.

I believe CPF24xx are /message handler/ errors. Thus I believe the error CPF2469 is either with the ReceiveMsg API call or LogMessage call; i.e. QCMDEXC is already out of the picture by then. In that case, that message would not be the preceding message, because instead, it follows the received message.

Regards, Chuck

This thread ...


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

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