@Jörg Vogel
You can do this using List. I have attached the sample models.
Using below code to push the tokens from the "Delay" activity to the list. Then use Query in a Pull from activity in order to identify the token.
string name = "Delay";
int flags = 0;
Array tokens = gettokens(current, getactivity(processFlow, name), flags);
for (int i = 1; i <= tokens.length; i++)
{
Token otherToken = tokens;
List("List1").push(otherToken);
}
In the second attached model, I have added one more label named "preempted" and assign "0" as a value to the token. There is a possibility to select the same token again for preemption that's why I have added this and change that value to "1" once it is preempted also set different color to the preempted token.
I hope this helps you.
Thanks.
query-token-preemption-3.fsm
query-token-preemption-4.fsm