Put away strategies for purchase orders – possibilities, performance, and improvements in CU8


This document covers how the location directive search works with purchase orders and describes how different settings and parameters can impact the performance of the search.

This document also introduces a new location strategy, Empty location with no incoming work, which was introduced in Microsoft Dynamics AX 2012 R3 CU8 to improve performance in scenarios where empty locations should be located.

The way in which the search works may vary slightly for other inbound documents but the overall concept is the same.

High-level overview

The search for put away locations consists of several levels, where each level narrows down the search:

  • Location directive level
  • Location directive line level
  • Location directive action level

To optimize the search, it’s best to find a search criteria that qualifies on the first attempt.

The following screenshot shows a location directive set up for a purchase order.

When put away locations are determined for a purchase order line, the location directive search begins by selecting the location directive records based on criteria such as warehouse or directive code, and order the records by sequence number.

The query that can be set up on this level is executed to determine if the location directive qualifies for the purchase order line. If it does not qualify, then the next location directive record is used.

If the location directive record qualifies, then the search is narrowed further by selecting the location directive lines and ordering them by sequence number.

Each line is examined to determine if it qualifies, based on the quantities and units that are being received. If it does not, the search moves to the next line. If the line qualifies, the search is narrowed further by using the location directive actions, which are selected and ordered by the sequence number.

The configuration of the location directive action has the biggest impact on the performance of the search. In order to achieve the best search performance, the location directive actions should be configured so that they qualify the fewest usable locations. The location directive action will determine the query that returns the locations that will be examined.

The performance depends on when a suitable location is found within the returned result set. The location will be examined by applying different constraints, such as the constraints coming from the location profile.

If the first location does not qualify, the search will continue by examining the next location until a suitable location is found. This is illustrated in the following scenario.


Keep in mind that when fewer locations are examined, the performance of the location directive search will improve.

Location directive actions

Location directive actions have a few settings that directly determine the put away strategy.

To achieve the most effective search, it’s important to choose the right strategies and have them applied in the right order.

The location directive actions for put away allows three different strategies : None, Consolidate and Empty location with no incoming work.

The None strategy

This is the default strategy which should be interpreted as no special strategy is going to be used.

The Consolidate strategy

The consolidate strategy will modify the query that is defined for location directive action, so that it only includes the locations that match the original query and has physical inventory of the item that is being allocated. If the consolidate strategy is used, at least one other strategy is typically required to ensure that a location can be found for items that are not already in inventory.

The consolidate strategy has the potential to be fast because it typically qualifies only a few locations.

The empty location with no incoming work (new in CU8)

The empty location with no incoming work uses a query to select empty locations. The location is considered empty if it has no physical inventory and it has no expected incoming work. This is the most effective way to locate empty locations.

Developer hint

· The main method to modify if a new strategy is introduced is the \Classes\WHSLocationDirective\performStrategy method.

Fixed locations

If the location directive action has the Only use item fixed location field set, the query defined for the location directive action will be modified so that it only includes locations that are fixed locations for the item that is being put away.

Using fixed locations has the potential to be fast because it typically qualifies few locations.

The AX 2013 R3 CU8 update introduced the ability to use fixed locations for product variants.


Filtering locations only by location profile

If the location directive actions query is set up so that it only filters on, for example the location profile, all locations that match the profile will be selected for further processing.

Determining if a location can be used for put away

The location directive set up for put is used to find the locations that qualify as put away locations.

However, several other settings may impact whether a location can be used for put away for a specific receipt of a quantity of an item in a unit. These settings can only be evaluated after the location is known, after which they will be applied to the locations returned by the search one at a time, until a location is found.

Location limits

If a location limit is used by the location, then it can only be used for put away if the quantity that is being put away is within the available limit. To determine how much can be allocated to a location for the current physical inventory, the open work and the work created by the transaction needs to be calculated, which can be performance intensive.

The AX 2013 R3 CU8 update introduced the ability to define location limits for product variants.

Mixing rules

On the location profile you can define if mixed status, items, and batches should be allowed.

If the profile for the location that is being examined does not allow mixes, then the items/batches that are on the location and the items that are about to be moved to the location, must be examined to determine if the location can be used.

Volumetric rules

The location profile can be set up to define if volumetric should be used. If volumetric is used, then the volume or weight that is stored on the location and being processed on the location, will have to be calculated.

From a performance perspective, it can be expensive to use volumetric because the system might need to calculate the weight and volume of all the items that are already in a location, and it must also include work and temporary work created for the calculation.

Comments (19)

  1. SGilbert says:

    NOTE: Location Stocking Limits has limited functionality in situations where your locations allow multiple products.  The stocking limits can be setup by product (or product variant) however when determining if a putaway can be performed the system compares the item/location stocking limit to the total quantities of all products in the location.

  2. Maurice says:

    Good introduction. The search is further impacted if lines are setup  with multiple quantity breakdowns and or constraints for certain units of measure.

  3. Lorenzo Migazzi says:


    I have done test on put away strategies for purchase orders and discover that is not possible to use directive code on a Put work template line. In general seems that directive code can be used only in output work template.

    Is it true? Do you know why?

    Thanks & best regards

  4. That is not true. You can set up a directive code on a Put work template line for, say, Purchase order, but only if you have at least 2 pick/put pairs.

    So if you have


    Put (with directive code) (like QMS)


    Put (can't set directive code, as this is the final put)

    1. Pootree says:

      why i cant set directive code on final put??

  5. Lorenzo Migazzi says:

    Thanks Ivan for the immediate response!

    I'll try it and I'll let you know if resolve my problem.

    Best regards.

  6. Lorenzo Migazzi says:


    I solved my problems with Directive code (thanks Ivan).

    Now I tripped on one constraint about "empty location with no incoming work" strategy; it is not possible use this strategy with "Inventory movement" work order type.

    So, when I need to find an empty location for a put-away movement from QMS location to bulk location and this is done with an "Inventory movement" setup, the system tell me that it is not possible.

    Thus, I was forced to make a change to the code, enabling this combination also.

    The change seems work OK, so I do not understand why by design this is not allowed.

    This can be a change that can be brought in the standard?

    There is another way to do what I need?

    Best regards.

  7. Create a support request and we'll see if that can be changed

  8. Lorenzo Migazzi says:

    Hi Ivan,

    like suggested by you, I opened an incident.

    Its number is 115051812743332.

    Thanks & Best Regards

  9. Parashar Banerjee says:

    Thanks for your lovely Blog.

    I just wanted to know how does this Volumetric rules work for WMS?

    Do we need to enter manually or system will calculate automatically?

    For example> Suppose my Bulk Location have a capacity of volume 100. And i have 10 items having 10 volume for each. So for Bulk location 100 volume is fulfilled. Now if i have an 11th item in the Bulk Location, what will happen?

    Thanks a lot in advance.

  10. Jason C says:

    Great article.

    I am currently testing the put process with a client that looks to work for part of their business.  

    They have a process and request where they were wanting to consolidate a delivery that has numerous PO's received on the one truck but can have very much mixed items for each purchase order.  Is their a process to consolidate all the PO's that have come in on the truck then receipt and put these PO's away in the one process?  So instead of pick/put for the one PO, consolidate the numerous PO's and putaway for a more efficient handling of incoming goods?

    Current receive process wants the one Purchase Order in the mobile device.  I was thinking a work step to consolidate numerous receipts would be a way of handling this?


  11. Chris D says:

    Hi Jason,

    I'm not sure I totally understand the requirement but you may look to do a two step receipt with the second step, moving the items from receiving to bulk, with the user grouping option selected on the mobile device menu item.

  12. AX_world_2016 says:

    Hi Prashant,

    Could yo figure out, how to work with  the case you have narrated? I am also facing same issue. The system does not stop one the location profile volume is exceeded.

  13. TC_AX says:

    Hi Jason,

    You can consolidate all purchase orders by assigning them to a single load using the Load planning workbench. You can then receive against the load, instead of each individual PO.

  14. Berra says:

    I need to define a Location stocking limit that tells the system to not allow more than ONE license plate on a location (no matter what the quantitiy or volume is on the license plate). How can I accomplish this?

  15. Roberto.B says:

    How can I set it up a strategy where I try to empty a location instead of picking from a full location?

  16. Lennart Conrad says:

    Hi Bertil

    Currently you can only achieve the max-one-lp per location when using multisku receiving. Here the location directive search will use the default license plate unit that is setup on Warehouse parameters and look for a location stocking limit on that unit.

    We are hearing this request from more customers but in order for us to have data that supports our prioritization it would be great if you can create a support request – it will be a DCR though.

    Best regards

    Lennart Conrad  – Microsoft

  17. Novice says:

    I how can i record damage goods during pallet receiving/PO receiving????


Skip to main content