Transfer inventory to ship bin for pack out processing

I’m trying to automate fulfillment workbench so that a picker can press a button and the process picks the n highest priority orders that can be completely picked (available inventory) - no problems there. Some how I need to move the inventory to the MAIN SHIP bin.

I’ve traced the Material Request Queue when a picker presses “Process” for any given line item. Trace logs show it’s using IssueReturnImpl. Not sure why it’s not using InvTransferImpl, that seems like a more appropriate business object. Either of them might work, but not sure how to instantiate the IssueReturnDataSet.IssueReturnRow or the InvTransferDataSet.InvTransRow. Neither business object appears to have a GetNew allowing me to grab the first row and process. Neither supports a raw new instantiation. What is this thick head missing?

Steve,
What all are you using Fulfillment Workbench for? Just to sort out Order Priority or are you reserving & releasing for picking?
Releasing for picking populates the Material Request Queue table with all the transactions needed for the pick. Mtl Req Queue always uses IssueReturn to handle those presetup transactions. InvTransfer is for AdHoc Transactions.
I’m not sure what you are trying to accomplish exactly (business case). If you just want to find the top priority and available orders, you could ID those with Fulfillment Workbench and then use Mass Ship in Customer Shipment Entry. There are many ways to Fulfill orders in Epicor and there might be an easier way to accomplish your objective.
Once items in Fulfillment Workbench are released for picking and they show up in the Mtl Queue table it’s just a matter of processing those Queues through AMM ‘By Queue ID’ or ‘Material Queue’ program. Once you select a Queue ID (usually by scanning the Mtl Queue Report barcode or by selecting one from the Material Queue program) everything is already filled it and the picker just needs to confirm that pick. Not sure I understand the ‘click one button’ short cut since that bypasses all those confirmations but it depends on your business and warehouse setup.
Maybe something here will help you.

1 Like

Rick,

Thanks for the details. Basically we’re trying to avoid the fulfillment workbench for the majority of our picks. Why, at any given point, we have 4,000 open lines. If you run without filters, it takes 30 minutes to generate a list of orders to pick. Sorry, lines to pick. And it’s up to the operator of fulfillment workbench to make sure the select all line items for an order to ensure everything is picked and ready for ONE shipment at the pack out workstation.

In order for our shipping desk to operate efficiently, they have to filter so tightly that they miss orders that can be fulfilled by received items thought out the day. On top of this, if they miss a line, we pay shipping twice to complete an order. It’s the combination of things that makes this tough.

To that end, we’ve developed an application which scans orders when a picker says go. It returns a limited set of orders and / or lines based on parameters. Those orders are the highest priority orders based on criteria. I just need to complete the material transfer of the inventory from the bin location to the ship bin location so the pickers can complete the order; however, I have to involve the GL transactions as well, meaning I must follow what is in the trace logs for the transaction. Which is an IssuesReturn.

In my code against the BO or the rest api, I can create the DS - dataset, but I cannot create the DataRow in order to initiate the transaction.

HUGE added bonus of this approach, is it is a web base application and we can run it on our Android scanners.

A dashboard (with an auto-refresh every minute or so) may be more valuable. You could highlight orders that can be fulfilled,.

edit

We don’t use fulfillment workbench. We just create packers - which do all the inventory and GL transactions. Couldn’t your application just generate Packers, that the shipping folks then simply mark as shipped after they fulfill them?

I believe we could, but I think this would create extra work for each line packed out. They would have to search for the bin where they can relieve inventory instead of the ship bin.

In terms to the dashboard, how do pickers know what they are picking so they are not walking on each other.

The dashboard idea was just to identify the orders to be picked/shipped. A customization could take the order number selected, and auto generate a packer, including setting the “Ship From Bin” (which I assume is what Fulfillment WB does).

Calvin,
Would that be the same as Mass Ship in Customer Shipment Entry?

On the topic of missing lines, if the appropriate customers (all?) have ‘Ship Order Complete’ enabled, Fulfillment Workbench and Customer Shipment Entry will follow that, meaning Fulfillment Workbenh will not allocate/release short orders and Customer Shipment Entry > Mass Ship will provide a warning.

For your application, so the picker opens the app on the Android scanner and selects an option for ‘Orders’ and it returns a Sales Order. So do the Pickers then go around the warehouse and pick that order or does the picker confirm the order number and hit’s ‘Go’ for the application to do the picks?

If the application does the picking, that seems very error prone, how do you confirm the right things are being picked? I guess I do not understand how they are physically picking the items, because usually the use of the handheld is in flow with the physical picking.

We can’t do “Ship Order Complete” because of the nature of our products (many custom pieces). The idea of the auto picker is to select the orders that can be picked completely. It skips the orders with custom pieces and the shipping manager still uses fulfillment workbench to release partial orders for one of the eight pickers. Eventually, we’ll add logic to auto select the partials, but for now, the focus is on complete orders. Even the partial orders will be auto picked when the last piece is available. Meaning if the customer ordered 8 lines and 7 were inventory, the warehouse manager would manually release and have the 7 lines picked. When the 8th line was available, days later, all the open lines would have inventory (in this case just one line) and would get picked for pack out.

Literally there is a go button. Picker says go, program then selects the highest priority orders and lines until it reaches the limit for any given picker (process currently takes about 20 seconds). Throttles are number of orders, usually 4 to 8, number of lines, 20-50 and sometimes weight 50 lbs. They are presented a list of order numbers so they can write the order number on their collection bin. It then presents the list of lines to be picked in the order of bins in the warehouse. Picker selects a line, pop up opens and tells them bin, quantity, order and quantity in inventory (eventually showing image of part as well). Picker moves to location, selects product, scans bar code to confirm and then has 4 choices. Picked - hopefully obvious and this is where I would like to do the inventory transfer to the ship bin, Replenish - this sends an alert to the replenishing team that the primary bin is low on inventory and needs additional items, but the picker has enough for their order/line item. Issue - the quantity shown to be in the bin location does not agree with the physical inventory. This sends a notification to the cycle count team to figure out where is the discrepancy. Both Replenish and Issue are just notifications and do nothing with the actual line to be picked. The last is Quarantine - this places the entire order in a quarantine state. The picker puts a red cone in the order bin, but continues to pick the rest of the order. It then signifies the cycle count team to figure out why the picker was told there was inventory, when in fact there was not enough inventory to fulfill the requirements of the line item.

When picker selects picked or quarantine, it automatically moves to the next line to be picked. When last line is picked, it returns them to the go button and readies itself for the next set of orders/lines. Literally 1 click per line and a scan for verification, nothing to select - it’s selected for them vs. 3 clicks with material request form and no confirmation. Possibly a second click if inventory in physical location doesn’t agree with inventory in system or low inventory

This process eliminates the redundant multiple clicks that are part of the Material Request Queue. It also forces the picker to follow the snake pattern through the warehouse instead of picking one order at a time, which has them traversing multiple times through the warehouse (yes - training and management issue). And most important, it is not dependent upon running on a windows tablet.

I’ve looked at the Biscut product, which allows the app to run on an android scanner, but it does nothing to eliminate or reduce the need of fulfillment workbench.

If we had only a couple of hundred open line items at any given time, I don’t think this would be an issue, other than the god awful windows interface on a tablet for the pickers. But with a goal of getting the majority of orders (or lines minus custom pieces) out the door, if ordered before 2 pm, every click counts, every extra step adds work and time for our pickers.

1 Like

Pretty Much, without having to actually go through the UI of Customer entry. It could also auto select the Bin to pull from. If you don’t have a default bin assigned, you have to manually select the bin.

Again … I’m not familiar with Fulfillment Workbench, so it probably does things I’m unaware of. And I’m not following the need to do an inventory transfer prior to picking for shipment.

Steve,
Very nice solution, I really like how it handles the various situations that frequently happen during picking!
So with the Order Select process it sounds like you may be using Methods in the Fulfillment Workbench Object to filter and get the appropriate Orders.
I was drawn to this because I do a lot of work on the shipping end of things and have spec’d several different picking solutions. I think what you have described here sounds excellent and I that I can think of, there isn’t a provided way to do this with ‘base’ Epicor.

1 Like

Rick,

Thanks. I’ve worked a lot with our warehouse and pickers to streamline their process as much as possible. Actually I don’t use the methods from fulfillment workbench. I wrote my own algorithm’s reading directly from the database to determine which orders to start with. I’ve even spent some time picking myself in the warehouse, so I could understand first hand the issues they are running into.

I’m more than happy share code once I get it working. Figure it can only get better with more input.

1 Like

Calvin,

We don’t use the Mass Ship in Customer Shipment Entry in order to cut down on mistakes. When we did use Mass Ship, the double check on all lines and quantity was just too error prone. So pickers have to validate qty, then packers verify quantities to ensure we ship complete and correct.

Because we don’t use mass ship, the Customer Shipment defaults to the main warehouse ship bin for inventory, not the primary bin of the part. If we just let pickers pick, then the packers have to do an extra search to find the primary bin instead of default ship bin. I do not know if there is a way to have it default to primary bin. Saves a step in picking, but moves it to packing.

1 Like

Steve,
Just wondering if you worked out a solution to doing the inventory move from the primary warehouse to the shipping warehouse? I have a similar issue, but we are coming up for our first stock take and really want to just not include orders that have already been picked (saved shipments). Maybe I’m just missing the whole Physical Inventory process.

@Rick_Bird and @ckrusen comments suggestions appreciated.

From my testing I can see that setting the primary warehouse on the part sets the value on the order line release. So that is great, I’m assuming that adding BPM to the Mass ship process would do the inventory move for us.

I am wondering if it is as simple as setting the order defaults as above, but having the users take the printed pick slip with a barcode and scan with a modified Move Inventory form that defaults the warehouse and quantity from the stocking warehouse to the shipping warehouse. Forklifts move the parts from one place to another, so there is a clear process step there.

@Hally
It sounds like you would like to give the user a pick slip and have them scan a barcode to transfer from whereever to the Shipping Warehouse defined in Site Maintenance. If so, then Fulfillment Workbench is ideal.
You can try it with one order and see. So the basic steps would be:
-Fulfillment Workbench - Select the orders you want to Pick & Ship. Use Actions > Allocate & Release For Picking option to Print the Pick List with Mtl Queue barcodes.
-Use Handhelds to scan each Mtl Queue which will process the transfer from the Warehouse\bin Fulfillment allocated the inventory.
-Then in Customer Shipment Entry, use Actions > Picked Orders to select the Order to create the Pack and it’s Lines.

It takes some patience to go through and understand how everthing works, but once you get a hang of it, it’s pretty easy for everyone to do.
I have done some work for clients to smooth out the process abit. Things like modify the Report Design and add a BPM or two. For instance, they didn’t like that the person creating the Pack had to select each line of the Order, so I created a BPM that pop ups a BPM Form and they can scan\enter the order number, which filters and auto selects all the lines for just that order. Then on the Picked Order screen they can confirm they picked everything and create the Pack.

Thanks Rick,

Much appreciated.

Hally,

So sorry, just now seeing this. My apologies. Not yet. With Covid, the app kind of took a back seat. Hoping in next couple of weeks to pick it back up.

Regards,
Steve

1 Like