Generate a COBOL OUTMOD Routine
The following COBOL example is in <dbcpfx>.SAMPLIB (CHKTRANB) on the release tape.
The procedure executes the COBUCL exec that compiles the input source using program product IKFCBL00 and then link edits the object module into the USER loadlib as member Chktran.
//USERJOBUSER JOB (20750000),'USERNAME',MSGCLASS=A,NOTIFY=USER,
// CLASS=B,MSGLEVEL=(1,1),REGION=5120K
//COBCOMPL EXEC COBUCL
//COB.SYSIN DD *
IDENTIFICATION DIVISION.
PROGRAM-ID. CHKTRAN.
AUTHOR. USER.
INSTALLATION. TERADATA.
DATE-WRITTEN. 12 AUGUST 1992
DATE_COMPLIED.
SECURITY. OPEN.
REMARKS.
THIS PROCEDURE IS INVOKED BY THE TERADATA FASTEXPORT
UTILITY TO PROCESS THE RESPONSE DATA RETURNED FROM
THE SAMPLE SELECT. THE PROCEDURE EXAMINES EACH
RESPONSE RECORD TO DETERMINE IF THE RECORD SHOULD BE
WRITTEN TO AN ERROR DATA SET AND THEN EITHER DROPPED
OR WRITTEN TO THE STANDARD DATA SET. ONE ERROR DATA
SET CONTAINS RECORDS WITH A NULL REGION CODE. THE
OTHER ERROR DATA SET CONTAINS RECORDS WITH A TOTAL
SALES VALUE OF LESS THAN $100. THESE LATTER RECORDS
ARE NOT WRITTEN TO THE STANDARD DATA SET.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SALES-DROPPED-FILE ASSIGN TO FILE1OUT.
SELECT BAD-REGN-SALES-FILE ASSIGN TO FILE2OUT.
DATA DIVISION.
FILE SECTION.
FD SALES-DROPPED-FILE
BLOCK CONTAINS 160 RECORDS
LABEL RECORDS STANDARD.
01 DROPPED-TRANLOG.
02 INDICATORS PIC 9.
02 REGN PIC XXX.
02 PRODUCT PIC X(8).
02 QTY PIC S9(8) COMP.
02 PRICE PIC S9(8) COMP.
FD BAD-REGN-SALES-FILE
BLOCK CONTAINS 160 RECORDS
LABEL RECORDS STANDARD.
01 BAD-REGN-TRANLOG.
02 INDICATORS PIC 9.
02 REGN PIC XXX.
02 PRODUCT PIC X(8).
02 QTY PIC S9(8) COMP.
02 PRICE PIC S9(8) COMP.
LINKAGE SECTION.
01 ENTRY-TYPE PIC S9(5) COMP.
01 STATEMENT-NOPIC S9(5) COMP.
01 RECORD-SIZE PIC S9(5) COMP.
01 TRANLOG.
05 INDICATORS PIC 9.
05 REGN PIC XXX.
05 PRODUCT PIC X(8).
05 QTY PIC S9(8) COMP.
05 PRICE PIC S9(8) COMP.
01 OUTPUT-LENGTHPIC S9(5) COMP.
01 OUTPUT-AREA PIC XXXX.
PROCEDURE DIVISION USING
ENTRY-TYPE, STATEMENT-NO, RECORD-SIZE, TRANLOG,
OUTPUT-LENGTH, OUTPUT-AREA.
BEGIN.
MAIN.
IF ENTRY-TYPE = 1 THEN
OPEN OUTPUT SALES-DROPPED-FILE
OPEN OUTPUT BAD-REGN-SALES-FILE
GOBACK.
IF ENTRY-TYPE = 2 THEN
CLOSE SALES-DROPPED-FILE
CLOSE BAD-REGN-SALES-FILE
GOBACK.
IF ENTRY-TYPE = 3 THEN
PERFORM TYPE-3
GOBACK.
IF ENTRY-TYPE = 4 THEN
GOBACK.
IF ENTRY-TYPE = 5 THEN
CLOSE SALES-DROPPED-FILE
OPEN OUTPUT SALES-DROPPED-FILE
CLOSE BAD-REGN-SALES-FILE
OPEN OUTPUT BAD-REGN-SALES-FILE
GOBACK.
IF ENTRY-TYPE = 6 THEN
OPEN OUTPUT SALES-DROPPED-FILE
OPEN OUTPUT BAD-REGN-SALES-FILE
GOBACK.
DISPLAY “Invalid entry code = ” ENTRY-TYPE.
GOBACK.
TYPE-3.
IF QTY IN TRANLOG * PRICE IN TRANLOG < 100 THEN
MOVE 0 TO RECORD-SIZE
WRITE DROPPED-TRANLOG FROM TRANLOG
ELSE
PERFORM TEST-NULL-REGN.
TEST-NULL-REGN.
IF REGN IN TRANLOG = SPACES
MOVE 999 TO REGN IN TRANLOG
WRITE BAD-REGN-TRANLOG FROM TRANLOG.
/*
//LKED.SYSLMOD DD DSN=USERLOADLIB(CHKTRAN),DISP=MOD
//LKED.SYSIN DD *
MODE AMODE(24) RMODE(24)
ENTRY CHKTRAN
NAME CHKTRAN(R)
/*