Wave
Demand Replenishment(to fill) in Dynamics AX 2012 R3 Warehouse Management-
Challenge: Min/Max Replenishment Templates are the primary
mechanism for maintaining optimal levels in picking locations. Demand
replenishment is intended to be used as a supplement between Min/Max
replenishment cycles to ensure that sufficient pick face inventory is available
to meet wave demand. Our goal is to replenish up to the defined maximum
stocking level whenever we replenish a given picking location. This
should be done regardless of whether we’re replenishing through Min/Max
Replenishment or Wave Demand replenishment.
Solution: Let’s start with a brief description of our simple
warehouse layout. The diagram below shows that the two major areas of our
warehouse are Bulk Storage and Picking. Bulk storage contains full
pallets of inventory. The picking locations are all the same size and are
replenished up to their defined stocking limit from Bulk Storage.
Different SKUs will have different Maximum stocking limits due to size
variation, but the picking location stocking limits are always less than a full
pallet. Volume is often high enough during peak periods that we expect
some of our pick locations to turn over multiple times per
day. In order to maximize the efficiency of our replenishment
operations we need to ensure that replenishments are triggered on an as needed
basis, and that we always replenish to the maximum stocking level.
The warehouse picking
operations are setup to pick by order, but orders are released to the warehouse
in waves. We’ve determined that our optimal wave size will consist of 4
shipments. Order pickers will pick small quantities into picking tubs and
send them down the conveyor to the packing stations. The packing stations
will then pack the inventory into boxes and process the shipments.
We’ll use item A0001
and warehouse 61 in company USMF to demonstrate how AX can handle this
scenario. Here is a summary of the steps we’ll take to demonstrate this
scenario:
- Define fixed locations for
our items.
- Define the stocking limits
for our items.
- Ensure that our Sales Order
pick location directive is configured to always pick from the fixed
location.
- Ensure that our
Replenishment put location directive is configured to put to the fixed
location.
- Setup our Wave Demand
replenishment template to always replenish up to the stocking limit.
- Setup our wave template for
warehouse 61 to group by 4 shipments and process automatically when this
threshold is met.
- Ensure that our Wave
Template is configured to use Demand Replenishment.
- Setup our Work Template and
Location Directive to deliver to the packing station.
- Setup our Work Template to
create a separate Work ID for each shipment.
Define Fixed Locations
for our Items
USMF/Warehouse
management/Setup/Warehouse setup/Fixed Locations
Define the stocking
limit for our items
There are several ways
in which you can set your stocking limits. This could be done through volumetrics
on the locations and items, or you can set a fixed limit. We’re going to
set a fixed limit, but we’re going to do so through the use of a unit
conversion. This could also be done by setting a unique stocking limit on
an item/location basis.
We’ll start by
creating a new Unit ID called “PickMax” under USMF/Organization
administration/Setup/Units/Units.
Next we’ll establish a
unit conversion between PickMax and Pcs for item A0001. The following
shows that the unit conversion is 100:1 for PickMax:Pcs.
Now we’ll indicate
that all of our picking locations have a maximum stocking limit of 1 PickMax.
USMF/Warehouse
management/Setup/Warehouse setup/Location Stocking Limits.
Ensure that our Sales
Order pick location directive is configured to always pick from the fixed
location.
USMF/Warehouse
management/Setup/Location directives
Ensure that our
Replenishment put location directive is configured to put to the fixed
location.
USMF/Warehouse
management/Setup/Location directives
Setup our Wave Demand
replenishment template to always replenish up to the stocking limit.
This is accomplished
by setting the replenishment unit on our replenishment template to the newly
created PickMax unit. The Wave Step code will be used in the Wave
Template setup to link this replenishment template to our wave template.
Note: The
Contoso data has a restriction under Select Products that we’ll need to remove
in order for this to work properly.
USMF/Warehouse
management/Setup/Replenishment/Replenishment Templates
Setup our wave
template for warehouse 61 to group by 4 shipments line and process
automatically when this threshold is met. Ensure our wave template is
configured to use Demand Replenishment
USMF/Warehouse
management/Setup/Waves/Wave Templates
Setup our Work
Template and Location Directive to deliver to the packing station
We’ll be using a
directive code to tie the Put of our Work Template to the correct Location
Directive. This is done using the Directive Code as seen in the
screenshots below. Our location directive will be configured to deliver
goods to the packing station location. In addition to this, we’ll be
configuring a Work Break to ensure that we get a separate Work ID for each
shipment.
In order to establish
a work break, we need to make sure that we have Shipment ID as a sort in our
Edit Query form.
USMF/Warehouse
management/Setup/Work/Work Templates
Once we’ve added the
Shipment ID field to our sort, we can set it as a work break by clicking on the
Work Breaks button.
Now that we’ve defined
our work template, we need to make sure that we have a Location Directive that
is configured to deliver to our packing station location. Pay particular
attention to the Directive Code assigned in the screenshot below.
USMF/Warehouse
management/Setup/Location Directives
Processing
Now that we’ve
completed the setup, we’ll walk through a process to demonstrate how the system
will group shipment lines into waves, process them, and only create the work
needed to replenish up to the maximum stocking level.
The first thing we
want to do is make sure that we have some inventory for A0001 in our picking
location (06A01R2S1B), but not enough to fulfill all of our demand. In
this example I plan to have 45 on hand at the picking location, 500 available
at a bulk location, and total sales demand of 90 units against 10 different
sales orders. The 10 sales orders will represent 8 shipments due to
common delivery addresses on some of our orders. I’ll start by simply
posting inventory journals to get the following on-hand balances.
Now we need to enter
our sales orders. Remember that inventory needs to be reserved before we
can release to the warehouse, so I’m going to setup my AR parameters to reserve
automatically. This is done under USMF/Accounts receivable/Setup/Accounts
receivable parameters. We could also choose to reserve inventory during
the release to warehouse process by marking the “Reserve when orders are
released by batch job” checkbox on Warehouse 61.
The screenshot below
shows my list of orders. The highlighted orders will be consolidated into
common shipments during the release process. Note that this will only
happen because I have enabled the “Consolidate Shipment at Release to
Warehouse” checkbox on Warehouse 61. Based on this I expect to have a
total of 8 shipments on 2 waves when these 10 orders are released to the
warehouse.
Now we need to release
our orders to the Warehouse. We’ll be using the Automatic Release of
Sales Orders batch job found under USMF/Warehouse management/Periodic.
This is only one of
several ways in which orders can be released. I could also release my
orders one at a time from the Sales Order form, I could use the Release to
Warehouse form, or I could use the Load Planning workbench to create loads and
release by load. Given that our picking operations are order based, it
makes sense to simply use the batch job.
Based on our wave
template, work breaks, and warehouse setup the release process will result in 8
shipments split between 2 Shipment waves. These 2 waves will each have 4
Work Id’s to be processed. We also have a separate Replenishment wave
with 1 Work Id. Let’s review the results.
The screenshot below
shows our 3 waves. Notice that we have 2 shipment waves and one
replenishment wave and that both of our shipment waves require some amount of
replenishment.
We can review the
Shipments associated with each of our waves by selecting one of the shipment
waves and clicking on the Maintain Shipments button in the action pane.
Notice there are 2 shipments on our first wave (USMF-000000259) that do not
have an order number listed. These are the shipments that contain
multiple orders due to their common delivery address.
We can review our work
by going back to our Waves list page and clicking on Work in the action
pane. Notice that We have a couple of Work ID’s without an Order Number
listed. Once again, these Work ID’s are associated with our multi-order
shipments.
Let’s also make note
of the fact that the work id for order number 000879 is blocked. This is
because we cannot complete this picking work until our replenishment is
completed. We certainly wouldn’t want to tell the warehouse worker to go
pick these goods until the inventory is actually there. The block will be
removed automatically once the associated replenishment work is completed.
The work for our 2nd shipment wave is similar, but there are no consolidated shipments and
all of the Work Id’s are blocked due to replenishment requirements.
Our Replenishment Work
shows that we need to move 55 units from our bulk location to the picking
location. The reason we’re moving 55 is because we currently have 45 on
hand at the picking location, we have a total demand of 90, and our maximum
stocking limit is 1 PickMax/100 Pcs. In short, we can only fit another 55
into this location.
The end result once
all of our work is processed is that we will have 10 remaining in our picking
location which will be available for future orders. If 10 is below our
defined minimum, then our next Min/Max replenishment execution will create new
work to replenish up to our maximum. In addition, we may see more Demand
Replenishment work if we need to ship additional orders before our next Min/Max
replenishment execution.
No comments:
Post a Comment