Thanks for posting this to the Community.
Were you able to gather any further information on this subject? If you think there is something worth sharing, please post it here. You might help someone out.
No still haven't had any responses for this
Does the "Escalate Incident" action currently create a collection object or is it just a windowless action that precedes an automatic action to set an attribute value on the main window: there are obviously various starting points on where you are at right now.
There is already an "IsBreached" Boolean attribute on the "Incident" top-level object that the system will set to TRUE when the Response Level Escalation breaches so this can be part of the solution.
So I would suggest the following approach noting you may already have some of this in place in terms of object design:
1. Create a new collection "Incident Escalation" object with "no-deletion" type under "Incident Management" module witch the following attributes:
- Create Date: Datetime, persistence type
- Update Date: Datetime, persistence type
- Create User: User Related, persistence type
- Update User: User Related, persistence type
- Summary: String(100), IsName
- Details: String(-1)
- Owner: User Related
2. Drop the "Incident" object onto this and say YES to the pop to create a collection of these on Incident. Switch to Incident tree and rename this object etc if needed (for Example I do this for best practice). Also right-click and select "Manage Action" and give it a name something like "Escalate Incident".
3. Create a new window for this new object. Make "Summary", "Details" and "Owner" mandatory.
4. In your process, add this action at whichever statuses where you want this to be available. It will need to be a "process action" rather than an "optional action" as we need to make it available only at certain times. In your process you should see examples of this around the Add Note action; it does some "magic" and then returns to the status it was invoked from.
5. Add a precondition calculated condition in front of the action so that it is only available:
a) When "IsBreach" = true, AND
b) The count of items in the collection < 8
The calculation for the precondition will be something like this in structure but of course substituting your objectname instead:
static def GetAttributeValue(Incident):
if Incident.IsBreached == true and Incident._IncidentEscalations.Count < 8:
This will only make the "Escalation Incident" action available if the Incident has breached AND the current count of escalations on this Incident is less than 8 (it'll hide the action once eight escalations are added).
So at each status, ie "In Progress", "With Customer" etc you will have a mini-loop of StatusX -> Precondition -> Escalate Incident -> StatusX.
The user you assign the escalation too will be mandatory on the Escalation window (as was the "Owner" field I suggested above) and the data created automatically part of the collection. You will also see in the Audit trail for date/user invoking the action.
6. Add the collection tab to the bottom of the main Incident window(s). Also create a Default Query for this object to format the tab contents
7. Might be nice to also have a calculated attribute (BEFORE SAVE type with dependency set to your new escalation collection) that simply returns the current escalation Level; Just make this a calculation that returns Incident._IncidentEscalations.Count (or whatever the object is called).
That's how I'd approach anyway.