question

Patrick Zweekhorst avatar image
0 Likes"
Patrick Zweekhorst asked Phil BoBo edited

Pull from list problem

Hi all,

We have a small problem when pulling tokens from a list. The problem is recreated in the attached example model. First a token tries to pull something from a list, but that will never happen because of the query. This does however create a back order on the list, which seems to be part of the problem. Once that back order is created something is pushed to the list. After this push a token is created to pull something from the list. This token pulls with a max waiter of 0 seconds. But there is something on the list, so we would expect the token to pull something. However, this is not the case. This token is not able to pull something and goes to the second output port. Why is this happening?
Note that the option allow multiple pushed before back order fulfillment is switched on.

Thank you for your time,

Patrick

TestLists.fsm

FlexSim 22.0.0
listslist pullback order
testlists.fsm (36.2 KiB)
· 3
5 |100000

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

Phil BoBo avatar image Phil BoBo ♦♦ commented ·
There's no model attached.
0 Likes 0 ·
Patrick Zweekhorst avatar image Patrick Zweekhorst Phil BoBo ♦♦ commented ·
That is correct, I thought I attached it. At least I have done it now
0 Likes 0 ·
Ryan Clark avatar image Ryan Clark commented ·

Hi @Patrick Zweekhorst, was Jason Lightfoot's answer helpful? If so, please click the "Accept" button at the bottom of their answer. Or if you still have questions, add a comment and we'll continue the conversation.

If we haven't heard back from you within 3 business days we'll auto-accept an answer, but you can always unaccept and comment back to reopen your question.

0 Likes 0 ·
Phil BoBo avatar image
0 Likes"
Phil BoBo answered Phil BoBo edited

If "Allow Multiple Pushes Before Back Order Fulfillment" is checked, then when there is a pending back order fulfillment event, all pull requests will be added as back orders so that the pull requests will be processed in order during that back order fulfillment event.

This is behaving as designed.

Change your Max Wait Timer to 0.0000001 so that it doesn't release the token before the back order fulfillment event has a chance to process it.

"To allow multiple pushes, the list creates an event in effectively zero time after a value is pushed to the list to process back orders. This is "effectively" zero time because the event is not created at exactly the same time as the time the value is pushed. Rather, the event's time will be incremented by the smallest amount representable by a double precision floating point value. This means that all events created at the exact same time as the original push will be executed before the back order fulfillment event, even if those events are created after the original value is pushed. And while the back order fulfillment time is not exactly the same as the push time, it is effectively the same." (emphasis added)

The Back Orders Tab (flexsim.com)

That's why your Max Wait Timer needs to be a value more than 0.0 in this situation.

5 |100000

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

Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Patrick Zweekhorst commented
If you add a delay after the push task, the pull works, so it seems that it's a bug related to waiting for pushes in the same event time where maybe the backorders are cached at the start of the event and can't see the pull that is added at the same event time.
· 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.

Patrick Zweekhorst avatar image Patrick Zweekhorst commented ·

Hi @Jason Lightfoot ,

Adding a delay indeed avoids the problem. In the actual model multiple routes to pull activities are possible, so adding a delay there does not solve the problem.
@Ryan Clark , can you confirm this problem will be added to the dev list to be solved in one of the next releases?

0 Likes 0 ·