ordering and assemmbler

All topics on coding 4Dscript in Enterprise Dynamics.
Post Reply
mouza001
Posts: 3
Joined: Wednesday 17 June, 2015 - 13:23

ordering and assemmbler

Post by mouza001 »

Dear Sir or Madam
I am currently working on my MSc thesis at Wageningen University regarding to a hold-back policy for supermarkets. I use ED for the simulation. However i have some questions to make my model work. I would be pleased if you could help me.
A brief description of my research:1) i am investigating the impact of hold-back policy on food waste, quality and costs. Producers are not in the scope of my research. The current model start with ordering from the DC every day an order quantity based on the current shelf level ( The demand is non stationary and thus the Order-up-to level for each day is different). When i have stationary demand i use in the trigger on exit of the ordering source:
label([order size],i):=Max(0,Parameter(1,1)-content(out(2,c))) where Parameter(1,1) is the Order-up-to level.
How can I adjust this coding so that the source for orders to DC can generate numbers based on different daily order-up-to level ?
2) I use an assembler to simulate the consumer picking process at the retailer. One input is the daily demand and the other input are the unit products that are on shelves. Products after coming to retailer are assigned a label for 3 days shelf life. So in the queue of the retailer there can be products with 3,2,1 remaining shelf life. My problems are that in the assembler:
(I) How can I make the code that if the demand is larger than displayed products? in that case, the order is failed and shows at the Queue ""lost sales"".
(ii) How can I make the assembler to pick up products based on different consumer types? For example, I want to make 60% consumers to pick up products with 3-days shelf life, and 40% in another way around.

Please check my ED model in attachment. Thanks for your time!

Looking forward to hear from you.

Padelis
Attachments
base case.mod
(66.19 KiB) Downloaded 300 times
mouza001
Posts: 3
Joined: Wednesday 17 June, 2015 - 13:23

Re: ordering and assemmbler

Post by mouza001 »

Hello ED community

Can Someone give me any tips for my problems?

Kind Regards
Padelis
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: ordering and assemmbler

Post by HarryBunnik »

Ha Padelis,

Sorry for the late answer, but there were more questions regarding the same case, so we have to check with the university how to handle these questions. For the moment I haven't heard how the status is. But to give you some tips:

[*]I would use a table in which I set the order size of the different days. Then you can loop over the rows (days) using something like the following code.

Code: Select all

Do(
  var([valTime], vbValue), 
 
  valTime := Mod(time, hr(24*7)), 
  Ceil(Time/hr(24))
)
[*] The code for the picking process is something where you have to check how the content of the queue is, in comparison to the desired order size. Then you might have to update the B.O.M. of the assembler to the lower number, so it would still leave the assembler, but then with a lower number of products. If you then trace in a label that the consumer had less then the desired order size, you can sort him (or her) out to a different sink.

To create code to pick something based on a percentage I would like to point you to a different entry in the community:

viewtopic.php?f=5&t=766

I hope this helps you a bit further.

Cheers,

Harry
mouza001
Posts: 3
Joined: Wednesday 17 June, 2015 - 13:23

Re: ordering and assemmbler

Post by mouza001 »

Hello Harry
I would need your help for once more. In my model I have two rooms. I call the first room ''back storage'' and the second room ''display shelves''. Both rooms are divided into 3 parts. 1st part contains products with 3 days remaining shelf life. 2nd part with 2 days remaining shelf life and the 3rd with 1 remaining day. My first problem is that when products leave (e.g from 1st room 2nd part) they have to go to 2nd room 2nd part. I put a
label([shelf life]) := 3,2,1 to the corresponding parts of my first room and I also set the send to rule of the servers as following: Label([shelf life], first(c)) but still my model doesn't send products to the corresponding part of the 2nd room.
I will attach also my model so u can tell me if u can identify the mistake.

Cheers,
Padelis
Attachments
base case holdback policy.mod
(134.58 KiB) Downloaded 304 times
User avatar
HarryBunnik
Posts: 362
Joined: Monday 07 February, 2011 - 11:22

Re: ordering and assemmbler

Post by HarryBunnik »

Ha Padelis,

First I have a few points:

- You have several labels that contain spaces. If I were you I would not do that. I'm not sure if that may not cause problems, but is not advisable.
- You can't set or update the BaseTime, so that gives an Access violation at every reset.
- Quite some of the servers in room 2 are not yet connected.

But further it seems to be doing what it is supposed to do (or what I think it is supposed to do ;-) ). It has a label ShelfLife = 3 (received at the Queue "back storage 3 days") and that is send to the 3rd exit of the "replenish to shelves" server. Are you sure the connections are correct or the label assignment and they are not the wrong way around?

Cheers,

Harry
Post Reply