Tuesday, August 25, 2020

How to run CL commands in RPGLE (Using QCMDEXC)?


CL (Control Language) has always been (and continue to be) the best choice for the programs which require more interaction with the Operating System. 

However, We do see many cases where there is a need to run these commands from other HLL programs (like. RPGLE). And, it's not always best to write a CL Program to serve this purpose. 

QCMDEXC (Execute Command) API becomes very useful in this case. 

This API Requires two Input parameters.
  • Command String - Character field with Variable length (maximum length of 32,702 characters).
  • Length Of Command String - Decimal field with 15 digits (5 decimal places). 
Here is a sample code with a simple 'DSPMSG' command. 


  Dcl-PR ExecuteCommand ExtPgm('QCMDEXC') ;

    Command Char(128) ;

    Length Packed(15 : 5) ;


  Dcl-S Command Char(128) ; //Maximum length allowed is 32,702

  Dcl-S Length Packed(15 : 5) ;

  Command = 'DSPMSG' ;

  Length = %Len(%Trim(Command)); // Length of the Command being executed

  ExecuteCommand(Command : Length) ;

  *InLr = *On ; 

No comments:

Post a Comment

How to Iterate Over a List and Get Indexes with 'enumerate' Function in Python

'enumerate' function There are different ways of accessing the data from a list like using range and then index or accessing the ele...