Find Item-Task Executer Capacity

Find Item-Task Executer Capacity

mhosseini457NG
Advocate Advocate
46 Views
11 Replies
Message 1 of 12

Find Item-Task Executer Capacity

mhosseini457NG
Advocate
Advocate

[ FlexSim 23.1.2 ]

If I have items in different racks assigned to them, and I want the operator to retrieve a bunch of items of the same type "C" from the rack using the following query:

WHERE LabelName = "C"

The operator should then place these items onto the Task Executor but with a defined capacity. What is the most effective way to model this so that the operator can find , load and unload items onto the TE based on the Task Executor's capacity?

0 Likes
Accepted solutions (1)
47 Views
11 Replies
Replies (11)
Message 2 of 12

jason_lightfootVL7B4
Autodesk
Autodesk

This is confusing - you mention the cart, operator and task executer - which is which? Maybe you could clarify this and/or post your model.

0 Likes
Message 3 of 12

joerg_vogel_HsH
Mentor
Mentor
Accepted solution

It is about labels of your process flow token. You assign label values accordingly to your request before you do findItems or queryItems. Then you can parse them by $number clause into your query string. Please look into advanced examples of SQL in manual.
findItem resolves in finding one item.

queryItem returns an array of items to match with the conditions of your query clause. You need then a loop structure to evaluate a picking of your items of this result array for example by call sub flow activity.

0 Likes
Message 4 of 12

jason_lightfootVL7B4
Autodesk
Autodesk

We haven't yet clarified if the capacity limit in question is that of a task executor, container flow item or people equipment, but once that's known this will be a valid method since you will have a free capacity number to put in the query. You can also loop and find individual items - especially if they are picked individually.

In your previous example the type of items were different sizes, which means the capacity is likely to be found using a lookup method based on type. For this I would create a map lookup, but you could also use a table.

Message 5 of 12

mhosseini457NG
Advocate
Advocate

I meant the 'TE' (Task Executer) as I use it instead of the 'cart' object.

Please see the model attached. cart_capacity_autosave_1.fsm

0 Likes
Message 6 of 12

jason_lightfootVL7B4
Autodesk
Autodesk
So you operator which is a task excuter is unloading to another task executer - and is that a fixed capacity or does it vary by the type of items you're placing on it? And do you have a test model for this?
0 Likes
Message 7 of 12

mhosseini457NG
Advocate
Advocate

the issue I'm facing is not just finding items but also finding items based on the TE capacity.

I posted the model above.
0 Likes
Message 8 of 12

mhosseini457NG
Advocate
Advocate

We have different type of TEs. I have two types of TEs: 'operator' and the TE object that I use it instead of the cart prop. The operator runs the TE, and the TE has a defined capacity. However, if it can be dynamic based on the TE object, that would be ideal too.

Since I'm pressed for time to find a workaround for my questions today, I think the defined capacity will work for now.

I attached the model in my previous comment.

0 Likes
Message 9 of 12

jason_lightfootVL7B4
Autodesk
Autodesk

You should probably acquire the Cart resource before you pull the item(s) from the list - in your example model you pull the item first. You can either refer to the TE's capacity using:

cart.getProperty("Capacity")

or you can create a map of SKU capacity on the cart which you can then use to lookup how many it can carry.


0 Likes
Message 10 of 12

mhosseini457NG
Advocate
Advocate

where should I enter this script to?

cart.getProperty("Capacity")

how one can create a map of SKU capacity on the cart?

0 Likes
Message 11 of 12

jason_lightfootVL7B4
Autodesk
Autodesk

That goes in the pull from list activity but 'cart' needs to be a valid pointer to your cart - and that's token.cart in your model.


If you try and use the SKU based capacity that will assume the SKUs are not mixed on the cart and so you'll need to decide which SKU you want before pulling based on those capacities.

You can set up a label using the script to create the label:

Object te=Model.find("TaskExecuter1");
Map skuCapacity;
skuCapacity["A"]=10;
skuCapacity["B"]=5;
skuCapacity["C"]=2;
te.labels.assert("skuCapacity",skuCapacity);

the you can test the access using another script:

Object te=Model.find("TaskExecuter1");
Map skuCapacity=te.skuCapacity;
return skuCapacity["C"];

And so for a single expression in your model it will be:

token.cart.skuCapacity.as(Map)["C"]
0 Likes
Message 12 of 12

julie_weller
Not applicable

Hi @Maryam H2, was Joerg Vogel'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 comment back to reopen your question.

0 Likes