|
Hello,
Using either the _system function, or QCMDEXC to issue a SBMJOB command from an RPGLE program, can I retreive the job number of the submitted job? If so, what do I need to do?
I agree with David. After the SBMJOB command is processed, it'll send you a CPC1221 completion message. If you retrieve it with the QMHRCVPM API, the first 26 bytes of the message data should contain the job identifier.
Here's a quick example, if it saves you some time:
H DFTACTGRP(*NO)
D QCMDEXC PR ExtPgm('QCMDEXC')
D command 32702a const options(*varsize)
D length 15p 5 const
D igc 3a const options(*nopass)
D QMHRCVPM PR ExtPgm('QMHRCVPM')
D MsgInfo 32767A options(*varsize)
D MsgInfoLen 10I 0 const
D Format 8A const
D StackEntry 10A const
D StackCount 10I 0 const
D MsgType 10A const
D MsgKey 4A const
D WaitTime 10I 0 const
D MsgAction 10A const
D ErrorCode 32767A options(*varsize)
D Msg DS qualified
D BytesRtn 10I 0
D BytesAvail 10I 0
D Severity 10I 0
D Id 7A
D Type 2A
D Key 4A
D 7A
D CCSID_ind 10I 0
D CCSID 10I 0
D Len 10I 0
D Avail 10I 0
D Data 1024A
D ErrorNull ds qualified
D BytesProv 10i 0 inz(0)
D BytesAvail 10i 0 inz(0)
D cmd s 500A varying
D JobName s 10a
D JobUser s 10a
D JobNbr s 6a
D wait s 1a
/free
cmd = 'SBMJOB CMD(CALL SOMEPGM)';
QCMDEXC(cmd: %len(cmd));
QMHRCVPM( Msg
: %size(Msg)
: 'RCVM0100'
: '*'
: 0
: '*LAST'
: *blanks
: 0
: '*SAME'
: ErrorNull );
if (Msg.Id<>'CPC1221' or Msg.Avail<26);
// TODO: Report error message properly instead of DSPLY
// (This isn't supposed to happen!)
dsply 'HELP!' '' wait;
return;
endif;
JobName = %subst(Msg.Data: 1: 10);
JobUser = %subst(Msg.Data:11: 10);
JobNbr = %subst(Msg.Data:21: 6);
// TODO: Do whatever needs to be done with these fields,
// instead of just displaying them...
dsply ('job ' +JobName+ ' User ' +JobUser+ ' Nbr ' +jobNbr)
'' wait;
*inlr = *on;
/end-free
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.