System-Directed Put-Away

This document explains the concept of system-directed put-away.

The purpose of this method is to increase the efficiency in the warehouse by letting M3 BE search for, find, and suggest the best locations for goods put-away.


The function program used for retrieving put-away locations is called MMRTVPAL.

This method uses a rule-based system to retrieve warehouse locations as a suggestion for putting stock away in the warehouse. The location retrieved will be dependent on the put-away strategy being used, the characteristics of the item (such as the ABC frequency class), and the quantity being put away. The same rules are used throughout the system regardless of the type of order being received.

Whenever a put-away location is suggested to a user in M3 BE, that location is found according to the rules of system-directed put-away. If a suitable location cannot be found, the location is left blank and the user must suggest a location, which will then be checked for limitations such as weight, volume and fill rate.

Note: If the quantity being received cannot be put into a single location (such as multiple pallets into a zone containing only single pallet racks), then no location will be suggested by the system. In this case, the user should start the 'Select Location' function, which is available from all stock receipt functions, usually by pressing function key F16.

Before you start

Refer to the settings in Basic Settings for System-Directed Put-Away.

Planning steps for put-away location setup

Stock Keeping Unit (SKU) storage methods

For each item, you can select from these storage methods:

Methods for selecting put-away location

During put-away, you can select from three different methods to select a put-away location:

Selection logic

The system goes through five steps when searching for locations. The first two are only used if the quantity being put away is less than a multiple (that is, the normal quantity for the location found).

  1. Try partly empty locations from connected location groups (current fill rate is < 100%). Return only a location if the full quantity or full multiple can be put away.
  2. Try partly empty locations according to the normal location type and stock zone search. Return only a location if the full quantity or full multiple can be put away.
  3. Try empty locations from connected location groups. Return a location according to the rules.

    Locations within each location group are searched by location type according to the setup in 'Item. Connect Stock Location Type' (MMS057).

  4. Try empty locations according to the normal location type and stock zone search. Return a location according to the rules.

    Locations are searched by location type according to the setup in (MMS057)

  5. Try the primary location from MITBAL.

The rules referred to are:

Selection logic - Suggest empty location(s)

Regardless of the logic used for finding the empty location, this flow describes those criteria that is used to determine suggestions on Empty Location(s).

For more information, see System-Directed Put-Away with Fill Partly Empty.

The use of multiples

Multiples are used during put-away to determine these:

The methods to find a multiple's quantity

The multiple's quantity is found according to first of these methods that applies:

  1. According to the normal quantity found for the location type in (MMS057)
  2. According to the order multiple for the item/vendor combination (only applies to purchase order receipts)
  3. According to the order multiple on 'Item. Connect Warehouse' (MMS002/F).

Manual override of system-directed put-away

Examples of system-directed put-away

These are examples of system-directed put-away:

Settings in M3 - Valid for all the examples


The API MMS160MI contains a set of transactions that can be used by an external system to simulate the system-directed put-away logic.


RtvPutAwayLoc proposes a location that can be used to put away a given item quantity at a given stage of an order-related receiving workflow. The location is retrieved according to the order setup, item setup and system-directed put-away rules. MMS160MI RtvPutAwayLoc mimics the location proposal seen in interactive receiving functions.

Transaction inputs are:

If one single location cannot be proposed, an error message is returned stating the reason why a location (single) could not be identified. For example, MM_0057 'Qty stored exceeds max for the location found - use MMS160 to spread over multiple locations'. Alternatively, an output with a blank location is returned.


ChkPutAwayLoc is independent of any order, answering the question "Can this item quantity be put away in that location?", according to the rules and limitations defined in 'Item. Connect Location Type' (MMS057).

Transaction inputs are:

If the location can accept the item quantity, the transaction output will relay the location and some of its properties.

If the location cannot fit the item quantity, an error message is returned stating the reason why not enough space is available. For example, MM90304 'Maximum filling rate exceeded' or XWS0101 'Location is occupied'.


LstPutAwayLocation mimics what 'Location Select – Available Locations' (MMS160) would propose when spreading a quantity to put away to several locations. It is not related to any specific order.

The result can be filtered per the location properties: location’s stock zone, type, status proposal, distribution ID, Location ABC class, transportation flow, group.

The item and quantity to put away must be provided.

Status of the balance ID to put away can be provided for a more accurate answer.

Note: If no status (balance ID status (STAS) or location status proposal (DEST)) is provided, the put-away location retrieval logic uses status 2 by default.
Related topics