Multiple pull activities from one list: specific rule

Multiple pull activities from one list: specific rule

anggoro_p
Not applicable
174 Views
10 Replies
Message 1 of 11

Multiple pull activities from one list: specific rule

anggoro_p
Not applicable

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

Accepted solutions (1)
175 Views
10 Replies
Replies (10)
Message 2 of 11

joerg_vogel_HsH
Mentor
Mentor

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
Message 3 of 11

Matthew_Gillespie
Autodesk
Autodesk
Accepted solution

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.

9734-backorders.png

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.



Matthew Gillespie
FlexSim Software Developer

Message 4 of 11

anggoro_p
Not applicable

@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

Message 5 of 11

anggoro_p
Not applicable
0 Likes
Message 6 of 11

anggoro_p
Not applicable

@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
Message 7 of 11

anggoro_p
Not applicable

@Raja Sekaran

could you give any solution for this?

0 Likes
Message 8 of 11

joerg_vogel_HsH
Mentor
Mentor

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
Message 9 of 11

raja_sekaran
Not applicable

@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
Message 10 of 11

anggoro_p
Not applicable

@Raja Sekaran

Does it mean that I can set the length of delay depending on the customer priority?

I am sorry, my idea was not correct about prioritization. I think the proper way to solve this is by equal fulfillment, meaning that for instance there are 3 customers, each has 3 demands. Meanwhile, the available stocks are 3. I want to spread the available stocks for those 3 different customers with only sending them 1 item each.

0 Likes
Message 11 of 11

raja_sekaran
Not applicable

@Anggoro P

In the attached model, In order to prioritize the customer order, I have pushed the tokens(customer) to another list and pull the token(customer) using query. Would this work for you?

10190-10188-customer-priority-support-4-1.fsm

0 Likes