Version 8.6 CP02P1 Changes
Introduction
Generally speaking, we strive to maintain a single source between versions 8.5 and 8.6, with the CBL stored in the G:\NSI.SRC\85 folder. However, we have made an exception to this single source convention for CP02P1.CBL (legacy pick ticket printing) due to significant changes. Since we don’t want these changes to affect existing Elliott 8.5 users, we decided that new changes in CP02P1.CBL (adding CP01P1.PL) should only affect the 8.6 users. When users upgrade to Elliott 8.6, if any issues should arise with legacy pick ticket printing, we should advise them to use the 8.5 version for printing pick tickets for now while we work on finding a solution.
In version 8.6, CP02P1.CBL is for hard-coded pick tickets like 8.5. On the other hand, the CPPICPRT.CBL handles the user-definable pick ticket. To minimize maintenance efforts and promote shared pick ticket logic between the two programs, we have placed the shared program logic in CP02P1.PL. Consequently, the source code for CP02P1.CBL in 8.6 appears very different from that of 8.5, as much of the processing logic has been moved to CP02P1.PL. There is no change to CP02P1.CBL in 8.5 and hence we don’t expect any new issues. Theoretically, this is just a source code reorganization and all functionality related to the legacy pick ticket should still work the same. However, this constitutes a substantial change, which led me to break the single source rule for CP02P1.CBL.
Given that the legacy pick ticket CP02P1.CBL and the user-defined pick ticket CPPICPRT.CBL share the same copy book CP02P1.PL, future non-printing format changes will primarily apply to CP02P1.PL. This way, you only need to recompile both programs without manually altering the two CBLs. Going forward, if the changes you need to make are in CP02P1.PL, please follow these steps:
- Change CP02P1.PL in 8.5 (even though CP02P1.PL is in 8.5, this PL is only used by 8.6 CP02P1.CBL and CPPICPRT.CBL which resides in 8.5).
- Change CP02P1.CBL in 8.5 (8.5 CP02P1.CBL does not use CP02P1.PL).
- Recompile CP02P1.CBL in version 8.5 using the PC.BAT script, and there will be a warning message because CP02P1.CBL already exists in the 8.6 folder. You can press the Enter key to ignore the message and CP02P1.CBL will be compiled for both 8.5 and 8.6.
- Use PC.BAT to recompile CPPICPRT.CBL in 8.5. It will also auto recompile it for 8.6. Note that even though CPPICPRT.CBL is in the 8.5 folder, it is not used until 8.6.
Detail
CS2305 IF WS-N38-PRINT-PICKTICK-FORM = "Y" AND
CS2305 WS-N38-PICKTICK-FORM NOT = ZERO
CS2305 MOVE "CPPICPRT" TO TASK-NAME
CS2305 ELSE
CS2306 MOVE "CP02P1" TO TASK-NAME
CS2305 END-IF
CS2305 ELSE
CC0401 MOVE "CP02P1" TO TASK-NAME
CS2305 END-IF
Program |
Version 8.5 |
Version 8.6 |
CP02P1.CBL |
Contains original logic. Resides in 8.5 source code directory. |
Resides in 8.6 source code directory. Processing logic commented out and moved to CP02P1.PL. Contains COPY statement for CP02P1.PL. Called if Global Setup flag = “N” or blank or if form number not set up. |
CP02P1.PL |
Not used in 8.5 version of CP02P1.CBL but resides in the 8.5 source directory. |
Resides in the 8.5 source code directory. Contains processing logic to print picking ticket. Used when compiling CP02P1.CBL in 8.6 source directory and compiling CPPICPRT.CBL in 8.5 source directory. |
CPPICPRT.CBL |
Not used in version 8.5 but resides in 8.5 source directory. |
Source resides in the 8.5 directory. Base program similar to CPINVPRT.CBL that contains mostly copybooks. Use both new CP02P1.PL and CPPICPRT.PL. Called if Global Setup flag = “Y” and a form number has been provided. |
CPPICPRT.PL |
Not used in version 8.5 but resides in 8.5 source directory. |
Source resides in the 8.5 directory. Contains printing logic for the laser form. Used by CPPICPRT.CBL. |
CC1005 IF ORDER-CUSTOMER-NO IS = WS-NS3-CUST-CODE-CREDIT(1) OR
CC1005 ORDER-CUSTOMER-NO IS = WS-NS3-CUST-CODE-CREDIT(2) OR
CC1005 ORDER-CUSTOMER-NO IS = WS-NS3-CUST-CODE-CREDIT(3) OR
CC1005 ORDER-CUSTOMER-NO IS = WS-NS3-CUST-CODE-CREDIT(4) OR
CC1005 ORDER-CUSTOMER-NO IS = WS-NS3-CUST-CODE-CREDIT(5)
CS2106 OR
CS2303 ((ORDER-BILL-TO-NO IS = WS-NS3-CUST-CODE-CREDIT(1) OR
CS2106 ORDER-BILL-TO-NO IS = WS-NS3-CUST-CODE-CREDIT(2) OR
CS2106 ORDER-BILL-TO-NO IS = WS-NS3-CUST-CODE-CREDIT(3) OR
CS2106 ORDER-BILL-TO-NO IS = WS-NS3-CUST-CODE-CREDIT(4) OR
CS2303 ORDER-BILL-TO-NO IS = WS-NS3-CUST-CODE-CREDIT(5)) AND
CS2303 ORDER-BILL-TO-NO NOT = SPACES)
CC1005 MOVE "Y" TO EXEMPT-CREDIT-FLAG
CC1005 END-IF
CC1005 END-IF.