Skip to main content

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

Old KB# 7089