question

Jim avatar image
0 Likes"
Jim asked Jim commented

Descrete order picking with replenishment when stock isnt available

Hello dear community,


In my model i am trying to create a picking process for my warehouse. The method that is used is descrete picking so i want to complete the orders one by one. I am having problems when i try to collect all the boxes of an order in a pallet on the pallet jack(taskexecutor) and then unload the loaded pallet at the queue used for the completed orders. Also, if there is not any available stock at the picking levels i want to check if there is available stock with the same sku, resume the order if stock is available and is replenished on the rack or sink that order if no stock is available and coninue with the next order. I would really appreciate any of your help! Thank you in advance.


Best regards,

Jim

Descrete_Picking_Process.fsm

FlexSim 21.0.10
warehousingorderpickingreplenishmentdecison point
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

1 Answer

Felix Möhlmann avatar image
1 Like"
Felix Möhlmann answered Jim commented

I made three major changes in your model to achieve this.

1) I split the "Order Picking" into two sections, so the operator first picks all items, then returns to the order pallets and unloads them all. (I also destroy any empty pallets. You might want to insert a more elaborate process to get rid of them here.)

1709889699658.png

2) When first searching for fitting items I added to things to the query: The queried pallet must have items left on it and the query should prefer pallets on lower levels.

Also, after a pallet is found I immediately decrement the "left" label. Previously you only did this once the item is actually removed, but this means that any number of tokens could have found that pallet in the initial search.

If no pallet could be found, the token is released through second connections (Max Wait Timer setting). It then moves its parent tokens out of the normal flow and to a sink. The main token first increments the "left" label of any pallets that might have been assigned up to this point.

Crucially, most Run Sub Flow activities are now set to "Run Tokens one at a time", since this logic only works if each action happens sequentially. Parallel queries might cause timing issues.

1709890006677.png

3) Finally, before the actual picking is started, I inserted an extra "Run Sub Flow" activity that sends one token per pallet to the "Restocking" flow. There I check if the pallet is currently sitting on one of the upper levels. If so, it is moved to a slot on the ground level. Once the main token continues, it is guaranteed that all pallets are on the ground floor.

1709890147695.png

descrete-picking-process-fm.fsm


· 10
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Jim avatar image Jim commented ·

descrete-picking-process-fm-test_1.fsmThank you so much for your help @Felix Möhlmann , i appreciate it a lot ! While i was testing the model i ran into two problems. First, when it tries to find a pallet at a higher level than 1, it just keeps the token on the find item command, even though there are some available. Why is that?1710201593953.png Second, is there a way to have a pallet on the task executor to load the boxes there and deliver the loaded pallet at the "For send" queue? I tried creating, moving or loading the pallet at the task executor, but it created a new pallet for each box being picked, am i doing something wrong with the placement inside or outside the picking loop? Thank you so much again for your time and effort!

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Jim commented ·

That's an oversight on my part. That Find Slot activity is not needed. The pallet that has to be moved is already known at that point.

The Find Slot activity below it should also not have a Max Wait Time.

descrete-picking-process-fm-test-2.fsm

0 Likes 0 ·
Jim avatar image Jim Felix Möhlmann commented ·
It works great, once again thank you so much!


0 Likes 0 ·
Jim avatar image Jim commented ·

Hello @Felix Möhlmann , i know some time has passed, but i was hoping i could get some help on a problem. When i put more different skus per order and increase the amount of picking orders, items from higher levels are recorded to order lines, even though there are pallets with items with the same sku available at the picking level. 1713437614157.png

So, when the restocking process is triggered, the token is stuck in the find picking slot activity since there are no avaialble slots at the picking level and thus, some orders are not completed. How can this be resolved? Is it possible, maybe, when the picking process is occuring, if there are available items with the same sku at picking level to pick them instead of the ones at the higher level that are initially recorded in the order? Thank you so much again for all the help you have given me.

picking-restocking-fm.fsm

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Jim commented ·
Are those items actually available, though? Or are they part of the same batch (or another batch) and the problem is the ordering of actions?
0 Likes 0 ·
Jim avatar image Jim Felix Möhlmann commented ·

Thank you so much for you quick reply @Felix Möhlmann! Well, the label "left" on the pallets, which shows how many items are left on them after all the orders have been created, is greater than zero , which indicates that there are still enough items available at the picking level. One other thing i noticed, is that when i changed the percentage which each sku appears in an order line, it may list the same sku as two different ones( two different lines that include the same sku) for the same order. Could that cause the problem combined with the re-incremetation of already found items for orders that cant be completed? If i have explained something incorrectly and i m not being very comprehensible please let me know so i can rephrase. Thank you so much for your time.

0 Likes 0 ·
Show more comments