System events in ManagementStudio are specific actions that occur that can be 'hooked' into and expanded upon. This can be with emails alerting a user to the event e.g. An Application being archived. more commonly these events are used to trigger a PowerShell script that can use the API to add additional functionality not built into ManagementStudio. E.g. when an Application is superseded to another then some code can be run check a User's migration readiness.  


Listening for Events

Events need to be subscribed to from a section that supports them, the main sections that can use events are the PowerShell Panel, Email Templates Panel and My Preferences page

  1. 'PowerShell Scripts' Panel 
    1. Administration\Project Admin\PowerShell Scripts
    2. Further information on the PowerShell Panel can be found here.
  2. Email Templates Panel
    1. Administration\[Module]\Email Templates
    2. Further information on the PowerShell Panel can be found here.
  3. My Preferences Page
    1. My Preferences button in the top right of the main window title


Event Args

When an event is fired it will pass a list of Ids in the 'Items' variable (AppIds, MigrationIds, DeviceIds, etc) to the script. Some events also supply additional arguments in the EventArg1 and EventArg2 variables.

Note, the Process Changed and Owner Changed events pass objects of data rather than Ids as see 'Event List' section for more information.



Event List

EventArg 1Arg 2AppsUsersDevicesDeployUnitDefect
Created
Updated
LockedTrue / False
ArchivedTrue / False
DeletedTrue / False
Process Changed1*
Team Member Changed2*
Blueprint AddedBlueprintId
Blueprint RemovedBlueprintId
Defect AddedDefectId
Attachment AddedAttachmentId
Attachment RemovedAttachmentId
Contact AddedContactId
Contact RemovedContactId
Excel Data Imported














Survey Signed OffSurveyIdTrue / False









Deploy Unit Added ToDeployUnitId

DeployUnit Removed FromDeployUnitId

Deploy Unit Slot Booked DeployUnitId

DeployUnit Slot ChangedDeployUnitId









App Superseded By



App Status Accepted



App Status Pending



App Status Rationalised




App Status Rejected




1* The 'Items' variable is replaced with a  list of objects of type: {Id, FromProcessId, FromSubProcessId, ToProcessId, ToSubProcessId}

2* The 'Items' variable is replaced with a  list of objects of type: {Id, UserId, Owner}