View previous topic :: View next topic
|
Author |
Message |
teethu thomas
New User
Joined: 17 May 2007 Posts: 24 Location: India
|
|
|
|
Hi,
Can anybody provide me with a sample code for calling REXX from COBOL.
If possible also give a description about the interface programs |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
COBOL Program:
Code: |
IDENTIFICATION DIVISION.
PROGRAM-ID. COBREXX.
INSTALLATION.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 ARGUMENT.
03 ARG-SIZE PIC 9(3) COMP.
03 ARG-CHAR PIC X(256).
77 PGM-NAME PIC X(8).
PROCEDURE DIVISION.
MOVE 'COBREXX 10' TO ARG-CHAR.
MOVE 11 TO ARG-SIZE.
MOVE 'IRXJCL' TO PGM-NAME.
CALL PGM-NAME USING ARGUMENT.
DISPLAY 'RETURN-CODE=' RETURN-CODE.
MOVE ZEROS TO RETURN-CODE.
STOP RUN.
|
REXX Exec COBREXX:
Code: |
/* REXX */
PARSE SOURCE SRC
ARG N
SAY "I AM" SRC
SAY "RECEIVED PARM" N
IF N = "" THEN N = 1
DO I = 1 TO N
SAY "LOOP TIME" I
END
RETURN N
|
|
|
Back to top |
|
|
TG Murphy
Active User
Joined: 23 Mar 2007 Posts: 148 Location: Ottawa Canada
|
|
|
|
The version I have here looks very much like the one provided by SuperK. Our version also includes a call to IKJTSOEV to create a TSO environment before the actual call to REXX happens.
If your REXX program needs to use TSO services I'm pretty sure you need the call to IKJTSOEV. SuperK - correct me if I'm wrong - not 100% sure on this...
My version also differs in another way. When I wrote this thing I had trouble accessing return parameters that REXX passes back to COBOL.
Rexx programs can optionally return data to the calling COBOL program. I was unable to make this work so I settled on the following ugly workaround. If the REXX program wants to pass data back to COBOL - it needs to do so by pushing something onto the program stack and not by using the standard way: RETURN something. Thus, my COBOL utility also calls IRXSTK to retrieve the data from the stack. |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
This IBM site titled Calling REXX from COBOL contains a link to a downloadable document that contains two examples of calling REXX from COBOL - one that uses IRXJCL and one that uses IRXEXEC, and describes which one to use for which conditions. |
|
Back to top |
|
|
|