The ODP system consists of two programs, a shell program that provides the user interface to select which pick list to print, and a print routine that actually prints the pick list once it is requested (demanded). When a "bunch" of picklist is to be printed the shell determines which ones should print and produces the cover sheet. The shell then calls the print routine, after printing the cover sheet, to print each of the individual picklists (if required).
Shell routine - The shell routine searches through the open pick lists using the <STATUS> index on the order header file (SOHEAD), open orders are checked in sequence of order number. When an acceptable order is found it is check to verify that lines on the order are for the current warehouse which is set when the program is started (default is operator location). If the order contains lines for the correct warehouse the order is selected and the print overlay is called.
The operator may select to print the next picklist, call for a specific picklist by number, or search for a specific picklist using a popup browse. If the operator selects to print a picklist that is already marked as printed the must override the system (and have F248 rights to do so).
Print routine - The print routine, called by the shell, prints one picklist. Only items available to pick are printed. These are defined as having the following criteria:
Order Status O (Open)
Order Type S or L (Sales order or loaner)
Allocated To_SHIP qty GT 0
Not Printed Printed flag NE "Y" in line item
Location Only line items with location set in shell program
When the print routine is called from the shell process the following arguments are passed on the command line:
Order Number The number of the order to print, if this is not passed the print routine prompts the operator for an order number.
Location The location to process. This string may contain multiple locations separated by equal signs as a delimiter to cause the print routine to include multiple warehouses. For example, passing a location argument of WHS=BUL=XXX will include line items from all three locations.
As the print routine prints the picklist the order line is updated to indicate that the picklist is printed, which keeps the shell from selecting this pick list again, or anyone from editing this order line.
The print routine checks the system control file to determine if backordered line items should print.
Invoicing Program - The invoicing program resets the PRINTED flag in the lines of the order being invoiced to allow the picking process to reconsider the order for selection. Only those lines for the location being processed displayed during invoicing and have their PRINTED flag updated. As system flag determines if backordered line items should appear during invoicing.