Release Date: 6/14/23
Version: 8.6 and Above
This documentation is intended for Netcellent or Netcellent's developers. It uses Netcellent's own environment as an example of how to perform certain tasks.
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
Expanded laser picking ticket form support has been added for version 8.6. See
https://support.netcellent.com/portal/en/kb/articles/feature-expanded-laser-picking-ticket for more information on this change. To safeguard users who are running 8.5 and have not upgraded to version 8.6, the source code for CP02P1.CBL is different for versions 8.5 and 8.6. Also, the new expanded laser picking ticket program, CPPICPRT.CBL, is only called under version 8.6 if Global Setup is configured to do so.
CS2305 IF ELLIOTT-VERSION > "8.5"
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
Version 8.5 called the original version of the program. To support printing on forms in version 8.6, the primary processing logic was commented out in the 8.6 version of CP02P1.CBL and was added to the copybook CP02P1.PL. A COPY statement for CP02P1.PL was added to the 8.6 version of CP02P1.CBL. See the diff below:
The new CP02P1.PL with the logic from CP02P1.CBL:
CPPICPRT.CBL, a new program with form logic, has been created for version 8.6. It shares the processing logic in CP02P1.PL. It also has a new copybook CPPICPRT.PL that contains all of the form logic.
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.
|
When making changes to the picking ticket program you need to do the following:
Change the 8.5 Version of CP02P1.CBL
You can run a three-way Araxis merge between the G:\nsi.src\85\CP02P1.CBL, your working copy of CP02P1.CBL and your working copy of CP02P1.PL to determine the changes that were made. Apply the processing changes to CP02P1.PL.
For example, if the following lines in bold were changed in CP02P1.CBL:
CC1005 IF WS-NS3-CUST-CODE-CHK IS = "Y"
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.
A three-way merge between G:\nsi.src\85\CP02P1.CBL, your working copy of CP02P1.CBL and your working copy of CP02P1.PL would show that the change to CP02P1.CBL should be applied to CP02P1.PL:
If making changes to the printing logic, check to see if the changes are applicable to CPPICPRT.PL.
Change the 8.6 version of CP02P1.CBL with any printing logic changes applied to the 8.5 version of CP02P1.CBL.
8.5 Changes/Testing
Copy CP02P1.CBL from G:\nsi.src\85 to your 8.5 working directory (such as F:\nsi.pjt\85\cls).
Make the changes.
Compile code for debugging.
Add code to RU850C.LBR, RU850V.LBR, or RU850E.LBR.
Test the code.
Apply any applicable changes to CP02P1.PL and CPPICPRT.PL.
8.6 Changes/Testing
Copy CP02P1.CBL from G:\nsi.src\86 to
your 8.5 working directory (such as F:\nsi.pjt\86\cls).
Copy any changed copybooks from
your 8.5 working directory (F:\nsi.pjt\85\cls) to your 8.6 working directory (F:\nsi.pjt\86\cls).
If you changed CP02P1.PL or CPPICPRT.PL, copy CPPICPRT.CBL from G:\nsi.src\85.
Make any changes.
Compile code for debugging including CPPICPRT.CBL if
you changed CP02P1.PL or CPPICPRT.PL
.
Add code to RU860C.LBR, RU860V.LBR, or RU860E.LBR.
Test the standard picking ticket and the picking ticket form.
Push Code
Copy programs and copybooks from 8.5 test directory to G:\nsi.src\85
Copy CP02P1.CBL from 8.6 test directory to G:\nsi.src\86 (only source code that originated in G:\nsi.src\86 should be copied)
Compile the changed programs from G:\nsi.src\85
Build the RU850U.LBR from G:\nsi.src\85. Run PUSHLBR.
Build the RU860U.LBR from G:\nsi.src\86. Run PUSHLBR.
CLS