| 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: 
							
								
								
								| 
     pgm
      dcl        &Func       *char    1     value( 'P' )
    dcl        &Buff       *char  256
    dcl        &BuffLen    *int           value( 8 )
    dcl        &Flag       *char    2     value( X'0000' )
    dcl        &RtnCde     *char    2     value( X'0000' )
     dcl        &x00        *char    2     value( X'0000' )
     dcl        &SysExt     *char   22     value( ' ' )
     dcl        &PrvDate    *char    8     value( ' ' )
      chgvar     %sst( &SysExt 21 2 )   &x00
      /* Start the REXX procedure                                          */
    call       QREXX         ( +
                               'DATECALC  '           +
                               'QREXSRC   mylib     ' +
                               x'00000000'            +
                               '*EXECSQL            ' +
                               &SysExt                +
                               x'0000'                +
                             )
    /* +
    strrexprc  srcmbr( DATECALC )                        +
                 srcfile( mylib/QREXSRC )                +
                 parm( *N )                              +
                 cmdenv( *EXECSQL )                        */
     /* Pull the result from the REXX data queue                          */
    call       QREXQ         ( +
                               &Func       +
                               &Buff       +
                               &BuffLen    +
                               &Flag       +
                               &RtnCde     +
                             )
     chgvar           &PrvDate         &Buff
  dmpclpgm
     return
   endpgm
  |  | 
				
					|  |