question

Marco Baccalaro avatar image
0 Likes"
Marco Baccalaro asked Marco Baccalaro commented

Backorder queue strategy not working if more than one entry on list

In the list-backorder-order.fsm model I have a Source and 3 Processors that push the item to send to the "ItemsToMove" list.

In this list I have a field that calculates the distance between the place where to pick the item (up(value)) and the agv (the puller).

The Process Flow pulls from the list if itemtype = 1 and ordering items basing on distance.

I want to send the item with the nearest agv. So I set on the list the Back Order Queue Strategy to "ORDER BY distance ASC".

Flagging the "Allow Multiple Pushes Before Back Order Fulfillment" and going step by step I can stop the simulation in the exact moment the Processor2 puts the item on the list (591.13).

Now I have these distances:

AGV1: 20.37

AGV2: 0

AGV3: 111.66

AGV4: 38.19

And this works: the AGV 2 was chosen.

But if I activate "Use transport" on the Source2 and I repeat the simulation stopping again at 591.13 the only difference is that now I have 2 entries on the list.

Now it is not chosen the AGV 2 but the AGV 3: the back order queue strategy doesn't work anymore.

I don't understand why this happens.

What can I do? Thank you.

FlexSim 17.0.0
backorderbackorder reevaluationbackorder queue strategybackorder queuelist backorder
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

Jordan Johnson avatar image
1 Like"
Jordan Johnson answered Marco Baccalaro commented

This model is behaving as expected, although it probably isn't doing what you want. The issue revolves around the use the distance field in the Back Order Queue Strategy, when multiple items are on the list.

In your model, Source2 pushes an item on to the list, but that item has an itemtype of 0. No one pulls this item, because they are only pulling items with itemtype 1. Then, another item is pushed on the list. Now the list applies the Back Order Queue Strategy to sort the AGVs. It calculates the distance between each AGV and the first item on the list. This means the AGV closest to the first item on the list will be selected by the Back Order Queue Strategy. In your case, AGV3 is closest to the item from Source2, so it pulls. When it pulls, it gets the closest item with itemtype 1, which happens to be the box on Processor2, even though AGV2 is closer to that box.

Instead of using a WHERE statement in the AGV pull query, partition the list by itemtype, and then pull from the correct partition. That way, the item from Source2 won't interfere. This is because the Back Order Queue Strategy will calculate distances using the first item in the requested partition. I have updated your model to use this method: list-backorder-order-with-partitions.fsm. You will see that Source2 pushes an item on to the list, but that the issue is resolved.


· 1
5 |100000

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

Marco Baccalaro avatar image Marco Baccalaro commented ·

Thank you!

This was just an example, I actually have a more complex model to do where I have the WHERE condition on Pull to understand if the value (the box) on the list is enabled to be sent (based on dynamic fields).

So I think that I can resolve it by using two lists: one for all boxes that "may be sent" and the toSend one where I move boxes from the first list only when they are really "ok to be sent".

0 Likes 0 ·