Handling System Events

Because addons that use the system script environment do not have access to user interface elements, they must have some way of determining when they need to execute the logic they are written for. The primary means of supporting this need in the addon system is via system events. System events are events that are fired by a host application in response to some trigger, whether it is based on an action occurring in the host application (such as a user routing a request in the client) or the passage of a set interval of time. The best example of this is the Route system event that is available in the client. The route event is triggered every time a request is routed in the client and no applicable entry is found in the routing table. This allows addon developers to create system addons which provide fine-tuned, customizable routing logic.

Addons can take advantage of system events by doing two things inside of a system addon. First, the addon developer must provide a method that can be called whenever a given event is triggered. For example, you might write a "ProcessRoute" method for processing the Route event referenced above. Second, the addon must register for the event by calling the RegisterSystemEventHandler method. This must be done inside the Init method for the addon. An example of both steps is given below.

Handling Events Sample

function Init()
	RegisterSystemEventHandler("Route", "ProcessRoute");
end
 
function ProcessRoute(routeEventArgs)
	routeEventArgs.Handled = false;
	
	if (GetFieldValue("Transaction", "RequestType") == 'Article') then
		ExecuteCommand("Route", { routeEventArgs.TransactionNumber, 
		"Awaiting Article Processing" });
 
		routeEventArgs.NewStatus = "Awaiting Article Processing";
		routeEventArgs.Handled = true;
	end
end

Available System Events

Please visit the relevant product page below to view the list of system events for which an addon can register: