PreviousNext
Help > API Functions > Commands & System values > i5_cmd
i5_cmd

 

Executes I5 command.

 

   resource i5_cmd (string command [, resource connection])

 

 

Parameters

 

command

String; Command to execute

connection

Connection ID(optional)

 

 

Return

True if OK, false if failed.

 

I5_ERR_PHP_HDLDFT

256

No default connection found.

I5_ERR_PHP_HDLCONN

257

This resource has no connection active.

I5_ERR_PHP_RESOURCE_BAD

261

No resource found.

I5_ERR_PHP_TYPEPARAM

262

Type of element x in parameter -1 must be y.

Type z was provided.

I5_ERR_PHP_TYPEPARAM

262

Type of element x in parameter -1 must be y.

Type z was provided.

I5_ERR_PHP_NBPARAM_BAD

263

Wrong parameter count

 

 

Detail

 

It could be a command with or without parameters, in this case it's better to use i5_remotecmd for performance as well as for error management.

Syntax is similar to a CL command, variables names with "&" in front.

Example: $ret = i5_cmd("RTVJOBA USER(&USR)");

More than 20 characters variable or with type other than CHAR must be declared in CHAR(len) or DEC(len dec). All declarations separated with semicolon ";".

Example: $ret = i5_cmd("LIBL=CHAR(2750);DFTWAIT=DEC(7 0);RTVJOBA USRLIBL(&LIBL)");

 

Further to i5_cmd call, output variables can be fetched with i5_cmdget function (one at a time).

 

Warning! If, with a correct syntax execution fails, the function does not create error but update a special variable called RC.

This variable contains CPF code in case of fault, and 0 in case of success.

It is always necessary to check every time that the RC variable is null before fetching the command proper variables.

 

 

Examples

 Example 1 : RTVJOBA command.

 

 

/* Connection to AS400 */

$conn = i5_connect("MY_AS", "USER", "PASSWORD");

 

 

/* Executes the command on AS400 */

$ret = i5_cmd("user=char(10);usrlib=char(275);syslib=char(165);curl=char(10);rtvjoba user(&user) usrlibl(&usrlib) syslibl(&syslib) curlib(&curl)");

 

if ($ret)

{

 

    $RC = i5_cmdget("RC");

    if ($RC == 0)

    {

        $util = i5_cmdget("user", $conn);

        $bibl = i5_cmdget("usrlib", $conn);

        $sysb = i5_cmdget("syslib", $conn);

        $curl = i5_cmdget("curl", $conn);

 

        print "User: ". $util."<br>" ;

        print "User libraries list: ". $bibl . "<br>" ;

        print "System libraries list: ". $sysb."<br>" ;

        print "Current library: " . $curl . "<br>" ;

    }

    else

    {

        print_r("i5_cmdget error : ".i5_errormsg().'<br/>');

    }

}

else

{

                   print_r("i5_cmd error : ".i5_errormsg().'<br/>');

}

 

 

 Example 2 : RTVSYSVAL command.

 

/* Executes the command on I5 */

$ret = i5_cmd("NB=CHAR(20); RTVSYSVAL SYSVAL(QSRLNBR) RTNVAR(&NB)");

 

if ($ret)

{

    $RC = i5_cmdget("RC");

    if ($RC==0)

    {

 

                    /* Retrieves the executed command concerned variable */

                    $num = i5_cmdget("NB");

                    echo "Serial number is ". $num ."<BR>";

    }

      else

    {                                            

                   print_r("i5_cmdget error : ".i5_errormsg().'<br/>');

       }

  }

  else

  {

                   print_r("i5_cmd error : ".i5_errormsg().'<br/>');

  }

 

 

 

See also

i5_cmdget

i5_remotecmd