question

Anggoro P avatar image
1 Like"
Anggoro P asked Raja Sekaran edited

Multiple pull activities from one list: specific rule

Hi,

I have multiple pull activities that only pull from one list. Each activity represents different customer demand. What happen if there are multiple tokens on the same time want to pull a specific product from the list? Will it be randomized which token that pulls the product? Or can we define the specific rule for pulling?

I guess for the default situation, FCFS rule is applied, but I am curious in case the token have the same pull time. Thanks

Choose One
pull from list
· 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.

Joerg Vogel avatar image Joerg Vogel commented ·

There isn't a same pull time. It is just the same simulation run time .There is always an order in which the code is executed.

0 Likes 0 ·
Anggoro P avatar image Anggoro P Joerg Vogel commented ·

@Jörg Vogel

But it is still possible to have many orders from different customers at the same simulation time. I just curious how FlexSim order these order under this situation. I am fear that if the items in the list are limited, the system always satisfies the orders from one of the customers only

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Anggoro P commented ·

The Event Log contains all events in the order they happen in the 3D-model. You find this tool in the main menu Debug > Event Log. You have to activate the logging. As an option you can set the time interval and the events you like to log and evaluate. Typically the engine works its task in the order they occur.

If it is your intention, that you want to satisfy multiple pulls for many customers at the same time and getting many incomplete fulfilled orders, you must create an own logic that this does.

0 Likes 0 ·

1 Answer

Matthew Gillespie avatar image
1 Like"
Matthew Gillespie answered Raja Sekaran edited

There are two different scenarios:

1. There is a value that matches your query that can be pulled off the list

In this case you'll pull and will immediately pull something off the list. This happens instantaneously so it happens before any other pull activities.

2. There are no values that match the query

In this case there is nothing to pull so your pull creates a back order. If multiple activities pull and fail to pull something they all create back orders. When a new value is pushed on the list the back orders will be reevaluated to see if the value matches their query. You can specify which back orders get fulfilled first in this case by filling out the Back Order Queue Strategy.

Below I've pasted the documentation:

Back Order Queue Strategy

The Back Order Queue Strategy defines how back orders will be prioritized for a given value. When a value is pushed onto the List, outstanding back orders are processed for that value in the order defined by this queue strategy. It should be an SQL ORDER BY statement that references at least one puller-dependent field. This is because the back order queue strategy is used to prioritize back orders against a single entry. An ORDER BY statement that gets data only associated with the entry value would consequently have the same result value for all back orders, and would thus be unable to properly prioritize the back orders.

A few examples:

ORDERBYPuller.priorityDESC- This will prioritize the pullers who have the "priority" label with the highest value.

ORDERBYpullerPriorityDESC- This example is essentially the same as the previous example, except that here you would need to explicitly add a dynamic puller-dependent expression field named pullerPriority, and give it the expression:puller.priority. This expression tells FlexSim to check the value of a label named "priority" on the puller.

ORDERBYdistanceASC- This example will prioritize the back orders with the lowest distance value, which usually defines a distance between the value and the puller.


backorders.png (4.6 KiB)
· 6
5 |100000

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

Anggoro P avatar image Anggoro P commented ·

@Matthew Gillespie Thanks for the explanation :)

In my case I set MAX WAIT TIMER = 0 to indicate lost sales, then the failed tokens will go through sink. That's why I am curious what will occur if multiple tokens pull a limited number of items in the list on the same time. For instance, customer A requests 2 items and customer B request 3 items on simulation time = 2 unit time. Meanwhile, there only 3 available items in the list. Will it be randomized which customer will get the available items? Because the failed demand will not be backordered, it is important to analyze the behavior of this kind of situation

It will be nice if we can set prioritization rule for this case. Any idea? Thanks

1 Like 1 ·
Anggoro P avatar image Anggoro P Anggoro P commented ·
0 Likes 0 ·
Anggoro P avatar image Anggoro P Anggoro P commented ·

@Raja Sekaran

could you give any solution for this?

0 Likes 0 ·
Raja Sekaran avatar image Raja Sekaran Anggoro P commented ·

@Anggoro P

Have you tried to hold the token before pulling the things from the list? Would this work for your situation?

support-1.fsm

0 Likes 0 ·
support-1.fsm (18.9 KiB)
Show more comments