Hi,
I am testing a rexx program that will pass a variable to
a cobol program. The cobol program changes the
value of the variable and passes the new value back
to the rexx program.
The programs are as follows :
Rexx -> var1 = 'A'
"ispexec vput (var1)"
cprog1
"ispexec vget (var1)"
Cobol -> program name is cprog1
77 varlst pic x(10) value "(VAR1)".
call "isplink" using vget varlst.
display 'var1 = ' var1.
move 'B' to var1.
call "isplink" using vput varlst shared.
goback.
Result of the run ->
var1 = A
and then it abend with
"IRX0250E System abend code 0C4, reason code 00000000."
"IRX0255E ABend in host command ISPEXEC or address
environment routine TSO"
Any help will be appreciated.
ThanKS.
In your example you make no mention of VDEFINE's in your COBOL program.
I recall having a S0C4 once because my VDEFINE's and VDELETE's weren't
properly handled. Because you only have this one variable, I would code
as follows:
77 VAR1 PIC X(nn) VALUE SPACES.
77 VAR1-N PIC X(08) VALUE 'VAR1'.
77 Nnn PIC 9(nn) VALUE nn COMP. (THIS IS THE LENGTH OF
VAR1)
01 VGET PIC X(08) VALUE 'VGET'.
01 VPUT PIC X(08) VALUE 'VPUT'.
PROCEDURE DIVISION.
CALL 'ISPLINK' USING VDEFINE VAR1-N VAR1 Nnn.
CALL 'ISPLINK' USING VGET VAR1-N.
MOVE 'whatever' TO VAR1.
CALL 'ISPLINK' USING VPUT VAR1-N.
CALL 'ISPLINK' USING VDELETE VAR1-N.
Hope this helps!