ATTENTIONThis FlexSim Community Forum is read-only. Please post any new questions, ideas, or discussions to our new community (we call it Answers) at https://answers.flexsim.com/. Our new Question & Answer site brings a modern, mobile-friendly interface and more focus on getting answers quickly. There are a few differences between how our new Q&A community works vs. a classic, threaded-conversation-style forum like the one below, so be sure to read our Answers Best Practices. |
flexsim.com |
#1
|
|||
|
|||
Stop a TE and change his task sequence
Hello. My model is a superstore. Shoppers pick items by a certain list and then go to checkouts in order to pay. The problem is that by the end of the day (the superstore is open for 12 hours each day), the store is full of shoppers, that they still pick items.
-I tried to write a task sequence, sending delayed message to shopper, 10 minutes before the store closes, to travel to the checkouts. - I also tried to use Time Table for shopper, using the Down State. I don't know if i did something wrong, but both ways didn't have the result i want. The shoppers still stay in the shop and pick items. What is wrong and what can i do? |
#2
|
||||
|
||||
Hello,
please, read about preemting tasksequences and the different values or states this parameter can be assigned to. One parameter will suite your aim. Edit: If you need the incomplete tasksequences to be finished at the counter, set their priority higher than any other not begun tasksequence. Preempt the current tasksequence with a traveltask to the counter. Destroy all tasksequences, if the last item is unloaded to the counter. But if you build a complex tasksequence containing all the loading task of your shopping list, you have to abort the tasksequence, cut the sequence to the loadstation to be finished and dispatch it again. Jörg Last edited by Jörg Vogel; 02-27-2012 at 02:39 AM. Reason: some more hints |
The Following 2 Users Say Thank You to Jörg Vogel For This Useful Post: | ||
vasiliki grigorakaki (02-27-2012) |
#3
|
|||
|
|||
I have read preempting task sequences, as you told me. The problem is that i don't know where to write this. I 've tried to use Time Table, setting Shopper on break state and i wrote a code in the "Break" to requirement.
I also tried to do this, by sending message to Shopper after 700 minutes and writting a code in On Message Trigger. I don't if i 'm doing something wrong, but i 've tried a lot of ways and i can't make it. Where should i put the code? |
#4
|
||||
|
||||
Hello Vasiliki,
use timetables, set the time all shoppers have to break away to the counter. Down Function: Create Tasksequence 2 Object Name = name of your counter Preempting = PREEMPT_ONLY // give it a try, or use some other parameter Priority = higher than any other priority in your model. Resume Function: Do nothing Timetable members all your shoppers. Jörg |
The Following User Says Thank You to Jörg Vogel For This Useful Post: | ||
vasiliki grigorakaki (02-28-2012) |
#5
|
|||
|
|||
Thank you for your help. I ' ve made what you said , but still doesn't work.
They keep travel in the model. And what happens with those shoppers that are already in the checkout? I don't understand why it doesn't work. |
#6
|
|||
|
|||
Please does anybody knows what is wrong? I try to do anything that comes to my mind but nothing works. I am stuck with this problem, for 5 days. The only thing i can think is that the problem is that TE are flowitems in the model. I can't know how many of them will be in the model at a certain time, and where they are exactly. They could pick items or pay at the chechout or even leaving the store.
|
#7
|
||||
|
||||
Please try to build a small demo model with only one TE and a few positions and see what that does. If that doesn't do what you want, post that model here on the forum.
If it does what you want you have to start looking why your big model is different. |
The Following User Says Thank You to Steven Hamoen For This Useful Post: | ||
Jörg Vogel (02-29-2012) |
#8
|
|||
|
|||
I 've made what you said.It doesn't work in a smaller model too. There are other parameters too, like itemtypes, way of payment, and different time parameters for each object, but i don't think it matters. This is just a similar model.
Last edited by vasiliki grigorakaki; 02-29-2012 at 05:30 AM. |
#9
|
||||
|
||||
Hello Vasiliki,
to help we should know, that you use TaskExecuterFlowitem as shoppers in your model. The reference doesn't exist to the downobject in your timetables at simulation start. But you have to dispatch the preempting tasksequence to a known taskexecuter. So you have to build a list of all your current shoppers in your model. Probably you can fill the list OnCreation in the source and delete the reference rows OnExit in the sink. To store the reference of an item convert it to number "tonum(item)" and in the Down Function you dispatch to every stored reference in your table the preempting tasksequence. You convert the stored value back to a node with "tonode(number value)". Jörg |
The Following 2 Users Say Thank You to Jörg Vogel For This Useful Post: | ||
vasiliki grigorakaki (02-29-2012) |
#11
|
|||
|
|||
I 've made a table like you told me and now i can have the total shoppers in a certain time. The problem is that i don't understand how to refer to the current shoppers, by time table. Shouldn't i pick shopper as a member from the beggining? And the other problem is that what happen (at the time they go down) with those that are already in the checkouts or they are leaving?
|
#12
|
|||
|
|||
You could try using memberadd() when you create the TEflowitems, which means you shouldn't need the table and you can refer to the TEflowitems using downobject (default) as you had in your model.
memberadd(item,"StoreHours",1); |
The Following User Says Thank You to Jason Lightfoot For This Useful Post: | ||
vasiliki grigorakaki (02-29-2012) |
#13
|
||||
|
||||
Hello Vasiliki,
look for one solution at a time. Don't mix it. Write a loop around createemptytasksequence and dispatchtasksequence in the Down Function of time tables. Change the downobject reference to the stored taskexecuter from the table of your shoppers in the loop. Jörg |
The Following User Says Thank You to Jörg Vogel For This Useful Post: | ||
vasiliki grigorakaki (02-29-2012) |
#14
|
|||
|
|||
It works fine. Thank you all. I have used PREEMPT_AND_ABORT_ACTIVE because i don't want the shoppers to return to their earlier task.
Now they are all in the checkouts at the time i want. The problem is that they don't continue after the down state. They go to the checkouts and stay there, although the down state has duration=0. I think that this happens because i tell them to travel there and stay there. But they have to do and other task sequences, like to move the Cart in the Checkout, e.t.c |
#15
|
|||
|
|||
After down state how can they continue their task sequences?
I ve looked into the manual, through task sequences preempting, but it doesn't say this. Only if you use PREEMPT_ONLY he does the earlier tasks. But what about the next tasks? |
#16
|
|||
|
|||
During the cart filling process, if you made each item pick a subtask (travel and maybe another subtask to pick if stock is there) then you could just test if the store is closing in the subtask logic (use a global variable?) and if it is, don't create any tasks - just return NULL from the message (or nodefunction). That way the TE will skip to the end set of tasks without needing to be preempted.
|
The Following User Says Thank You to Jason Lightfoot For This Useful Post: | ||
vasiliki grigorakaki (03-01-2012) |
#17
|
|||
|
|||
So there isn't a way to continue his tasks, when using time table and preempting. I'm not sure i understand how i can close the shop, by using a global variable. And what do you mean return NULL from the message?
|
#18
|
||||
|
||||
No that is not true. If you have preempted a tasksequence, the taskexecuter will continue with the next task. Unless you have used PREEMPT_AND_ABORT_ALL in which case all tasksequences in the it's queue are destroyed. But again if you send a new tasksequence to this taskexecuter it will happily continue with this new tasksequence. With preempting you don't shut down or stop the tasksexecuter you just remove it's current task
|
#19
|
|||
|
|||
This is true. And i have read in the manual about preempting tasks. But in my case not only the shoppers stop after the end of the breakdown state, but and the model too. Like something i have done wrong. But it has no sence.
And subtasks are not explained well, in the manual. I don't know if they could help me. But even if they could, why it doesn't work , as it is now? Should i have to tell him someway again, that after the breakdown, continue to the next tasks? I don't know what else to think. |
Thread | Thread Starter | Forum | Replies | Last Post |
Operator task sequence | George Serhan | Q&A | 12 | 03-06-2012 07:19 AM |
Task Sequence Profile | Brandon Peterson | User Development | 6 | 09-21-2009 01:41 PM |
Task Sequence Display | jspeece | Q&A | 4 | 09-15-2009 09:03 AM |
Task Sequence Example 1 | Li Chin | Q&A | 4 | 10-27-2008 06:50 AM |
Task Sequence Question | David Chan | Q&A | 1 | 05-27-2008 03:56 AM |