Elliott generally follows a single-source strategy between versions 8.5 and 8.6, with source files maintained under G:\NSI.SRC\85. However, CP02P1.CBL is an exception.
During the Elliott 8.6 development, the legacy hard-coded pick ticket program (CP02P1.CBL) was refactored to share common logic with the new user-definable pick ticket program (CPPICPRT.CBL). Because this refactoring significantly changed the source structure, we chose not to apply it to the Elliott 8.5 version to avoid introducing risk for existing customers.
As a result:
G:\NSI.SRC\85\CP02P1.CBL is the original 8.5 implementation.
G:\NSI.SRC\86\CP02P1.CBL is the refactored 8.6 implementation that uses shared copybooks.
If a customer upgrading to Elliott 8.6 encounters issues with legacy pick ticket printing, they should temporarily use the Elliott 8.5 version while a fix is developed.
8.5: CP02P1.CBL contains all processing logic.
8.6: CP02P1.CBL and CPPICPRT.CBL shared common copybook CP02P1.PL.
CPPICPRT.CBL handles user-definable pick tickets. Most of its logic resides in three copybooks:
CPPICPRT.WS
CPPICPRT.PL (form-printing logic)
CP02P1.PL (shared pick ticket processing)
CPPICPRT.CBL resides in G:\NSI.SRC\85, but it is only used by Elliott 8.6. Compiling it produces CPPICPRT.INT for both the 8.5 and 8.6 folders. Elliott 8.5 does not support the Expanded Laser Pick Ticket.
Because CP02P1.PL is shared by both the legacy and user-definable pick ticket programs in Elliott 8.6, most future functional changes in Elliott 8.6 (excluding printing layout changes) should be made in CP02P1.PL.
It is unfortunately that when modifying CP02P1.CBL in the 8.5 source tree, you also need to review whether corresponding updates are also required for:
CPPICPRT.WS
CPPICPRT.PL
CP02P1.PL
G:\NSI.SRC\86\CP02P1.CBL
In many cases, only CP02P1.PL requires changes.
When making changes to shared pick ticket logic:
Modify CP02P1.PL in G:\NSI.SRC\85.
Apply any equivalent logic changes required by the standalone 8.5 CP02P1.CBL.
Recompile CP02P1.CBL using PC.BAT. Ignore the warning about the existing 8.6 copy; the compile updates both 8.5 and 8.6.
Recompile CPPICPRT.CBL using PC.BAT. Although its source resides in the 8.5 folder, it is only used by Elliott 8.6, and the compile updates both versions.
This version removes the repeated explanations about why the source trees differ, groups related information together, and focuses on the practical implications for developers maintaining the codebase.
|
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. |