Code highlighting

Showing posts with label work exception. Show all posts
Showing posts with label work exception. Show all posts

Sunday, September 18, 2016

Tutorial: Dealing with rush orders or the skill of "Ship now" in Dynamics AX

Introduction

Quite often, situations happen in supply chain which require the warehouse to handle rush orders, meaning that they need to ship the same day, if not immediately.
At the same time, the normal levels of data accuracy are still expected, meaning workers cannot just ship the goods without simultaneously registering everything in AX, as to not allow the data to get out of sync with the real world.

But, even though this situation is quite common, Microsoft Dynamics AX does not handle it quite that well. Specifically, once the work is created, you can't ship the load until after all work has been executed, including any intermediary stages (quality inspection, packing, etc.)

An alternative scenario is when delivers to a customer are done on a regular basis, using a third party logistics provider like UPS for deliveries, and per agreement their transportation vehicles depart from our docks at a particular point in the day. In such cases the workers may get instructions (or make the decision on their own if experienced) to skip certain picks and just ship what has already been picked, just to make the cutoff time. The remaining goods would be then shipped with the next planned delivery.

Today I would like to show one of the possible ways of achieving better results in the above scenarios with the out-of-the-box functionality in Microsoft Dynamics AX by showing two features:

  • Skipping non-mandatory work lines
  • Short picking without impact to the inventory but with load line qty reduced

Walk-through

I have created the following sales order in AX, which turned out to be a rush order, so I need to avoid the staging step I usually go through when picking such items, and instead, take the items directly to the bay door, where the truck is already waiting.

Note. For the purpose of the demo, I only have 2 items and no prior picks completed.

Rush sales order
The sales order has already been released and the work looks as below:

Open Work order
Now, since I want to rush this order, I am going to skip the staging step. How do I do that?
Well, for this to work, the corresponding lines in the work template used to create this work must have been set up as optional (Mandatory flag was not set)
Luckily, that was the case for this order, so I can move on to step #2, actually skipping these lines.

That is done from the Load by selecting the "Skip non-mandatory work" button, as shown below:

Load in Waved status with "Skip non-mandatory work" button
Note. You can only skip non-mandatory work on an order in Open status right now

Now the work looks like below. Note how the work class has been updated to enable the initial picker to load the goods as well

Open work order, where staging lines are skipped

OK, so let's execute this work now. We'll use a standard mobile device menu item with user directed work execution method.

The worker picks the first item from the picking area very close to the outbound dock, as shown below.

Initial pick instruction from a Picking area

However, the next pick he's instructed to make is in the bulk area, as nothing was left in the Pick area and the item has not been replenished yet.
Walking over to that area takes a whole 30 minutes, and John knows that he needs this order to ship in 10, so he makes the decision (or is called by the warehouse manager with instructions) to not ship this item now, but do it the next day or whatever the agreement is with the customer.

For this, he's going to short pick this item. Since we are not going to pick any items, he'll enter the quantity of 0, and select the reason for short picking - Ship Now, which we'll talk about in a minute.

Short pick with reason = Ship Now

After confirming the short pick, he'll immediately be asked to put the items he did pick (in our example just 1) to the BAYDOOR location, since we skipped the other lines

Put directly to Baydoor

As a result, the work looks like below:

Work in status "Closed"
All work lines have been Closed, and as you can see the remaining quantity is 0 for both picks, and for one of them the work quantity is also 0, since that was the line we short picked.

Now, hold on, you might say. I do not want to short pick these items - does that not tell the system that the items are actually not there, and in many cases adjust them out or create cycle counting work? 

Not in this case. See the setup I have done for the Ship Now work exception below:

Short pick work exception "Ship Now"

As you can see, I have not selected to create cycle counting work or adjust these items out. All I selected was to Automatically decrement shipment or load

What that means is that on-hand will not be impacted in any way, however the quantity on the respective load line will be decreased, essentially taking this item off the load. Note that the source document line (in this case, sales order) is not impacted, since the customer still expects those goods. We do not currently support also reducing the quantity on the sales order. You will have to use the "Deliver remainder" function from the sales order line explicitly to achieve that.

So, let's take a quick look at the load now.

Load in status "Loaded", where 1 line has 0 qty
As you can see, the status of the load has been updated to Loaded, meaning all the goods planned for this load are on board. 

You can read more about the various statuses of the Load/Shipment in my previous blog post:

 That means we can now ship this load, as shown below:

Load in status "Shipped"

Hope this will help some of you avoid unnecessary customizations

Let me know if you have any questions.

Tuesday, January 05, 2016

Tutorial: Locations with open work exceptions in the new release of Microsoft Dynamics AX

Background

Microsoft Dynamics AX or, for that matter, any ERP system relies heavily on the information entered by the users. But, as we all know, in real life the data in the system frequently gets out of sync with the actual state of things.
In the Warehouse management module, when work is created, it is based on the on hand information (what we have and where we have it) as reported in the system. When work is executed, however, a real person, namely a warehouse worker, goes (or drives out) to the specified warehouse location to pick up the goods. But what if the item is not actually there? These kinds of discrepancies in AX 2012 are reported as work exceptions. Depending on your system configuration, the warehouse worker can create a work exception of one of the following types:
  • Override the location and search or directly input a new location, if the worker has knowledge of where else to find this item
  • Register a ‘short pick’, simply picking less than instructed, and rely on AX to handle the remaining pick requirements. You can read about this type of work exception in my previous blog post at http://kashperuk.blogspot.com/2015/07/tutorial-short-pick-goods-on-mobile.html
As a result of these worker actions a work exception would be recorded in the Work exception log. Now, that’s good, but no follow up would happen on these exceptions unless somebody explicitly went in and investigated the log, looking for patterns and possible ways to re-route or cancel the work one entry at a time.

Solution

With the release of new Dynamics AX we decided to do something about that. Relying only on that same information already recorded by the system (a few minor enhancements were done, where we now capture even more info) we have built a form for the Warehouse planner, where he can get an overview of any on-hand discrepancies in warehouse locations and take appropriate action on any exceptional situations right away, potentially avoiding delays in delivery of goods.

In this post I would like to walk you through the capabilities of this advanced form, which we called “Locations with open work exceptions”. Here is what it looks:


Locations with open work exceptions

The form’s primary purpose is to show the locations with problems, so the warehouse planner can do something about them, whether it is re-count, re-route, cancel work, etc. We show locations, where one or more work exceptions have been recorded and the state of the work exception is Open. A work exception is only relevant, if it has not yet been investigated, therefore we only show locations with Open work exceptions, also giving the warehouse planner the ability to mark the work exceptions as ‘investigated’ or ‘resolved’ by closing them.

The focus of this form is to streamline the outbound waves, so we only show work exceptions recorded during Transfer order and Sales order picking, limiting it even further to only the initial picks in the warehouse. So we do not, for example, display purchase order receipts, or exceptions recorded at the baydoor where the worker had to override the location as the lane was already full.

It’s a pretty large form with A LOT of data being shown. Let us walk through it from the warehouse planner’s standpoint, touching upon all of the supported scenarios. Once you get familiar with the different sections in the form, it actually gets pretty easy to navigate it.

Section 1. Understand the urgency

The warehouse planner needs to get an overview of the locations, where open short pick or location override work exceptions are currently logged. He needs to understand the urgency of following up on the exception to ensure the on-hand information is accurate for each of these locations. In order to do so the warehouse planner needs to understand the following:

  • When is the first work order line scheduled to be loaded (The scheduled load shipping date and time)? This is the date and time, when the load containing one of the pending work lines needs to be shipped, which drives how fast you need to ensure sufficient on-hand is available for picking on that location.
  • What is the location Id and which warehouse zone is this location in? For example, we might want to just ignore exceptions in certain zones of the warehouse, relying instead on periodic replenishment jobs.
  • What is the number of open work order lines for this location? That is, what other workers are going to come to pick something from this location in the near future. If there are none, it might mean that the urgency for follow-up on this location is much lower.
  • What is the date and time stamp of the last work exception logged for this location? That is, how recent is the report, maybe it has long since been resolved through other means like periodic (min/max) replenishment.
  • When was this location last counted? If it was counted recently, the work exception might not be relevant any longer. For example, if the date of the last count was after when the last work exception had been reported.
  • How many work exceptions were logged for this location and of which type? This could allow the warehouse planner to determine (depending on the business flows in the company) if there are any shipments that will be short, or if users were able to find on-hand somewhere else through overriding the location, in which case it might not be as urgent to follow up on this.
    • He can also drill down and look at the details of all the open work exceptions for this location, e.g., to see which orders are impacted.

The information described above is available in the grid on the left side and in the topmost fast tab, as shown in the screenshots below. 

You can use the built-in Quick Filter above the grid, as well as the Filter pane to narrow down the list to show only those locations that need an urgent follow-up. 

The Open work exceptions button will open the existing Work exceptions log form pre-filtered to the warehouse location currently selected.



Section 1. Navigation grid



Section 1. Location and Exception details
Section 1. Location and Exception details


The warehouse planner also has the ability to close all the work exceptions for the selected location. This way he can, for example, filter out all the ones that he’s not interested in, and update them to Closed one by one, using the Close work exceptions button above the navigation grid. Multi-selecting records in this grid is, sadly, not available.

Depending on the information presented the warehouse planner might decide that a re-count of the on-hand is in order, as a mitigation step for the work exception. He can create cycle counting work by location or by product, if he thought this would actually take care of the work exception reported. He could then close the exception and move on to the next location with problems.

Section 2. Understand which products have problems


OK, now that the warehouse planner has filtered out the relevant work exceptions, he can start to investigate them one location at a time. 
Each location can have one or more products stored on it. The warehouse planner can in the grid under Released products with exceptions see the list of all the products (the definition of course includes the product dimensions for each of them), as well as the inventory status and tracking dimensions for each product. He can then for each product review additional information to understand what can be done or if anything should be done at all.

Section 2. Released products with exceptions
Section 2. Released products with exceptions

Section 3. Understand immediate product demand

The above section also shows the quantity totals for the selected product on this location, allowing Wayne to quickly estimate the overall product demand and quickly judge if he can actually do something about the shortage:
  • Quantity of this product available on this location, as registered in the system. This might be useful if it was just a worker mistake, and counting could confirm or deny the correctness of the recorded on-hand quantity in the system, for example.
  • Quantity of this product needed on this location, as based on all open work order picking lines.
  • Quantity of this product incoming to this location, e.g. purchase order put away work lines, that could satisfy the pending demand for the product.
  • Quantity of this product available in other locations on the warehouse, that we could use to satisfy the demand directly or replenish the stock in this location.
The warehouse planner can then for the selected product and related inventory dimensions see all pending pick work lines, allowing him a quick overview of potential work exceptions in the near future if nothing is done. Two important pieces of information here, apart from the quantity required, are the Scheduled load shipping date and time, to judge necessary quantity availability, as well as the Blocked wave flag. If the work line is still blocked, it means we have a bit more time before the quantity must be available. 
Wayne can navigate to see the Work details for the selected line, if the information displayed in the grid is not sufficient for making the decision. He can also cancel one or more of the shown work lines using the Cancel work line button. He could choose to cancel the pending picks if, for example, there is in fact no quantity available to pick from / replenish from, meaning we won’t be able to complete this pick anyway, so there is no point in sending a worker over there and just getting a new short pick work exception created.


Section 3. Work order lines for selected product
Section 3. Work order lines for selected product

Section 4. Understand product availability at the warehouse

The warehouse planner needs to understand if he can make an emergency replenishment of the selected product to the selected location, thus satisfying the pending picks from there. The On-hand inventory for selected product fast tab allows him to do that by providing an overview of on-hand inventory available for the selected product (including all above inventory dimensions) at other locations at the same warehouse. 

Section 4. On-hand inventory for selected product

He can then select one of the locations with available on-hand and Create inventory movement work manually scheduling a move of inventory with all the relevant information pre-filled to move the goods to the location that is short. Note that only the on-hand that can actually be moved from the location is shown, meaning on-hand reserved for some other work, for example, is excluded.

Note, that a flag Has open work exceptions is displayed in the grid, which shows if there currently exists an open work exception for that location. The warehouse planner would potentially avoid trying to replenish from such locations, as the inventory on-hand registered in the system for that location seems to be wrong too, so the replenishment might fail, causing even more problems.

Conclusion

As you hopefully can see, this is a new awesome decision center for the Warehouse planner when it comes to handling exceptional situations in the picking flow. It is a very control-heavy form, but hopefully the above description helped clarify the intention behind all of the data shown.

Please let me know if you have questions or suggestions on how to improve the user experience / extend the flow here.

P.S. You can also view this blog post in Word if you want by following this link

Wednesday, July 22, 2015

Tutorial: Short pick goods on the mobile device in Warehouse management module of Microsoft Dynamics AX 2012 R3

Introduction

In a typical warehouse things go out of sync from time to time. So the inventory on-hand information registered in the system becomes different from reality, or what is actually there physically. But warehouse operations need to keep being executed, and such discrepancies should not block orders from being picked. That's why in Warehouse management in AX 2012 R3 we provide a flexible way to set up work exceptions of type "Short Pick". The warehouse workers will select short pick exceptions on their mobile devices in these exceptional situations. 

Business Case

HDMI cables 000147_202 and 000148_202 are very popular products and a lot of our customers buy them. On a particular day we have 3 orders for these items, and the sales department has confirmed and released 2 of them to warehouse, while for the third one they are still nailing down some details, so only reservation has been done to ensure we can promise the goods to the customer. 

John the warehouse worker is going to location LP-002 to pick the first item, but finds that the cables are not there, even though that is what it says on his mobile device. He will need to do a short pick, and because there is nothing (0) items available, he is instructed by his warehouse manager to select Reason = "Items not there - Adjust out". 

He then proceeds to the second location in the work order, LP-001, but the required pick quantity is also insufficient there. Only 2 cables are available in the location, instead of 10 that he needs to pick. He will need to do a short pick again. This time, he will select Reason = "Items not there - Count", as this seems to be right, the items were there, maybe they just got misplaced to a nearby location.

John then proceed with completing the picking route and delivering the picked items to the bay door.

Walkthrough

A complete walk-through of the scenario described above is available on my Youtube channel.


Brief summary

Here's a quick recap of what happens in the video for those who prefer reading. Screenshots of all the important steps are available on my OneDrive.

  1. 3 sales orders exist
    1. A sales order for customer 1101
      1. Sales line for 5 pcs of 000147_202, reserved physically
      2. Sales line for 10 pcs of 000148_202, reserved physically
      3. Order is released to warehouse, with work created as follows
        1. Pick 5 pcs of 000147_202 from LP-002
        2. Pick 10 pcs of 000148_202 from LP-001
        3. Put all to BAYDOOR
    2. A sales order for customer 1102
      1. Sales line for 10 pcs of 000147_202, reserved physically
      2. Sales line for 15 pcs of 000148_202, reserved physically
      3. Order is released to warehouse, with work created as follows
        1. Pick 10 pcs of 000147_202 from LP-002
        2. Pick 15 pcs of 000148_202 from LP-001
        3. Put all to BAYDOOR
    3. A sales order for customer 1103
      1. Sales line for 5 pcs of 000147_202, reserved physically (at level above location)
  2. John logs in to the warehouse mobile devices portal and executes work for first order
    1. As actual inventory in LP-002 is insufficient for 000147_202, he executes a Short pick
      1. Enters Pick qty = 0, Reason = "Items not there - Adjust out", does not enter License plate, and confirms the short pick.
      2. The pick line is now closed, work quantity on it adjusted to 0, along with subsequent impacted lines (in this case, the Put line)
      3. As a result of work exception setup "Adjust inventory", a new work order of type Inventory movement was created and is automatically executed and closed. It adjusted out 10 pcs of 000147_202 from LP-002.
        1. 5 pcs were adjusted as part of the current pick line
        2. 5 pcs were adjusted because of work exception setup ("Remove reservations" flag on Adjustment type used). This removed the reservation for sales order #3, as there is no on-hand available for this item anywhere else in the warehouse with the specified inventory status. If there was inventory available, the reservation would not get removed, as it does not matter which location the items are in on the sales line level.
        3. 10 pcs did not get adjusted, as they are physically reserved for an open work pick line, and we never touch open work. This work would now need to either be cancelled, or same as current one, short picked.
      4. Sales order is still in Released status. When inventory is available again, we will need to manually add the corresponding shipment to a new or existing wave and process it to create remaining picking work.
    2. John walks over to location LP-001 to pick item 000148_202, but inventory is insufficient there as well, so he executes another Short pick
      1. Enters Pick qty = 2, Reason = "Items not there - Count", enters the LP to pick from, and confirms the short pick.
      2. John will now enter the Target license plate, and then deliver the 2 items picked to the bay door.
      3. The entire work order is now Closed, as all operations have been completed for it.
      4. A new Open work order of type Cycle counting was created for counting location LP-001. This is based on the work exception setup "Automatically create cycle counting".
      5. The corresponding load line quantity was reduced from 10 to 2, as a result of work exception setup "Automatically decrement shipment or load". This means this particular load line is now ready for shipping to the customer
      6. Sales order is now in Partially released status. When the inventory is available, the sales order will need to be released again to create work for the missing pieces.

Hotfixes

These are some of the hotfixes you should download. I believe all of them made it into CU9.

KB 3046556 - The short pick functionality ends in an unhandled state during cluster picking
KB 3031012 - "No conversion definition found from" when processing a short pick for a work
KB 3071198 - Quantity is updated incorrectly when doing short picking on transfer orders
KB 3069579 - Print line in work shows wrong quantity after a short pick