This content has been marked as final. Show 6 replies
There are couple ways to do this. Here's the high level description of what you'd do if you wanted to define your escalation inside the process using boundary timer events.
1. Add three Interactive activities and place them in three roles that represent the roles for your Users 1, 2 and 3.
2. Add a "Timer Catch Event" onto the edge of your Interactive activity for your User 1. Associate the new timer event with the Interactive activity for your User 2. This will create a new boundary event and the escalation you want for User 1.
3. Name the new boundary event "Escalate Issue" -> in the "Implementation" tab, define the new boundary timer event as an Interrupting Event -> specify the interval to be "1d" (one day).
4. In the same way, add another interrupting boundary timer event between your Interactive activites for User 2 and 3.
I might have missed something, but it sounds like your array is just a process data object variable that would be carried as part of the payload with the work item instance as it travels through the process.
For the human tasks for User 2 and User 3, you'd need to assign the task to the manager of the previous participant.
Hope this helps,
Thanks a lot..
I've implemented in the same manner as u suggest It worked....
But here comes new requirement on Escalation...
How Can i Map or escalte to User 2 or User 3 Or User 4 Directly from User 1.(Note: It shouldn't be a Sequence It should Escalte directly to either of User2 or User 3 or User 4 based on requirement.. So Wat exactly the logic should i use in this case...
OK Pradeep I'll look into this.. Thanks for Suggestion its helpful and please throw some light on the below query.
But if i need to set the time in timer event using Xpath functions on payload i.e., bpmn:getDataObject how can i implemenet the same for the escalation..
I.e., if i want to set the Array string to be converted it into String tokenizer do we have a specific xpath function how can i implement the same????
Good question and it brings up another point that you need to be aware of. When setting a deadline for a work item instance in an Interactive activity, you not only need to set the deadline for the Timer event, but also the deadline for the human task that is associated with the Interactive activity.
The reason you set the deadline in the Timer event is to automatically move the instance to the next activity downstream in the process when the timer expires. You also should set the deadline for the human task that is associated with the Interactive activity. The reason you want to set this for the human task is to populate the "Expires" column in the Workspace's Task List so that end users will be able to see exactly when the work item instances in their queue expire.
These examples assume you want to wait a certain number of days and this number is passed in using the variable "sla".
Setting the Interactive Activity's Deadline Using a Timer Boundary Event
To set the boundary timer event on an Interactive activity, in the timer event - if you use the radio button "Time Date", the XPath expression to set the number of days based on a variable would be:
If you instead select the timer event's "Time Cycle" radio button, the logic would be:
Setting the Human Task's Deadline
This timer can also be set programmatically from a process variable that has been passed into human task using an XPath expression. In the human task's "Deadline" tab select "By Expression" from the dropdown. You would use XPath expression shown below if you had a string or integer variable called "Sla" and you wanted to set the number of days based on this variable:
Hope this helps,