The following program can be compiled in COBOL74 or COBOL85. This program initiates a separate program called OBJECT/COBOL/TEST using the task variable TASK-VAR-1:
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TASK-VAR-1 USAGE IS TASK.
01 EXT-NAME PIC X(80).
PROCEDURE DIVISION.
DECLARATIVES.
PROC-EXTERNAL SECTION.
USE EXTERNAL EXT-NAME AS PROCEDURE.
END DECLARATIVES.
START-HERE SECTION.
P1.
MOVE “OBJECT/COBOL/TEST.” TO EXT-NAME.
PROCESS TASK-VAR-1 WITH PROC-EXTERNAL.
PROCWAIT SECTION.
P2.
WAIT AND RESET UNTIL ATTRIBUTE EXCEPTIONEVENT OF MYSELF.
IF ATTRIBUTE STATUS OF TASK-VAR-1 IS GREATER THAN
VALUE TERMINATED THEN GO PROCWAIT.
STOP RUN.The following program can be compiled in COBOL74 or COBOL85. This program invokes OBJECT/COBOL/TEST as an imported library procedure rather than as a task. OBJECT/COBOL/TEST is executed as part of the calling process.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
START-HERE SECTION.
P1.
CALL “PROCEDUREDIVISION IN OBJECT/COBOL/TEST”.
STOP RUN.The following is the program OBJECT/COBOL/TEST. If this program is compiled in COBOL74, then it can be invoked by either of the two preceding programs, and execute either as a task or as a library. If this program is compiled in COBOL85, then it can be invoked only as a task. If you add the $SET LIBRARYPROG compiler control statement and compile this program in COBOL85, then the program can be invoked as a library.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 MIXNO BINARY PIC 9(11).
PROCEDURE DIVISION.
START-HERE SECTION.
P1.
MOVE ATTRIBUTE MIXNUMBER OF MYSELF TO MIXNO.
DISPLAY MIXNO.
STOP RUN.The following program can be compiled in COBOL74 or COBOL85. This program submits WFL input in array form for execution. The WFL statements are stored in an array of picture items. Note that if any of the WFL statements includes a quotation mark (“), the quotation mark must be represented by two quotation marks (““) in the MOVE statement that stores the statement in the array. The use of double quotation marks is necessary because the compiler interprets a single quotation mark as the end of the WFL input rather than as part of the WFL input.
IDENTIFICATION DIVISION. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 01 PARAM. 05 PARAM-1 PIC X(80). 05 PARAM-2 PIC X(80). 05 PARAM-3 PIC X(80). PROCEDURE DIVISION. START-HERE SECTION. P1. MOVE “CLASS=2;JOBSUMMARY=SUPPRESSED;ELAPSEDLIMIT=120;” TO PARAM-1. MOVE “MYSELF(STATIONNAME=#MYSELF(SOURCENAME));” TO PARAM-2. MOVE “DISPLAY (““HI AGAIN”“);” TO PARAM-3. CALL SYSTEM WFL USING PARAM. STOP RUN.
The following program can be compiled in COBOL74 or COBOL85. This program initiates a utility. This example also shows how to pass parameters to a task from a COBOL program.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TASK-VAR-1 USAGE IS TASK.
01 EXT-NAME PIC X(80).
01 ACTUALPARAM PIC X(19).
LOCAL-STORAGE SECTION.
LD PARAMS.
01 FORMALPARAM PIC X(19).
PROCEDURE DIVISION.
DECLARATIVES.
PROC-EXTERNAL SECTION.
USE EXTERNAL EXT-NAME AS PROCEDURE
WITH PARAMS USING FORMALPARAM.
END DECLARATIVES.
START-HERE SECTION.
P1.
MOVE “*SYSTEM/LOGANALYZER ON DISK.” TO EXT-NAME.
MOVE “PRINTER JOB 1260” TO ACTUALPARAM.
CALL TASK-VAR-1 WITH PROC-EXTERNAL USING ACTUALPARAM.
STOP RUN.The following program can be compiled in COBOL74 or COBOL85. This program initiates a compilation.
IDENTIFICATION DIVISION.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TASK-VAR-1 USAGE IS TASK.
01 EXT-NAME PIC X(80).
01 VALUE-ONE PIC 9(11) BINARY VALUE 1.
01 ACTUALPARAM.
03 PARAMWORD BINARY PIC 9(11) OCCURS 33.
LOCAL-STORAGE SECTION.
LD PARAMS.
01 FORMALPARAM.
03 FORMALWORD BINARY PIC 9(11) OCCURS 33.
PROCEDURE DIVISION.
DECLARATIVES.
PROC-EXTERNAL SECTION.
USE EXTERNAL EXT-NAME AS PROCEDURE
WITH PARAMS USING FORMALPARAM.
END DECLARATIVES.
START-HERE SECTION.
P1.
MOVE “*SYSTEM/ALGOL ON DISK.” TO EXT-NAME.
MOVE 2 TO PARAMWORD (9).
MOVE VALUE-ONE TO PARAMWORD (1) [00:47:01].
CHANGE ATTRIBUTE FILECARDS OF TASK-VAR-1 TO
“FILE CARD (KIND=DISK,TITLE=ALGOL/TASK);”.
CHANGE ATTRIBUTE FILECARDS OF TASK-VAR-1 TO
“FILE CODE (KIND=DISK,TITLE=OBJECT/ALGOL/TASK);”.
CALL TASK-VAR-1 WITH PROC-EXTERNAL USING ACTUALPARAM.
STOP RUN.In this example, the COBOL program initiates the compiler directly as a task. An alternative would be for the program to submit in array form a WFL program that contains a COMPILE statement.

