Trailing-Edge
-
PDP-10 Archives
-
BB-D867D-BM
-
uetp/lib/batch.cbl
There are 11 other files named batch.cbl in the archive. Click here to see a list.
IDENTIFICATION DIVISION.
PROGRAM-ID. BATCH.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
OBJECT-COMPUTER. DECSYSTEM-20.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FILIN ASSIGN TO INFILE.
DATA DIVISION.
FILE SECTION.
FD FILIN
LABEL RECORDS ARE STANDARD
RECORDING MODE IS ASCII
VALUE OF ID IS IN-FILE-NAME
DATA RECORD INREC.
01 INREC PIC X(29) USAGE DISPLAY-7.
WORKING-STORAGE SECTION.
01 IN-FILE-NAME.
02 IN-FILE PIC X(6).
02 IN-FILE-EXT PIC X(3) VALUE IS "FIL".
01 FILE-NAME PICTURE X(120) DISPLAY-7
VALUE IS 'DSK:SHARED.FIL'.
01 FILE-PASSWORD PICTURE X(5) DISPLAY-7.
01 NUMBER-OF-PAGES PICTURE S9(10) COMPUTATIONAL VALUE IS 2.
01 THE-ERROR PICTURE S9(10) COMPUTATIONAL VALUE IS 0.
01 USER-PRIORITY PICTURE S9(10) COMPUTATIONAL VALUE IS 0.
01 TRANS-TYPE PIC S9(10) COMP.
01 MY-JOB-NUMBER PIC S9(10) COMP.
01 MY-TERMINAL-NUMBER PIC S9(10) COMP.
01 WORK-TODAY.
02 YYMMDD.
03 YY PIC XX.
03 MM PIC XX.
03 DD PIC XX.
02 HHMMSS.
03 HHMM.
04 HH PIC XX.
04 MN PIC XX.
03 SS PIC XX.
01 TRANS-IN PIC S9(10) COMP VALUE ZERO.
01 TRANS-SENT PIC S9(10) COMP VALUE ZERO.
01 TRANS-OK PIC S9(10) COMP VALUE ZERO.
01 WORK-REC COPY PBTRAN.
01 COMMUNICATION-RECORD COPY COMREC.
01 ERR-MSGS.
02 F PIC X(25) VALUE
'NO METER'.
02 F PIC X(25) VALUE
'ALREADY HAS A METER'.
02 F PIC X(25) VALUE
'NO CUSTOMER'.
02 F PIC X(25) VALUE
'ALREADY CUSTOMER'.
02 F PIC X(25) VALUE
'NO BRANCH PO'.
02 F PIC X(25) VALUE
'METER CUST LINKED'.
02 F PIC X(25) VALUE
'METER BRANCH LINKED'.
02 F PIC X(25) VALUE
'NO PARENT PO'.
02 F PIC X(25) VALUE
'BRANCH PARENT LINKED'.
02 F PIC X(25) VALUE
'METER CUST NOT LINKED'.
02 F PIC X(25) VALUE
'ALREADY PARENT PO'.
02 F PIC X(25) VALUE
'ALREADY BRANCH PO'.
02 F PIC X(25) VALUE
'DATABASE ERROR'.
01 REMSG REDEFINES ERR-MSGS.
02 EMS PIC X(25) OCCURS 13 TIMES.
01 THE-RECORD-COUNT PIC S9(10) COMP.
01 THE-RECORD-TURNOVER PIC S9(10) COMP.
PROCEDURE DIVISION.
START.
MOVE 1 TO USER-PRIORITY.
MOVE 'BATCH' TO CR-user-application.
DISPLAY 'Your Identification (8 chars):' WITH NO ADVANCING.
ACCEPT CR-user-identity.
MOVE MY-JOB-NUMBER TO CR-user-job-number.
MOVE MY-TERMINAL-NUMBER TO CR-user-terminal-number.
CALL PBDBMS USING COMMUNICATION-RECORD.
START-BATCH.
DISPLAY 'INPUT FILE NAME : ' WITH NO ADVANCING.
ACCEPT IN-FILE.
OPEN INPUT FILIN.
MOVE 98 TO CR-transaction-number.
CALL DBOPEN USING COMMUNICATION-RECORD.
IF CR-RETURN-CODE NOT = 0
* THEN
DISPLAY '[DATA BASE OPEN ERROR]'
GO TO END-BATCH
ELSE
DISPLAY '[Data Base Now Open]'.
READ-DATA.
READ FILIN INTO WORK-REC
AT END GO TO END-BATCH.
SET TRANS-IN UP BY 1.
MOVE TRANS-IN TO CR-user-transaction-count.
SET THE-RECORD-COUNT UP BY 1.
IF THE-RECORD-COUNT = 100
* THEN
DISPLAY '[' TRANS-IN ' RECORDS] ' TODAY
MOVE 0 TO THE-RECORD-COUNT
ELSE
NEXT SENTENCE.
PROCESS-TRANS.
IF T-TYPE-1 = 'T'
* THEN
MOVE 0 TO T-TYPE-1
ELSE
NEXT SENTENCE.
IF T-TYPE GREATER ZERO AND LESS 8
GO TO CONTINUE-TRANS.
IF T-TYPE = 13 OR 14
GO TO CONTINUE-TRANS.
NOT-A-VALID-TYPE-FOR-BATCH.
DISPLAY 'NOT A VALID BATCH TYPE'.
DISPLAY WORK-REC.
GO TO READ-DATA.
CONTINUE-TRANS.
MOVE TODAY TO WORK-TODAY.
* MOVE YYMMDD TO CRB-date.
MOVE 030578 TO CRB-DATE.
* MOVE HHMM TO CRB-hhmm.
MOVE 0607 TO CRB-HHMM.
MOVE T-TYPE TO CR-TRANSACTION-NUMBER.
MOVE ZERO TO CR-TRANSACTION-SUBTYPE.
MOVE ZERO TO CR-RETURN-CODE.
MOVE T-METER TO CRB-METER-NUMBER.
MOVE T-CUST TO CRB-CUSTOMER-NUMBER.
MOVE T-BRANCH TO CRB-BRANCH-PO-NUMBER.
MOVE T-PARENT TO CRB-PARENT-PO-NUMBER.
MOVE T-ACT TO CRB-ACTIVITY-CODE.
SET TRANS-SENT UP BY 1.
PASS-TO-PROCESS.
CALL DBTRAN USING COMMUNICATION-RECORD.
* DISPLAY COMMUNICATION-RECORD.
CHECK-RETURN-CODE.
IF CR-GOOD-RETURN
SET TRANS-OK UP BY 1
GO TO READ-DATA.
BAD-RETURN-CODE.
IF CR-RETURN-CODE > 0 AND < 11
GO TO BRC-1.
IF CR-RETURN-CODE = 99
DISPLAY EMS (11)
GO TO BRC-2.
BRC-1.
DISPLAY EMS (CR-RETURN-CODE).
BRC-2.
DISPLAY COMMUNICATION-RECORD.
GET-NEXT-RECORD.
GO TO READ-DATA.
END-BATCH.
MOVE 99 TO CR-TRANSACTION-NUMBER.
CALL DBCLOS USING COMMUNICATION-RECORD.
IF CR-RETURN-CODE NOT = 0
DISPLAY '[DATA BASE CLOSE ERROR]'.
CLOSE FILIN.
DISPLAY TRANS-IN ' TRANS IN'.
DISPLAY TRANS-SENT ' TRANS SENT'.
DISPLAY TRANS-OK ' TRANS OK'.
STOP RUN.