IDENTIFICATION DIVISION. PROGRAM-ID. BPFB9046. AUTHOR. PAUL MURRAY, SOUND SOFTWARE. DATE-WRITTEN. AUG 16,1999. DATE-COMPILED. REMARKS. P R I N T S A M P L E P D F - 4 1 7 B A R C O D E U S I N G B P F B A T C H I N T E R F A C E To see barcode command, do a search for $BARCODE INPUT: FROM SYSIN - 4 CHARACTER CICS PRINTER ID TO ---- PRINT TEST ON PROCESS: BUILD PRINT FOR THE ONE PAGE TEST, PASS TO ------- BPF FOR PRINTING. OUTPUT: REPORT PASSED TO BPF. ----- LOG ALL CHANGES IN THE FORMAT PROVIDED BELOW: ****************************************************************** * DATE: 05/20/90 AUTHOR: PAUL MURRAY, SOUND SOFTWARE. * * * * REVISION DESCRIPTION: * * DATE: 10/23/90 AUTHOR: PAUL MURRAY, SOUND SOFTWARE. * * CHANGE 00043. CHANGE GOBACK TO STOP RUN. * * ELIMINATES 4095 RETURN CODE IN VSE. * ****************************************************************** ENVIRONMENT DIVISION. CONFIGURATION SECTION. INPUT-OUTPUT SECTION. ADB0140 FILE-CONTROL. CL**2 SELECT PRINT-OUT ASSIGN TO BPFRPT01. CL**2 SELECT CARD-IN ASSIGN TO BPFCARD. CL**2 DATA DIVISION. FILE SECTION. CL**2 FD PRINT-OUT CL**2 RECORD CONTAINS 133 CHARACTERS CL**2 BLOCK CONTAINS 0 RECORDS CL**3 LABEL RECORDS ARE OMITTED. CL**3 01 PO-REC. CL**2 03 PO-CC PIC X. CL**2 03 PO-LINE PIC X(132). CL**2 FD CARD-IN CL**2 BLOCK CONTAINS 0 RECORDS CL**3 LABEL RECORDS ARE OMITTED. CL**3 01 CI-REC. CL**2 03 CI-TERM PIC X(04). CL**2 03 FILLER PIC X(76). CL**2 EJECT WORKING-STORAGE SECTION. 01 FILLER PIC X(32) VALUE '*** WORKING STORAGE BPFB9046 ***'. 01 WORK-AREAS. 02 WS-LOOP-COUNTER PIC 9(08) COMP VALUE 0. 02 WS-ABCODE PIC S9(09) BINARY VALUE 0. 02 WS-TIMING PIC S9(09) BINARY VALUE 0. 01 WS-PRT-ERRMSG. 02 FILLER PIC X(01) VALUE LOW-VALUE. 02 FILLER PIC X(14) VALUE 'BPFB9046.00 - '. 02 WS-PRT-ERRMSG-RETCODE PIC X(04) VALUE LOW-VALUE. 02 WS-PRT-ERRMSG-TEXT PIC X(80) VALUE LOW-VALUE. ****************************************************************** * EXTENSIVE USE OF PREFIXING HAS BEEN USED TO MAKE IT EASY TO * * IDENTIFY AN AREA WHERE A DATA NAME IS BEING REFERENCED. * ****************************************************************** COPY BPFC01. ****************************************************************** * BPF-1024 THIS MODULE IS "RESTRICTED MATERIALS OF SOUND SOFTWARE" * (C) COPYRIGHT SOUND SOFTWARE 1989 - 1994 * LICENSED MATERIALS - PROPERTY OF SOUND SOFTWARE ****************************************************************** 01 BPF-CICS-INTERFACE-SCHEDULE. 02 BPF-CIS-LEN PIC 9(008) COMP VALUE 256. 02 BPF-CIS-ID PIC X(006) VALUE 'BPFC01'. 02 BPF-CIS-VERSION PIC X(005) VALUE '1.0.0'. 02 BPF-CIS-FUNCTION PIC X(009) VALUE 'SCHEDULE'. 02 BPF-CIS-RETURN-CODE PIC 9(004) VALUE 0. 02 BPF-CIS-REPORT-ID. 03 BPF-CIS-REPORT-NAME PIC X(008) VALUE SPACE. 03 BPF-CIS-SYSTEM-TAG PIC X(014) VALUE SPACE. 02 BPF-CIS-RETURN-CODE-TEXT PIC X(070) VALUE SPACE. 02 BPF-CIS-PRINT-DESTINATION PIC X(008) VALUE SPACE. 02 BPF-CIS-REMOTE-SYSID PIC X(004) VALUE SPACE. 02 BPF-CIS-LINES-PER-INCH PIC 9(002) VALUE 0. 02 BPF-CIS-LINES-PER-PAGE PIC 9(003) VALUE 0. 02 BPF-CIS-PAGE-WIDTH-THSND PIC 9(005) VALUE 0. 02 BPF-CIS-PRINT-QUALITY PIC X(001) VALUE 'N'. 88 BPF-CIS-PQ-NEAR-LETTER VALUE 'N'. 88 BPF-CIS-DP-TEXT VALUE 'D'. 88 BPF-CIS-DATA-PROCESSING VALUE 'P'. 02 BPF-CIS-PAGE-LENGTH-THSND PIC 9(005) VALUE 0. 02 BPF-CIS-SPOOL-SW PIC X(002) VALUE '01'. 88 BPF-CIS-SPOOL-BPF VALUE '01'. 88 BPF-CIS-SPOOL-SYSTEM VALUE '02'. 88 BPF-CIS-SPOOL-TRN-PRT VALUE '03'. 02 BPF-CIS-SYS-SPOOL-CLASS PIC X(001) VALUE LOW-VALUE. 02 BPF-CIS-PRINT-ORIENTATION PIC X(001) VALUE LOW-VALUE. 88 BPF-CIS-PRINT-PORTRAIT VALUE 'P'. 88 BPF-CIS-PRINT-LANDSCAPE VALUE 'L'. 02 BPF-CIS-PAPER-INPUT-SOURCE PIC 9(002) VALUE 0. 88 BPF-CIS-PAPER-INPUT-DEF VALUE 0. 88 BPF-CIS-PAPER-INPUT-ONE VALUE 1. 88 BPF-CIS-PAPER-INPUT-TWO VALUE 2. 02 BPF-CIS-LEFT-MARGIN PIC 9(005) VALUE 0. * * --> NOTE FIELD BELOW IS FILLED IN BY BPF DURING THE SCHEDULE * --> CALL. 88 LEVELS ARE PROVIDED SO THE APPLICATION CAN * --> KNOW THE PRINTER LANGUAGE. * 02 BPF-CIS-PRINTER-LANGUAGE PIC X(002) VALUE LOW-VALUE. 88 BPF-CIS-PL-IPDS VALUE '01'. 88 BPF-CIS-PL-ANSI-XL24 VALUE '02'. 88 BPF-CIS-PL-IBM-XL24 VALUE '03'. 88 BPF-CIS-PL-RJS-240-QMS VALUE '04'. 88 BPF-CIS-PL-RJS-260-QMS VALUE '05'. 88 BPF-CIS-PL-RJS-285-QMS VALUE '06'. 88 BPF-CIS-PL-1815-HP-EM VALUE '08'. 88 BPF-CIS-PL-RJS-240-CMD VALUE '09'. 88 BPF-CIS-PL-RJS-260-CMD VALUE '0A'. 88 BPF-CIS-PL-RJS-285-CMD VALUE '0B'. 88 BPF-CIS-PL-IMEC-8640 VALUE '0C'. 88 BPF-CIS-PL-IPDS-12-16 VALUE '0D'. 88 BPF-CIS-PL-ZEBRA-ZPLII VALUE '0E'. 88 BPF-CIS-PL-I-6252-6262 VALUE '0F'. 88 BPF-CIS-PL-I-6412-C-QMS VALUE '10'. 02 BPF-CIS-SYS-SPOOL-NODE PIC X(008) VALUE LOW-VALUE. 02 BPF-CIS-SYS-SPOOL-USERID PIC X(008) VALUE LOW-VALUE. 02 FILLER PIC X(079) VALUE LOW-VALUE. COPY BPFC02. ****************************************************************** * BPF-1024 THIS MODULE IS "RESTRICTED MATERIALS OF SOUND SOFTWARE" * (C) COPYRIGHT SOUND SOFTWARE 1990 * LICENSED MATERIALS - PROPERTY OF SOUND SOFTWARE ****************************************************************** ****************************************************************** * IN THE PASSDATA AREA BELOW THE BPF-PRT-NP-1, ETC CAN BE REPLACED * BY LITERAL $BEGPAGE, THEN $NEWLINE FOR EACH NEW LINE. THE MOVES * TO BPF-PRT-NP-1, NL-2, ETC IN THE PROCEDURE DIVISION CAN THEN BE * ELIMINATED. AREA LENGTH FIELDS SHOULD THEN BE ADJUSTED. ****************************************************************** 01 BPF-CICS-INTERFACE-PASSDATA. 02 BPF-CIP-LEN PIC 9(008) COMP VALUE 0. 02 BPF-CIP-ID PIC X(006) VALUE 'BPFC02'. 02 BPF-CIP-RELEASE PIC X(005) VALUE '1.0.0'. 02 BPF-CIP-FUNCTION PIC X(009) VALUE 'PASSDATA'. 02 BPF-CIP-RETURN-CODE PIC 9(004) VALUE 0. 02 BPF-CIP-REPORT-ID. 03 BPF-CIP-REPORT-NAME PIC X(008) VALUE SPACE. 03 BPF-CIP-SYSTEM-TAG PIC X(014) VALUE SPACE. 02 BPF-CIP-RETURN-CODE-TEXT PIC X(070) VALUE SPACE. 02 BPF-CIP-PRINT-AREA-LEN PIC 9(008) COMP VALUE 0. 02 BPF-CIP-PRINT-AREA. 03 BPF-PRT-NP-1 PIC X(001). 03 BPF-PRT-NL-2 PIC X(001). 03 BPF-PRT-NL-3 PIC X(001). 03 BPF-PRT-NL-4 PIC X(001). 03 BPF-PRT-DET-LINE01. 04 BPF-PRT-NL-5 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(027) VALUE '* * * * * * * * * * * * * *'. 03 BPF-PRT-DET-LINE02. 04 BPF-PRT-NL-6 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(021) VALUE '* BAR CODE TEST '. 04 BPF-PRT-DET-PAGE-NO PIC 9(003) VALUE 1. 04 FILLER PIC X(003) VALUE ' *'. 03 BPF-PRT-DET-LINE03. 04 BPF-PRT-NL-7 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(027) VALUE '* TEST TEST TEST TEST *'. 03 BPF-PRT-DET-LINE04. 04 BPF-PRT-NL-8 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(027) VALUE '*-----> DO NOT USE <------*'. 03 BPF-PRT-DET-LINE05. 04 BPF-PRT-NL-9 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(027) VALUE '* BAR CODE SHOULD FOLLOW *'. 03 BPF-PRT-DET-LINE06. 04 BPF-PRT-NL-10 PIC X(001). 04 FILLER PIC X(030) VALUE SPACE. 04 FILLER PIC X(027) VALUE '* * * * * * * * * * * * * *'. 03 FILLER PIC X(008) VALUE '$BARCODE'. 03 BPF-BC11-CMD-VERSION PIC X(005) VALUE '1.1.0'. 03 BPF-BC11-TYPE PIC X(002) VALUE '19'. 88 BPF-B11-CODE-PDF417 VALUE '19'. 03 BPF-B11-CODE-MODIFIER PIC X(002) VALUE '00'. 03 BPF-B11-CODE-WIDTH PIC 9(003) VALUE 22. 03 BPF-B11-CODE-HEIGTH-THSND PIC 9(005) VALUE 30. 03 BPF-B11-CODE-PDF417-ROW-HEIGHT REDEFINES BPF-B11-CODE-HEIGTH-THSND PIC 9(005). 03 BPF-B11-CODE-WTN-WIDE PIC 9(005) VALUE 12. 03 BPF-B11-CODE-PDF417-ROW REDEFINES BPF-B11-CODE-WTN-WIDE PIC 9(005). 03 BPF-B11-CODE-PDF417-ERCLEV PIC 9(001) VALUE 2. 03 BPF-B11-CODE-PDF417-TR-SW PIC X(001) VALUE 'N'. 88 BPF-B11-CODE-PDF417-NO-TRUNC VALUE 'N'. 88 BPF-B11-CODE-PDF417-TRUNC VALUE 'Y'. 03 FILLER PIC X(003) VALUE LOW-VALUE. 03 BPF-B11-CODE-PRINT-HRI-SW PIC X(002) VALUE '02'. 88 BPF-B11-CODE-NO-HRI VALUE '00'. 88 BPF-B11-CODE-HRI-ABOVE VALUE '01'. 88 BPF-B11-CODE-HRI-BELOW VALUE '02'. 88 BPF-B11-CODE-NA-ABOVE VALUE '03'. 88 BPF-B11-CODE-NA-BELOW VALUE '04'. 03 BPF-B11-CODE-ROTATE-DEGREES PIC 9(003) VALUE 0. 03 BPF-B11-CODE-X-THSND PIC 9(005) VALUE 400. 03 BPF-B11-CODE-Y-THSND PIC 9(005) VALUE 9100. 03 FILLER PIC X(016) VALUE LOW-VALUE. * * --> DATA TO BE BAR CODED IS BELOW * 03 FILLER PIC X(012) VALUE '312559768677'. 03 FILLER PIC X(013) VALUE LOW-VALUE. COPY BPFC03. ****************************************************************** * BPF-1024 THIS MODULE IS "RESTRICTED MATERIALS OF SOUND SOFTWARE" * (C) COPYRIGHT SOUND SOFTWARE 1990 * LICENSED MATERIALS - PROPERTY OF SOUND SOFTWARE ****************************************************************** 01 BPF-CICS-INTERFACE-TERMINATE. 02 BPF-CIT-LEN PIC 9(008) COMP VALUE 120. 02 BPF-CIT-ID PIC X(006) VALUE 'BPFC03'. 02 BPF-CIT-RELEASE PIC X(005) VALUE '1.0.0'. 02 BPF-CIT-FUNCTION PIC X(009) VALUE 'TERMINATE'. 02 BPF-CIT-RETURN-CODE PIC 9(004) VALUE 0. 02 BPF-CIT-REPORT-ID. 03 BPF-CIT-REPORT-NAME PIC X(008) VALUE SPACE. 03 BPF-CIT-SYSTEM-TAG PIC X(014) VALUE SPACE. 02 BPF-CIT-RETURN-CODE-TEXT PIC X(070) VALUE SPACE. COPY BPFC04. ****************************************************************** * BPF-1024 THIS MODULE IS "RESTRICTED MATERIALS OF SOUND SOFTWARE" * (C) COPYRIGHT SOUND SOFTWARE 1989 * LICENSED MATERIALS - PROPERTY OF SOUND SOFTWARE ****************************************************************** 01 BPF-CICS-SCS-PRINT-CONTROL. 02 BPF-CICS-SCS-NEW-PAGE PIC 9(04) COMP VALUE 3093. 02 FILLER REDEFINES BPF-CICS-SCS-NEW-PAGE. 03 BPF-SCS-HEX-0C PIC X(01). 03 BPF-SCS-HEX-15 PIC X(01). 01 WS-WORK. 02 WS-LEN PIC 9(04) COMP VALUE 0. 02 WS-PRINTER-ID PIC X(04) VALUE LOW-VALUE. EJECT LINKAGE SECTION. EJECT PROCEDURE DIVISION. * *--> OPEN FILES * OPEN INPUT CARD-IN OUTPUT PRINT-OUT. READ CARD-IN AT END GO TO 2800-NO-CARD. EJECT * *--> SET UP BPF SCHEDULE AREA AND SCHEDULE REPORT WITH BPF * MOVE 'BPFTEST' TO BPF-CIS-REPORT-ID. MOVE CI-TERM TO BPF-CIS-PRINT-DESTINATION. MOVE 6 TO BPF-CIS-LINES-PER-INCH. MOVE 66 TO BPF-CIS-LINES-PER-PAGE. MOVE 8000 TO BPF-CIS-PAGE-WIDTH-THSND. MOVE '02' TO BPF-CIS-SPOOL-SW. * *--> DO ACTUAL SCHEDULE CALL * MOVE 256 TO WS-LEN. CALL 'BPFB0020' USING BPF-CICS-INTERFACE-SCHEDULE WS-LEN. * *--> CHECK BPF RETURN CODE * IF BPF-CIS-RETURN-CODE = 0 NEXT SENTENCE ELSE MOVE BPF-CIS-RETURN-CODE TO WS-PRT-ERRMSG-RETCODE MOVE BPF-CIS-RETURN-CODE-TEXT TO WS-PRT-ERRMSG-TEXT PERFORM 3000-DISPLAY-ERROR THRU 3999-SECTION-EXIT GO TO 2900-PGM-EXIT. EJECT * *--> SET UP PASSDATA AREA, USED TO PASS ACTUAL DATA TO PRINT * MOVE 567 TO BPF-CIP-LEN WS-LEN. * *--> MOVE BELOW IS ESSENTIAL SO WE USE SYSTEM TAG TO REPORT *--> ID THAT BPF SET UP DURING THE SCHEDULE CALL * MOVE BPF-CIS-REPORT-ID TO BPF-CIP-REPORT-ID. MOVE 443 TO BPF-CIP-PRINT-AREA-LEN. MOVE BPF-SCS-HEX-0C TO BPF-PRT-NP-1. MOVE BPF-SCS-HEX-15 TO BPF-PRT-NL-2 BPF-PRT-NL-3 BPF-PRT-NL-4 BPF-PRT-NL-5 BPF-PRT-NL-6 BPF-PRT-NL-7 BPF-PRT-NL-8 BPF-PRT-NL-9 BPF-PRT-NL-10. 1800-LOOP. CALL 'BPFB0020' USING BPF-CICS-INTERFACE-PASSDATA WS-LEN. * *--> CHECK BPF RETURN CODE * IF BPF-CIP-RETURN-CODE = 0 NEXT SENTENCE ELSE MOVE BPF-CIP-RETURN-CODE TO WS-PRT-ERRMSG-RETCODE MOVE BPF-CIP-RETURN-CODE-TEXT TO WS-PRT-ERRMSG-TEXT PERFORM 3000-DISPLAY-ERROR THRU 3999-SECTION-EXIT GO TO 2900-PGM-EXIT. IF WS-LOOP-COUNTER > 4 * MOVE 12 TO WS-ABCODE * MOVE 1 TO WS-TIMING * CALL 'CEE3ABD' USING WS-ABCODE WS-TIMING NEXT SENTENCE ELSE ADD 1 TO WS-LOOP-COUNTER GO TO 1800-LOOP. * ADD 1 TO BPF-PRT-DET-PAGE-NO. * * CALL 'BPFB0020' USING BPF-CICS-INTERFACE-PASSDATA * WS-LEN. * *--> CHECK BPF RETURN CODE * IF BPF-CIP-RETURN-CODE = 0 NEXT SENTENCE ELSE MOVE BPF-CIP-RETURN-CODE TO WS-PRT-ERRMSG-RETCODE MOVE BPF-CIP-RETURN-CODE-TEXT TO WS-PRT-ERRMSG-TEXT PERFORM 3000-DISPLAY-ERROR THRU 3999-SECTION-EXIT GO TO 2900-PGM-EXIT. EJECT 2000-TERM. * *--> SET UP REPORT TAG WITH SYSTEM ID * MOVE BPF-CIT-LEN TO WS-LEN. MOVE BPF-CIS-REPORT-ID TO BPF-CIT-REPORT-ID. CALL 'BPFB0020' USING BPF-CICS-INTERFACE-TERMINATE WS-LEN. * *--> CHECK BPF RETURN CODE * IF BPF-CIT-RETURN-CODE = 0 GO TO 2840-SEND-SUCCESS ELSE MOVE BPF-CIT-RETURN-CODE TO WS-PRT-ERRMSG-RETCODE MOVE BPF-CIT-RETURN-CODE-TEXT TO WS-PRT-ERRMSG-TEXT PERFORM 3000-DISPLAY-ERROR THRU 3999-SECTION-EXIT GO TO 2900-PGM-EXIT. * *--> NO INPUT CARD, SO DO NOT HAVE PRINT DESTINATION * 2800-NO-CARD. MOVE 'BPFB9046.01 - INPUT CARD MISSING' TO PO-LINE. WRITE PO-REC AFTER 1. GO TO 2900-PGM-EXIT. * *--> SEND SUCCESS MESSAGE * 2840-SEND-SUCCESS. MOVE 'BPFB9046.02 - ******************' TO PO-LINE. WRITE PO-REC AFTER 1. MOVE 'BPFB9046.02 - * ' TO PO-LINE. WRITE PO-REC AFTER 1. MOVE 'BPFB9046.02 - * PRINT DATA SUCCESSFULLY WRITTEN TO BPF - 'TO CICS TRANSFER FILE' TO PO-LINE. WRITE PO-REC AFTER 1. MOVE 'BPFB9046.02 - * LOGON TO CICS AND USE CICS TRANSACTION - ' BP30 TO PRINT' TO PO-LINE. WRITE PO-REC AFTER 1. MOVE 'BPFB9046.02 - * ' TO PO-LINE. WRITE PO-REC AFTER 1. MOVE 'BPFB9046.02 - ******************' TO PO-LINE. WRITE PO-REC AFTER 1. 2900-PGM-EXIT. CLOSE CARD-IN PRINT-OUT. STOP RUN. EJECT 3000-DISPLAY-ERROR SECTION. WRITE PO-REC FROM WS-PRT-ERRMSG AFTER 1. 3999-SECTION-EXIT. EXIT.