question

Fernando Q3 avatar image
0 Likes"
Fernando Q3 asked Jason Lightfoot commented

item is not pulled when backorder is fulfilled (by using item list)

Esqueleto prueba.fsm

Hi,

we have a problem with the "pull from pedidos" in queues 6 & 9. Both are in "on the end collecting" triggers. When checking out the entries and backorder lists, the pull system works, but if there is a backorder and the item (box) arrives to queue 2 and does the push, it is removed from backorder queue but the box does not move to queue 4 (moveobject(pulled, Model.find("Queue4"));). Currently, it is happening with "item.NumOrden" = 7.

Thanks.

FlexSim 23.1.2
backorderfulfilledmoveobjet
· 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.

Joerg Vogel avatar image Joerg Vogel commented ·
If it is in process flow, then apply some breathe activities to let finish a logic cycle and update states before executing other actions. A breathe activity is a delay activity lasting 0 time units.
0 Likes 0 ·

1 Answer

·
Jason Lightfoot avatar image
0 Likes"
Jason Lightfoot answered Jason Lightfoot commented

The condition:

TrackedVariable("PedidosPro2").value > TrackedVariable("PedidosPro1").value

is no longer true so the rest of the code, including your OnPulled action does not fire.

This seems odd that the pull gets out of sync with the condition - something that inline awaiting for the backorder fullfillment event would potentially solve. I'll bring this up for discussion.

· 2
5 |100000

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

Fernando Q3 avatar image Fernando Q3 commented ·
So, it means that a backorder is triggered but later when it is going to be fulfilled, the condition needs to be met again?
0 Likes 0 ·
Jason Lightfoot avatar image Jason Lightfoot ♦ Fernando Q3 commented ·

Yes. For now you can add the callback test to your condition by moving some lines in your code. Pu t this before the condition:

int callbackCase = param(5);
#define CALLBACK_CASE 10293
int isCallback=callbackCase==CALLBACK_CASE;

and then add 'isCallback' to your condition:

isCallback||(TrackedVariable("PedidosPro1").value > TrackedVariable("PedidosPro2").value)
0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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