Sales Order Holds and Hold Codes

The following tables list the various holds that can be placed on orders automatically by the system, or manually by the user (depending on the users release rights).  Some holds apply to the entire order (credit, terms, order margin), while other holds may apply to a specific line item on the order (price, inventory class, line item margin).

Each of the Hold Codes described in these section can be enabled or disabled based on system parameters.

Sales Order Hold Codes – Order Based





Account Hold

Account: When an order is entered the system checks the customer record in the Company Master to determine if an order may be accepted for the customer.  If the STATUS field in the Company Master is "I" (inactive) or X (out of business) the system will not allow an order to be entered for the customer.  If the STATUS field in the Company Master is "H" then the system will allow the order to be entered, but it will place the order on A or account hold. 



Terms: Each record in the Payment Terms Table contains an "Autohold" field.  If the Autohold field for a specific payment term is set to "Y", the system will place each order entered with those terms on hold as the order is saved.



Credit Availability: When the operator selects a company to enter an order the system checks if the company has any available credit.  If not the operator is warned and the order will be placed on hold.  This check takes into consideration not only the customers A/R balance but also the amount of goods currently on order.  After the order is entered, as the order is being saved the system performs this audit again to be sure the customer has not gone over their credit limit during order entry.  The "use limit" flag in the customer master controls whether or not the credit limit is checked.


Schedule Date

Schedule Date Exceeded: This hold is placed upon a sales order line by the allocation routine if the sales order is more that a defined number of days past the schedule date of the order.  When this hold is placed an email message may be sent to the salesman responsible for the order.  This is designed to allow the salesman to follow up with the customer if the products are still needed.


EDI Order

EDI Hold: This hold is automatically placed on orders that are received by EDI or the WEB if the appropriate flags are set.   The flag for automatically hold orders received via the WEB is F248: WEBHOLDA.



Loaner Order:  If an order is entered as a Type L or Loaner sales order – which allows goods to be shipped to a customer at no charge, the system will automatically place an H hold on the order.  This hold is placed as long as the F248 parameter, SOHOLDLO is set to Y.


EDI Duplicate

EDI Duplicated Order Hold: This hold is automatically placed on orders that are received via EDI. This flag is set when processing a duplicated EDI order; specifically processing incoming orders with duplicated PO#.


Tax Certificate

Sales Tax Certificate Expiration: This hold is placed on an order header when the order is a resale order and the expiration date for the tax certificate in the Shipto address record used for the order is less than the current date.


Order Margin

Order Margin Hold: A hold for order margin is placed on the order when the minimum GPM on the order is less than the value defined in F248: SOMINGPM


Operator Defined (SOE)

Operator Defined Hold:  The Q hold is used as an operator defined hold.  This hold code can also be manually added to an order in order entry before the order is saved.



Sales Rep: Each record in the Sales Representative File contains an "Autohold" field.  If the "Autohold" field for a specific sales rep is set to "Y", the system will hold any orders on which the sales rep is used as the orders are being saved.



Shipvia Hold: Each Shipvia record contains an "Autohold" field, which if set to "Y" will cause the order to be placed on hold as the order is saved.    The S hold option can be used to hold orders that have undefined shipping methods (such as “BESTWAY”) to your freight routing department, so that the correct freight method can be selected.  There is also a Shipping Hold option that can be used to add the S hold to an order when it is reset in the Reset Picklist program (this option is used when an order with an invalid shipping method is printed, and it needs to be sent back to your freight routing deparment, so they can edit it and select the correct shipping method).


Terms Relaxation

Terms Relaxation: During sales order entry the order terms default to those terms set up for each company in the Company Master.  If operator changes the terms on the sales order, and the terms have a higher risk level than those terms assigned to the customer (in the company master) the operator will be warned and the order placed on hold.  The terms relaxation audit is based on the "risk level" field in the terms table.  A risk level of zero is the lowest and 9 is the highest.  During order entry the operator may change the terms of an order to terms with the same, or a lower risk level without the order being held.  The special risk level of -1 may be used to disable the credit checking function to allow the shipping of COD CASH or PREPAID orders.


Minimum Order Value

Minimum Order Value (U): Orders under a certain value may be automatically held based on the "Minimum Order" field in the customer master record.  If this field is set to 0 in the Customer Master file, the system does not check the order to make sure it meets the minimum requirement for the customer.  If the field is set to a value above zero, the system will place a below minimum order amount hold on any order which does not exceed the amount specified for the customer.


Maximum Order Value

Maximum Order Value (V): Orders over a certain value may be automatically held based on the "hold over" field in the customer master record.  If this field in 0 checking for this is disabled



Warehouse Hold (W): When a picklist is reset in the warehouse the order is automatically placed on a warehouse hold.


Transferred Order

Transferred Order Hold (X): When sales orders are transferred into the system from a third party application the convention is to place them on an “X” hold until they have been reviewed.


Return Authorization

RA Hold (Z): The system can optionally place replacement shipment sales orders on hold to allow review.


Credit Card

The System uses numeric hold codes for automated (9) and manual credit card processing (1)

.Line Item Based Holds

As each sales order line item is entered or edited, the system can check the line for several different criteria.  If a hold needs to be placed on an order line, the hold code is added to the line item holds field, and it is also added to the order header holds field.  The hold character from the line item appears in the order header hold string field  to allow operators to easily see that the order (line) is on hold. The system places and removes line item holds automatically and the operator may not manually add or remove holds from a line item – except by releasing the order hold (hold release processing  is order based, not line based).  The header and line item hold strings are kept in synch by the system and it removes the line item hold when the header hold is released.  The system generated line item holds are:

Sales Order Hold Codes – Line Item Based





Product Group

Group Hold: If the item being sold on the sales order belongs to an inventory group that is set to hold, the line item will be placed on hold.  The group record pointed to the catalog item being sold must have a status of H for the hold to be placed.


Catalog or Inventory Item

Inventory Item Hold: If the status field in the inventory item being sold is set to "H" the system will hold all order line items for that item.


Product Class Hold

Class Hold: Items that have a class code that is listed in the F248: SOCLSHLD parameter will be placed on hold


Product Line Hold

Product Line Hold:  If the item being sold on the sales order belongs to a product line that is on hold (the status is set to "H") the order line will be held.


Margin Hold

Margin Hold: This hold flag is placed when the gross margin on the line item is below the margin that is defined in the inventory master record.


Price Hold

Price: As each line item is entered, during order entry, the system calculates a "target price" which is displayed for the operators’ acceptance.  The target price is based on a whole series of parameters that are described in the "Target Price" documentation.  As the operator saves the line item the system checks if the price was changed from the target price calculated by the system.  If so the system prompts the operator to select a "price change reason" to justify the change from the target price

Hold String (Header): The order header contains a field into which the audit procedure(s) move a one character code for each of the "holds" which have been placed on the order.

Hold String (Line):  Each line item also contains a hold string that is loaded by the line item audit.  If a character appears in one of the line item hold strings the character will also appear in the header hold string.

Sales Order Hold Record:  Any time a hold (line item or header based) is placed on an order, a record is created in the SOHOLD file for each of the holds.  The SOHOLD record is assigned to a specific operator – based on the type of hold being placed and other system options.  The SOHOLD records allow different holds to be assigned to and released by different operators.

The System audits each sales order as it is created and or edited, and it may place one or more holds on each order.  Some holds codes or reasons are based on the whole order and are referred to as header based holds.  Examples would be a hold based on the payment terms or the total margin on the order.  Other order holds can be line item based.  An example might be a margin or price hold for a specific order line.   The Header and Line item hold codes supported by the system are described in the following sections


Hold Processing Overview