Execute System Command (QCMDEXC)

From MidrangeWiki
Jump to: navigation, search

Summary

For more information on this API, visit Execute Command (QCMDEXC) API (right-click to open link in a new tab).

Prototype for the QCMDEXC API

DQCMDEXC          PR                  EXTPGM('QCMDEXC')             
D prCmdStr                   32767A   CONST                         
D prCmdLen                      15P 5 CONST                         

An RPG/LE fully free-form alternative (by Dave Clark):

//=============================================================================
// IBM API to Execute a System Command
//
// EXAMPLE:
// Monitor;
//   VarStr = 'DLYJOB DLY(15)';
//   CallP IBMAPI_ExecSysCmd(VarStr: %len(VarStr));
// On-Error *All;
//   Reset ApiErrC;                 // trap API errors
//   CallP IBMAPI_SendPgmMsg( EXCP_MSGID: 'QCPFMSG   *LIBL'
//                          : EXCP_DATA: %len(EXCP_DATA)
//                          : '*ESCAPE': '*': 0: msgkey: ApiErrC );
//   If (ApiErrC.BytAvail > *zero); // if an error occurred
//     Return *Off;                 // indicate another error
//   EndIf;
// EndMon;
//
// DOCUMENTATION:
// https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/apis/qcmdexc.htm
//=============================================================================
dcl-pr IBMAPI_ExecSysCmd extpgm('QCMDEXC');
  pCmdStr                char(32702)  const  options(*varsize);
  pCmdLen                packed(15:5) const;
  pCmdIGC                char(3)      const  options(*nopass);
end-pr;

References