IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

CAlling REXX from COBOL


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
teethu thomas

New User


Joined: 17 May 2007
Posts: 24
Location: India

PostPosted: Wed Sep 12, 2007 1:47 pm
Reply with quote

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
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Wed Sep 12, 2007 6:52 pm
Reply with quote

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
View user's profile Send private message
TG Murphy

Active User


Joined: 23 Mar 2007
Posts: 148
Location: Ottawa Canada

PostPosted: Thu Sep 13, 2007 12:32 am
Reply with quote

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
View user's profile Send private message
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Thu Sep 13, 2007 1:40 am
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Replace each space in cobol string wi... COBOL Programming 3
No new posts Running REXX through JOB CLIST & REXX 13
No new posts Error to read log with rexx CLIST & REXX 11
No new posts COBOL -Linkage Section-Case Sensitive COBOL Programming 1
No new posts isfline didnt work in rexx at z/OS ve... CLIST & REXX 7
Search our Forums:

Back to Top