@NORIR: Thanks you so much for your response. I got 2 more questions on this:--
1. On obj-set-ticket method, what is the purpsoe of adding multiple tickets? if one ticket is set then it will never come back to the current flow, so when other tickets will get called?
2. Why pega always recommends to use Obj-remove-ticket after Obj-set-ticket method to avoid it from infinite looping? again, if ticket is raised from an activity, 2nd step which has obj-remove-ticket will never be executed.
Apologies for my misconception about the ticket...:-)
Actually we recommend using the SetTicket activity which handles the set/remove complexity for you. Most people treat tickets as single events, which is why you'd want that. But they actually offer far more power.
Let's say you have a requirement that the flow is altered (i.e. needs to jump to a certain step) if the customer is a Gold member, has called in twice about an issue, and the issue involves a sale of more than $20,000. Let's say you've modeled this by having an assignment shape with 3 tickets "Gold", "CalledAgain", and "HighValue". The first time he calls in, you use obj-set-tickets to add "Gold" to the list of tickets. No jump occurs, because all 3 conditions have not been met; i.e. multiple tickets on a shape mean ALL are required, not ANY. Now he calls again, and we set the "CalledAgain" ticket. Finally, during the conversation, he says that he wants to buy a yacht, and now the third and final ticket for that shape "HighValue" is set on the case, and when the CSR presses submit, ticket processing jumps to the assignment, and a manager needs to get involved. The utility shape leading out of the manager's assignment likely removes all 3 tickets so that we don't jump right back to the same spot the next time any other ticket is added to the case.
@MARIK: Thanks for explaing the things in detailed way. But I really couln't understand the exapmle you provided. Apologies for that.
Setting multiple tickets for e.g. x, y and z on the same Obj-Set-Tickets method, does it mean it will look for all 3 tickets as a part of 3 parellel processing or if it searches for only x, then when y and z will be searched?
I also didn't get you explanation on removal of tickets? At what point of time we are coming back to the activity that actually raised the ticket and then it will remove the raised ticket?
We can assign tickets to specific shapes in flows like assignments, decisions, utility, end etc. These now become the goto destinations where our control will jump if all the assigned tickets are set by any activity. Ticket processing will check if all the assigned tickets are set if not then it will not do JUMP. Ticket processing will take care of resetting all the tickets once the JUMP is done to avoid loop.
This is what my understanding was. But my confusion is how PRPC removes ticket because as per my understanding when it jumps to another flow, it will never come back to the calling activity to call method Obj-Remove-Ticket.
Another confusion was related to setting multiple tickets. When you say "Ticket processing will check if all the assigned tickets are set if not then it will not do JUMP", does that mean PRPC will spawn parallel threads to process all those tickets?because each ticket may belong to different flows.
Can a moderator move this topic to the Case Management forum?
I will reiterate that Obj-Set-Tickets is only for advanced users, and most people will be just fine using the SetTicket activity. You only need to use it in the example I described where you have multiple tickets attached to one shape and they need to build up over time.