question

EK avatar image
0 Likes"
EK asked Jason Lightfoot commented

Pull specific qty and items from list for outbound

Pull specific qty and items from list for outbound.fsmIn my model, floor storage objects pushes items to StockInStorage list. I use process flow to pull specific SKU and Qty from a global table (outbound) and then I push this to AGV request list. I pull from AGV request list in object process flow together with labels by using SELECT query and assign the label token.item. As I am using object process flow, I use current in the executer/task sequence field in the load process flow to pick token.item where the station is Item Container.
However I am facing an invalid task in the Load step. Could you let me know what is wrong please?

PS: Is my pull from StockInStorage correct as the qty to pull is based off a label from Global Table

FlexSim 23.2.1
pull from list
· 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·

Hi @EK, was Parker S'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 0 ·

1 Answer

Parker S avatar image
0 Likes"
Parker S answered Jason Lightfoot commented

@EK

If you need to pull the correct SKU's, be sure to include that in your Pull from List Query.

1697145851735.png


The item(s) you need to pick are in the token.pulled label, so you need to reference that for the load and unload tasks. The easiest way to set this up is with sub flows, to account for when there are multiple items versus one item:

1697146271178.png

Here is the updated model, let me know if you have any other questions.

pull-specific-qty-and-items-from-list-for-outbound_PS.fsm



· 4
5 |100000

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

EK avatar image EK commented ·

Hi Parker, do you mind explaining the steps a bit more so I can understand it better? I have only been using FlexSim for a couple months.

In my process flow, I pull multiple items from StockInStorage list with token.pulled label and push to AGVRequest list with a token.puller label. My item information is therefore stored in token.pulled label.

In the ShuttleProcessFlow, the tokens now represent the TaskExecutors and if I do not reference to token.pulled.length in the load subflow, it will not account for the multiple items that I now pull to the ShuttleProcessFlow?

Does the token.pulledToken have any functional use or further reference? Is it given a different name to avoid duplication with the orginal token.pulled that stores the item information?

Can I know what is the difference between creationRank and tokenIndex?

Why is there an additional label token.pulled[creationRank] assigned in the load/ unload subflow?


0 Likes 0 ·
Parker S avatar image Parker S ♦ EK commented ·

Yes, I'll be happy to explain the best I can.

In the ShuttleProcessFlow, the tokens now represent the TaskExecutors and if I do not reference to token.pulled.length in the load subflow, it will not account for the multiple items that I now pull to the ShuttleProcessFlow?

That is correct. When dealing with multiple items, you will need a sub flow for the load/unload tasks. The load/unload activities won't work if you have an array label in the "Item" field

Does the token.pulledToken have any functional use or further reference? Is it given a different name to avoid duplication with the orginal token.pulled that stores the item information?

Correct again. The "Assign To" field is dealing with the value in the list, which is just a reference to the token from your ProcessFlow. This is because you have the token as your "Push Value" field in the Push to List:

1697649817183.png

In this case, we don't really need to keep track of the actual token, so I gave it another name to avoid overwriting/duplicating the pulled label that we get from the SELECT query.

It also helps to look at the entries from both lists to understand what is happening:

1697649890817.png


Can I know what is the difference between creationRank and tokenIndex?

creationRank is the index number when creating child tokens. It's like tokenIndex but for sub flows.

Why is there an additional label token.pulled[creationRank] assigned in the load/ unload subflow?

This is to separate the token.pulled array into the individual items that the array is made up of so we can reference actual items in the load/unload activities.

Let me know if this helps!

0 Likes 0 ·
1697649817183.png (101.1 KiB)
1697649890817.png (122.0 KiB)
EK avatar image EK Parker S ♦ commented ·
Hi @Parker S, when pulling from the StockInStorage list, I noticed that the default is first in first out, is it possible to set other pulling logic such as last in first out or conditional pulling logic such as if item was push to list from x time to x time, FIFO but if pushed to list from y time onwards, LIFO?
0 Likes 0 ·
Show more comments