It is in foreground only. Now I got what is meant by vget and vput.
Below I am giving a REXX program which is calling a macro, but I am not getting the expected output. Can anyone tell me whether the below statements are right.
My problem is, the variable i am sending using vput is not retrieved in the macro, it is passed to the macro as an empty variable.
PROC - 1
/* REXX */
PROC = "AARTHY"
MY_DS = "M758FH.PDS.CNTL(TEST)"
ADDRESS ISPEXEC;"CONTROL ERRORS RETURN"
"ISPEXEC VPUT('" PROC "') PROFILE"
SAY "PROC AFTER VPUT IN PROC1" PROC
"ISPEXEC VIEW DATASET('"MY_DS"') MACRO("PROC2")"
"ISPEXEC VGET('" PROC "') PROFILE"
"ISPEXEC SETMSG MSG(ISRZ000)"
SAY "PROC AFTER VGET IN PROC1" PROC
PROC - 2 I.E., MACRO
/* REXX */
ADDRESS ISPEXEC;"CONTROL ERRORS RETURN"
"ISPEXEC VGET('" PROC "') PROFILE"
SAY "PROC AFTER VGET IN PROC2" PROC
ADDRESS ISREDIT MACRO
"ISREDIT X ALL"
"ISREDIT F ALL" ("WELCOME")
IF RC = 0 THEN
SAY 'CHECKING'
PROC = "CHANGING"
SAY "PROC IN PROC2 AFTER CHANGING" PROC
"ISPEXEC VPUT('" PROC"') PROFILE"
SAY "PROC IN PROC2 AFTER VPUT" PROC
"ISREDIT END"
OUTPUT OBTAINED
PROC AFTER VPUT IN PROC1 AARTHY
PROC AFTER VGET IN PROC2 PROC - this should be AARTHY ONLY
CHECKING
PROC IN PROC2 AFTER CHANGING CHANGING
PROC IN PROC2 AFTER VPUT CHANGING
PROC AFTER VGET IN PROC1 AARTHY - this should be CHANGING