midrange.com code scratchpad
Name:
Basic Wrapper to Call REXX proc and Receive Return Value
Scriptlanguage:
Plain Text
Tabwidth:
4
Date:
11/06/2009 02:49:59 am
IP:
Logged
Description:
This CL uses the QREXX API to call a REXX proc under the *EXECSQL command environment. After that call, the QREXQ API pulls any available value from the REXX external queue.
Code:
  1.  pgm
  2.  
  3.  
  4.     dcl        &Func       *char    1     value( 'P' )
  5.     dcl        &Buff       *char  256
  6.     dcl        &BuffLen    *int           value( 8 )
  7.     dcl        &Flag       *char    2     value( X'0000' )
  8.     dcl        &RtnCde     *char    2     value( X'0000' )
  9.  
  10.     dcl        &x00        *char    2     value( X'0000' )
  11.  
  12.     dcl        &SysExt     *char   22     value( ' ' )
  13.  
  14.     dcl        &PrvDate    *char    8     value( ' ' )
  15.  
  16.  
  17.     chgvar     %sst( &SysExt 21 2 )   &x00
  18.  
  19.  
  20.     /* Start the REXX procedure                                          */
  21.     call       QREXX         ( +
  22.                                'DATECALC  '           +
  23.                                'QREXSRC   mylib     ' +
  24.                                x'00000000'            +
  25.                                '*EXECSQL            ' +
  26.                                &SysExt                +
  27.                                x'0000'                +
  28.                              )
  29.  
  30.    /* +
  31.     strrexprc  srcmbr( DATECALC )                        +
  32.                  srcfile( mylib/QREXSRC )                +
  33.                  parm( *N )                              +
  34.                  cmdenv( *EXECSQL )                        */
  35.  
  36.     /* Pull the result from the REXX data queue                          */
  37.     call       QREXQ         ( +
  38.                                &Func       +
  39.                                &Buff       +
  40.                                &BuffLen    +
  41.                                &Flag       +
  42.                                &RtnCde     +
  43.                              )
  44.  
  45.     chgvar           &PrvDate         &Buff
  46.  
  47.  dmpclpgm
  48.  
  49.     return
  50.  
  51.   endpgm
  52.  
© 2004-2019 by midrange.com generated in 0.005s valid xhtml & css