Customer PO Validation

The StreamV and the Stream II systems both allow you to force the entry of a customer PO on the sales orders that you enter into the system. 

Forcing the Entry of a Customer PO During Sales Order Entry

This option is enabled in both systems by setting the System Parameter F248:SOPOREQ to Y.  When this option is enabled, the Sales Order Entry program will prompt you to enter a purchase order number on each sales order.

In StreamV, the system will prompt for a PO (if not already specified) when you attempt to add the first line item to the order being entered and you must enter a PO before you may add any lines to the order.

In StreamII the system warns you that a PO is required when you use the USER key to move the Order Entry Line Item Screen.  The code then allows you to enter the lines for the order (prior to specifying the PO number) but it will not allow you to save the order until you have entered the Purchase Order information.

Checking for Duplicate Purchase Orders by Customer

The StreamV and the StreamII Systems also allow you to check for duplicate purchase orders for each customer during Sales Order Entry.  If the PO being used for the current order has already been used for other orders for the same customer, the system will display a warning to notify you (the system does not block entry of the order, it only warns you that the PO being used has also been used on another order for the customer).


In StreamV, the system will check for duplicate purchase orders for the current customer as the purchase order is entered into the order, and it will display the message “This may be a duplicate Order based on Customer PO#” if the specified PO has been used already for orders for the customer.  This message also displays the customer PO and the date and Order number of the sales order that contains the duplicate PO. Options in the prompt message also allow you to view the other order that was found by the system or to continue.

The StreamV system will perform the duplicates check as long as the System Parameter F248: SOPOTEST is set to Y, and as long as a purchase order is specified in the order (the system does not treat a blank PO as a duplicate).  The system will also use the system parameter SOPOSIZE to determine the number of characters from the PO to be used when checking for duplicates (the default for this parameter is 30 characters or the entire length of the field.


In the StreamII Application, the system will only perform the duplicate PO check when the system parameter F248: SOPOREQ is set to Y.  If this parameter is set to Y, the system uses the SOPOTEST parameter to determine if the PO duplicate check should be performed, and the SOPOSIZE parameter to determine the length of the PO field that should be tested.

If the SOPOREQ and the SOPOTEST parameters are both set to Y, the operator is forced to enter a PO into the sales order and the system will check for duplicates when you attempt to move to the Sales Order Line Item Entry program.  If you are using a duplicate PO and the duplicate PO is not modified, the program will also display the same warning as you save the sales order (and it will allow you to continue to save the order).

Please Note:  When you are testing for duplicate purchase orders in StreamII, the System Parameter F248:SOPOREQ should be set to Y (to force entry of the PO number for the customer), the parameter F248:SOPOTEST should be set to Y (indicating that the system should check for duplicate purchase order numbers by customer), and the parameter F248:SOPOSIZE should be set to the number of characters to be used when checking for duplicate purchase orders (this switch should be set to 30 if you wish to test the entire customer PO).

Customer Specific/Advanced Options

The system also supports part of the PO to be active, and the active part is what it uses to validate the PO. And that can be setup either customer-specific or system-wide.

And the validation sequence is as follows:

Then it checks if it has a customer specific Active PO size, by checking F18:F054DETL “CompanyPOActiveSegment”. If F18 record found for the customer, it uses Data_4 to identify the length of the active segment of the PO, and Data_5 to identify the staring position for the segment within the PO. If Data_5 is 0 (default), the starting position will be character 1. Please read Longcode document for more detail.

If no F18 record found for that customer, it checks F248: SOPOSIZE, a system-wide parameter, and uses it to identify the Active segment of the PO.


Customer Purchase Order Information