Problem:
Use an environment variable for the compiler directive OUTDD($OUTDDENV)
The $ is used to let the runtime know that it is to read this environement variable when the program does the first DISPLAY.
Resolution:
$SET INITCALL(MFEXTMAP) OUTDD($OUTDDENV)
*
* TO CHANGE THE CONTENTS OF AN ENVIRONMENT VARIABLE,
* MFEXTMAP MUST BE LOADED.
*
IDENTIFICATION DIVISION.
**************************************************************
*
PROGRAM-ID. OUTDDENV.
*
**************************************************************
INPUT-OUTPUT SECTION.
**************************************************************
**************************************************************
DATA DIVISION.
**************************************************************
WORKING-STORAGE SECTION.
01 WS-ENV-VAR-NAME PIC X(80).
01 WS-ENV-VAR-VALUE PIC X(129).
01 WS-OUTDD-ENV.
05 WS-OUTDD-PATH PIC X(20) VALUE "R:\\REPORTS\\DISPLAYS\\".
05 WS-ENV-OUTDD-JOB PIC X(6).
05 WS-ENV-OUTDD-SEP PIC X(1) VALUE "_".
05 WS-ENV-OUTDD-PGM PIC X(12).
**************************************************************
PROCEDURE DIVISION.
**************************************************************
A100-MAIN.
MOVE "OUTDDENV" TO WS-ENV-VAR-NAME.
MOVE "001234" TO WS-ENV-OUTDD-JOB.
MOVE "BUS091.TXT" TO WS-ENV-OUTDD-PGM.
MOVE WS-OUTDD-ENV TO WS-ENV-VAR-VALUE.
DISPLAY WS-ENV-VAR-NAME UPON ENVIRONMENT-NAME.
DISPLAY WS-ENV-VAR-VALUE UPON ENVIRONMENT-VALUE.
A200-DISPLAY.
DISPLAY "THAT THIS SHOULD BE IN A FILE " WS-OUTDD-ENV