question

JIANYUAN, HALLEY L avatar image
0 Likes"
JIANYUAN, HALLEY L asked JIANYUAN, HALLEY L commented

Why am I unable to pull from global list?

Hello all,

I have been trying to create a process flow and am stuck with the ageinqueue problem similar to the one shown in the tutorial.

The reason why I am unable to follow the exact steps in the tutorial is because there are labels and values on the items that I would need to use "port by case" to push the items to flow to the correct processor, as demonstrated in Queue 2 within the model scaled down. I have previously tried and am unable to push to the correct list and ports at the same time.

I tried getting around it by pushing the item to the global list using the "On Entry" trigger which works as I am able to observe data in "Waiting People 2" global list. I then set it up so that the sink right beside the queue would pull items once the ageinqueue exceeds a certain amount. However, the sink did not pull as specified.

If I were to select the sink to pull from the global list, an error message would show saying that it needs to pull from port. If I were to select pull from any port and uses the "pull requirement" for the ageinqueue requisite, there is no error message but nothing gets pulled anyway.

Please do take a look and thanks for your help!

test-10.fsm

FlexSim 20.0.0
pullitem listageinqueueglobal item list
test-10.fsm (41.0 KiB)
· 5
5 |100000

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

Braydn T avatar image Braydn T commented ·

@JIANYUAN, HALLEY L

The first thing I noticed is that your lists are not item lists, they are some other kind of list. For a 3d Item to pull, they need to be item lists. Second, once you have made them item lists when you select pull from list in the queue, you specify the list in the field List, and in the query you would have some SQL query like WHERE wait1 > 20. Also, as a rule of thumb you should try to avoid space in your naming of lists and fields.

-1 Like -1 ·
Matthew Gillespie avatar image Matthew Gillespie ♦♦ Braydn T commented ·
@Braydn T

This isn't true. There's no difference between an item list and any other list. An item list just starts with a few fields that are useful for items.

0 Likes 0 ·
Braydn T avatar image Braydn T Matthew Gillespie ♦♦ commented ·

@Matthew Gillespie

Do you have any idea why the lists don't appear in the drop down for the list selection in the sink? I assumed it was because they were item lists, because the item lists I created appeared in the drop down.

0 Likes 0 ·
Show more comments

1 Answer

Matthew Gillespie avatar image
0 Likes"
Matthew Gillespie answered JIANYUAN, HALLEY L commented

If you want to have a sink pull from a list you need to use the Pull from List pickoption in the Pull Strategy field, not the Pull Requirement field. Also if you have spaces in the name of a field you need to put braces around the name in the query so the parsers recognizes the whole thing as a field name, like this:

WHERE [Wait 3] > 300

However, I made some changes to your model so that you only have one list and all the queues push to a different partition. The sinks then pull from the partition corresponding to the queue they're attached to.

The other change I made to your model was I added a Pull from List pickoption to the OnExit triggers of the queues so they would pull off the items that leave the queue normally and aren't pulled by a sink.

pulltosink.fsm

Now, there's a much simpler way to model this if you add a few process flow activities. You can listen to the OnEntry of items into these queues and then listen for those item's to exit the queue, but with a Max Wait Timer while listening to the OnExit. If the item doesn't leave before the max wait time then you move the item into the sink it's connected to. Here's an example of that:

maxwaittimer.fsm


pulltosink.fsm (40.9 KiB)
maxwaittimer.fsm (45.4 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.

JIANYUAN, HALLEY L avatar image JIANYUAN, HALLEY L commented ·

Hello @Matthew Gillespie

Thanks for taking a look at the model!

Upon reviewing my model and those that you have sent, I've realised that the problem was not what I've just mentioned, sorry for the trouble. I've made amendments to the naming strategy but I realised this is not the reason why the model does not work.

Instead, the issue lies from other triggers. Basically, the queues were made to stop output after a certain number is reached (assume vehicle taken to move, the limit set is 10 for both queue 1 and 3 and 20 for queue 2 as a test recorded in global table). During the period that the output is stopped, people are waiting and I would need to pull them to sink when their waiting time exceeds 300s. However, this would conflict with the previous logic which stops the output until other "vehicles" came in.

Is there a way to get around this? I am unable to use close input for the processors instead as some items goes from processor1 to processor4 (or 3 to 2) which will happen in the actual model. If processor 4 were to close input after the limit of 20 for queue 2 is reached, it would not accept items from processor 1 as well.

Right now I've tried to resumeoutput when wait>300s and closeoutput after item is pulled but it did not seem to work (sink4). The way I did it was to include the codes in the flow tab>pull strategy.

Also, would it be possible to use only 3d modelling (not using process flow activities) to resolve this problem? It is more intuitive and better for presentation of the codes in paper and I might not be able to replicate the exact codes in the actual model.

Here's the model which consists of some changes.

test-11.fsm

0 Likes 0 ·
test-11.fsm (41.6 KiB)
Matthew Gillespie avatar image Matthew Gillespie ♦♦ JIANYUAN, HALLEY L commented ·

Please post this as a new question.

0 Likes 0 ·
JIANYUAN, HALLEY L avatar image JIANYUAN, HALLEY L Matthew Gillespie ♦♦ commented ·

Ok, got it. Mad respect for working on a Saturday!

0 Likes 0 ·