question

Frans DG avatar image
0 Likes"
Frans DG asked Frans DG commented

Using ONE Pull from List to pull from multiple lists

Dear reader,

I need to simulate four somewhat similar picking activities in a fulfillment center, however, I am at the limit of my model (for the process flow). Not all tasks are finished yet, therefore I am trying to combine some of the steps in the four picking zones.

This is what I am trying to do: all four picking zones pull a batch from one of the four different lists. I want to keep the four lists, but pull with just one "Pull from List" activity. In the "Pull from List" activity it is possible to use a Global List, however, since I have to pull from different Global Lists I thought I could use a token label in the "List Reference" box to pull a batch from the correct list. However, this is not working for me. Picture 1 shows my "Pull from List" activity, picture 2 shows the label, and picture 3 shows the error I get.

Forgot to mention, but another thing I tried was using something similar to Model.find("object"). I know this searches an object in the 3D model and I wanted to find a List in the ProcessFlow, so I tried using Processflow.find("List"). This did not work and I was not able to find a similar command that would give me what I need.

I am an inexperienced user since this is my graduation project. I have a student license.

Thank you in advance!

With kind regards,

Frans

FlexSim 20.1.2
flexsim 20.1.2list pull
1593608456914.png (56.9 KiB)
1593608555583.png (30.9 KiB)
1593608739579.png (15.8 KiB)
· 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.

Jeff Nordgren avatar image Jeff Nordgren commented ·

ListTest.fsm@Frans DG,

As you have discovered, you can not use a variable in the List Reference field of a Pull block in Process Flow. Without your model or a sample model to reference, it's hard to give a specific answer to your question/problem.

I might suggest using just one list with a Partition ID of maybe an item Type or something similar to differentiate between what would be the different lists. Attached is a sample of how you might use the Partition ID to pull from one list.

If this doesn't work for you, you will need to send us your model or a sample model so that we can give you a better, more specific answer to your situation.

Thanks.


1 Like 1 ·
listtest.fsm (39.7 KiB)
Frans DG avatar image Frans DG Jeff Nordgren commented ·

Dear @Jeff Nordgren,

Thank you for your response. I am already using the Partition ID to separate the products into four categories. The issue with your proposal is that every product category also has a batch 1, 2, 3, etc. This means that I would have to do a double "Push to List" activity and a double "Pull from List" activity since it is not possible (and correct me if I am wrong) to perform a double partition in only a singular "Push to List" activity.

Perhaps it is better to try and make another part of the model more generic to gain some model space.

A final question, why is it not possible to use a variable in the "List Reference" field of a "Pull from List" activity? Besides my case, can't it be beneficial for others? In a same way that the Model.find("object") command works, wouldn't it be nice to have a command that searches an activity in the ProcessFlow? This would make the model more dynamic. It is just a question and no criticism! As I said, I am an inexperienced user and don't know why some things are possible and other things are not :)

With kind regards,

Frans

0 Likes 0 ·
Logan Gold avatar image
0 Likes"
Logan Gold answered Logan Gold edited

You can use the Sampler to sample a List resource in Process Flow. For example, if you sample a List resource as part of a token label:

You can then use that token label in the Pull from List activity. So you wouldn't use:

List(token.BatchList)

Instead, you would just use:

token.BatchList


You can also use the getactivity() command in a similar way to Model.find(), like this:

getactivity(processFlow, "List2");

Where the first parameter is a reference to the Process Flow that contains the List resource, and the second parameter is a string for the name of the List resource. You can also use a string with the name of the Process Flow for the first parameter if you are using multiple Process Flows or the code where you are using getactivity() does not have a processFlow variable for you to use.


And finally, you can still use just one List, even with multiple categories. In your example in one of the comments, you could still use Partitions to differentiate between the four categories that you are using seperate lists for now. And then you can use a list field to help identify which batch a product is in (1, 2, 3, etc.).

Fields are set up in List Properties (the Advanced button on a List resource). You could use a Label Field if the products have a label on them with their batch number. Otherwise, you would probably need to use an Expression Field to get that information for the products being pushed to the list, depending on how your model is set up.

Then, in the Pull from List, you would identify which category you want to pull from in the Partition ID field, and use the Query field to only pull the batch you need at that time:

WHERE batch = 1

You could also set up a dynamic query with a token label or something. Something like this:

WHERE batch = Puller.batch

Where Puller is a reference to the token (identified in the Puller field in the Pull from List) and batch is a label on that token.


5 |100000

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

tannerp avatar image
3 Likes"
tannerp answered Frans DG commented

You might consider using a token label or the "List By Case" functionality in the Pull from List activity. I updated Jeff's model to show how it can work. Essentially, each list is associated with a value between 1 and 4. The Assign Labels activity in Process Flow assigns the "ListVal" label that is then used to pull from a specific list as shown in the image below:

Feel free to reach out if you have questions or if you would like help condensing more activities in your model.

Model: list by case example.fsm


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

Frans DG avatar image Frans DG commented ·

My apologies for the late response. This was exactly what I was looking for, thank you!

1 Like 1 ·