Skip to content

Version 8.6 CP02P1 Changes

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:

  1. 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).
  2. Change CP02P1.CBL in 8.5 (8.5 CP02P1.CBL does not use CP02P1.PL).
  3. 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.
  4. 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.elliott.com/knowledgebase/articles/2005432-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.

Changes to CPPICPRT.PL or CP02P1.PL will need to be tested under version 8.6 using both the standard (CP02P1.CBL) and the laser forms (CPPICPRT.CBL). See https://support.elliott.com/knowledgebase/articles/2005438-debugging-cobol-code-in-elliott-8-6  for more information on how to set up your 8.6 testing environment.

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

Feedback and Knowledge Base