question

Cindy Azuero avatar image
0 Likes"
Cindy Azuero asked Matt Long commented

​Is there a way to reevaluate backorders from a list with a process flow event such as exiting an activity?

FlexSim 16.1.0
process flowlist
· 11
5 |100000

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

Cindy Azuero avatar image Cindy Azuero commented ·

@Matt Long

I realized that the model is not reevaluating the backorders when the label change. On the photos I'm sending I show you that I've use a breakpoint to identify the point in which the label is changed. Then I see that the field on the list change, but the backorder that can pull this value continue as a backorder.

Note: the puller has Canal =T3 and esCrossdock=0.

Can you help me with this urgently?

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

Can you view your tracked variable label in the tree and see if it has an onChange sub node with a sub node?

0 Likes 0 ·
onchange.png (5.3 KiB)
Cindy Azuero avatar image Cindy Azuero Matt Long commented ·

No it hasn't

It has to be a level type tracked variable?

0 Likes 0 ·
label-nodes.png (9.3 KiB)
Show more comments
Cindy Azuero avatar image Cindy Azuero commented ·
@Matt Long

The label is well identified

Note: you don't post the example.

0 Likes 0 ·
identify-label.png (40.3 KiB)
Matt Long avatar image Matt Long Cindy Azuero commented ·

I'm not sure, when I set up a test case doing this it works just fine.

0 Likes 0 ·
Cindy Azuero avatar image Cindy Azuero Matt Long commented ·

what can I do? the logic doesn't work without reevaluating the backorders when the label of one of the queues associated with the entries of the list change.

Note: I create the labels with an assign on time 0 of the simulation. A token does a cycle creating the label on all objects.

Please help me...

0 Likes 0 ·
Show more comments
Cindy Azuero avatar image Cindy Azuero commented ·

This is the link to download me model.

https://www.sugarsync.com/pf/D3960932_05216215_6029100

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

Looks like that link is bad.

0 Likes 0 ·
Cindy Azuero avatar image Cindy Azuero commented ·

Can you give me an example of how you set up the label for me in order to see it

0 Likes 0 ·
Matt Long avatar image
2 Likes"
Matt Long answered Matt Long commented

Since what you're actually trying to listen to is a label value changing on a FR object, you should listen to the label itself. This can be accomplished through the Puller Event or Value Event.

The Assign Labels has an option for Add Tracked Variable. Use this to set a Tracked Variable label on your FR object and be sure to have a reference to that object on your Puller/Value (however you set up your event). You can then listen to the OnChange of that label:

Be sure to use the label() command so you're returning the label node and not the value stored on the label.


· 11
5 |100000

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

Cindy Azuero avatar image Cindy Azuero commented ·

@Matt LongTo confirm. I need to replace my normal label with this tracked variable label? or I just need to have both of them?

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

Replace your current label with a tracked variable label.

0 Likes 0 ·
trackedvariable.png (16.0 KiB)
Cindy Azuero avatar image Cindy Azuero Matt Long commented ·

@Matt Long thanks! I'll try that. I know that maybe this is not the space for it. But could you help me with another question I post yesterday? I don't know if it is easier to explain with a online meeting in order for me to show you the problem...

0 Likes 0 ·
Show more comments
Cindy Azuero avatar image Cindy Azuero commented ·

@Matt Long

I implement the tracked variable label and I used it on the backorders reevaluation events and I get this error:

time: 20698.326569 exception: Exception caught in adding value-based backorder listeners on list MODEL:/Tools/ProcessFlow/ProcessFlow/OrdenesAlistadasDisponiblesParaEscogerTunelPT1>stats/instances/ProcessFlow/list: Invalid event focus object for list value /Tools/ProcessFlow/ProcessFlow>stats/instances/ProcessFlow/tokens/Vehiculo T3~2. Continuing throw... time: 20698.326569 exception: Exception caught in start() of activity "Pull from lista OrdenesAlistadasDisponiblesParaEscoger" in "ProcessFlow". Continuing throw... time: 20698.326569 exception: Exception caught in evaluation of /Tools/ProcessFlow/ProcessFlow/SeDescargoPallet>stats/instances/ProcessFlow/onEntry

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

Well it says Invalid event focus object. Verify that getlabel(getlabel(value, "puestoZonaCargue"), "asignado") is valid.

0 Likes 0 ·
Cindy Azuero avatar image Cindy Azuero Matt Long commented ·

hmm I have the same code on the field and there it works fine. Also how can I checked it?because when I try to use breakpoint on the event focus in order to see what's wrong, it doesn't stops there... can you give me any idea?

0 Likes 0 ·
Show more comments
Cindy Azuero avatar image Cindy Azuero commented ·
@Matt Long

The expression is not NULL...

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

Right, apologies, the command should be label(getlabel(value, "puestoZonaCargue"), "asignado") so it returns the node, not the value on the node. I updated the answer.

0 Likes 0 ·
Matt Long avatar image
1 Like"
Matt Long answered Matt Long commented

The List has a Back Order Reevaluation Event that is Puller based and one that is Value based. These allow you to point to either the puller/value object or to access a label on one of these objects and listen to events on the referenced object.

In the attached example model backorderreevaluationpf.fsm, I've created two really simple situations where the time() is a field on the list call theTime. The Pull From List tries to pull a value where theTime > 3. In example one I have the list listens to the Puller's OnEntering event and release the Puller using a Max Wait Timer. In the second example, a child token was created prior to the Pull From List and the list listens to the child token's OnEntering event. Note that this will cause the Back Orders to be reevaluating EVERY time the puller or child token enters another activity.

Here's how I set up the Back Order Reevaluation Event:


· 7
5 |100000

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

Cindy Azuero avatar image Cindy Azuero commented ·

Thanks @Matt Long but it still is not exactly what I need because I need to reevaluate the backorders when the label of a fixed resource (or the fixed resources on a group) changes it's value and that value changes when a token exists a custom code activity. The tokens that pass through that custom code activity are independent of the puller or the value. What I can I do in this case?

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

I just took a look at the code behind the list and it appears to just be an over site that you can't listen to activity's events from the list back order reevaluation. This will be fixed in the 16.1.1 release in the next couple of weeks.

0 Likes 0 ·
IT Asset avatar image IT Asset Matt Long commented ·

Was this fixed? I'm using 16.1.2 and I can not get my process flow list to successfully listen to another process flow block.

0 Likes 0 ·
Show more comments
Cindy Azuero avatar image Cindy Azuero commented ·

Also, how can I create a gif similar to the one you send me? Sometimes it is easier to explain something with it.

0 Likes 0 ·
Matt Long avatar image Matt Long Cindy Azuero commented ·

We use Snagit 13. You record a video of the screen and then in the Snagit Editor (which pops up automatically once you stop recording) allows you to edit the video and then convert it to a gif file.

0 Likes 0 ·
Adrian Haws avatar image Adrian Haws Cindy Azuero commented ·

Another option is ScreenToGif.

0 Likes 0 ·
Matt Long avatar image
0 Likes"
Matt Long answered Cindy Azuero commented

Currently you cannot listen to Activity events from objects outside of the Process Flow. However, the Process Flow object has a message trigger that could be listened to. At the point in which you want to trigger an event, add a Custom Code with a Send Message pick option and send it to the Process Flow object (use processFlow in the To field).

Then set up a Back Order Reevaluation Event on your list. Use the Global Event option and listen to the Process Flow's OnMessage.

Hint: Use the sampler for the Event Focus field and sample the Process Flow object in the Toolbox.


· 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.

Cindy Azuero avatar image Cindy Azuero commented ·

Thanks, but I mean a list from the process flow. Is there a way?

0 Likes 0 ·