The Event Handling Framework (EHF) is Aras Innovator®’s latest platform component addition to our suite of tools. EHF brings new functionality and features enabling administrators to configure subscriptions describing events and how those events should be handled.
Leveraging a publishing queue stored in server cache, the platform component uses these subscriptions to publish event data to external systems and services asynchronously. This is one of many other features we ship with our application including the handling of onAfter and custom method code implemented events.
Overview
Now let's delve a little further and take a look at some of this functionality within Aras Innovator. The features we will be taking a look at are Subscriptions, Event Types, Event Methods, and Event Handlers.
Subscriptions
The first feature we will look at is subscriptions. The Subscription ItemType defines which Event Handlers will process all events produced by appropriate Event Types. Here are some examples of subscriptions tied to Event Types.
Here is an example of a single Subscription with an Event Type and Event Handler:
Here is another example of a Subscription with multiple Event Types and Event Handlers. In our diagram below, Subscription 2 contains 2 Event Types and Event Handlers. Each event from Event Type 2 and/or 3 will be processed by both Event Handlers 2 and 3. The same Event Type and Event Handler can also be a part of multiple Subscriptions as well!
Event Types
Building on that we can look at Event Types, which are relationships to Subscription ItemTypes. Event Types allows one to subscribe to specific system events or Item Server Events:
- OnAfterAdd: The event occurs after an Item is added to the database
- OnAfterUpdate: The event occurs after an Item is updated in the database
- OnAfterDelete: The event occurs after an Item is deleted
- OnAfterCopy: The event occurs after an Item is copied
- OnAfterPromote: The event occurs after an Item is promoted to the next state
- OnAfterVersion: The event occurs after an Item is versioned
Every time the appropriate system event occurs, an EHF Item Event is generated and added to the publishing events queue.
These events are generally tied to ItemTypes such as Part but can also be configured to use the method code to add events to the publishing queue as well. This Custom Event Type enables publishing for events that fall outside the scope of the EHF’s standard Item Event Types.
Custom Event methods
This is created by the administrator if they choose to use a Custom Event Type or Custom Event Handler, which requires the method execution called ehf_EventPublishers. There are two types of methods:
- The method execution that adds publishing data to the queue (tied to the ItemType via server events), which also requires a reference to the Event Type via Event Type name, context item id or subject, and context item data. Here is some sample code demonstrating how to use ehf_PublishEvent action to add a custom event to the queue:
- The method that grabs the event data from the queue for publishing (tied to an Event Handler), which may be for post processing before publishing to Aras Innovator or elsewhere. An example of this could be to publish to another external system, say maybe Jira. Here is some example code on how to retrieve the event data from the queue for publishing:
Event Handlers
Event Handlers allow the Administrator to configure how events will be processed. The Ad Hoc Event Handler enables the Administrator to specify an arbitrary C# method with custom logic that will be executed each time new events are processed.
Similarly to how we configure the Event Types as a relationship to Subscriptions, Event Handlers are another item related to Subscriptions.
Installation
Now that we have taken a look at the different ItemTypes and features, we can get into setup within our Aras Innovator instances! Before proceeding note that EHF is currently only available to Aras subscribers to download via FTP.
Let’s begin by downloading the latest Aras Update release if you do not already have it installed. Once the installation completes, we will open the application and do the following:
- Go to the FTP site and download the EHF CD Image
- Within Aras Update select local and then click “Add package reference”
- Select the directory of the downloaded EHF Image
- Then click the install button
- Click through the following prompts for logging until you get to the section asking for the directory of your Aras Innovator instance
- Here you will need to fill out the database information and path to Aras Innovator CodeTree
- Note that you will need to point it to the Innovator folder in your CodeTree, e.g. the default path for CodeTree installation would be something like: C:Program Files (x86)ArasInnovator
-
Hit Next at the bottom and then select your language
-
Press install and within a few minutes you should receive a successful result message
You can then log into your instance of Aras Innovator and utilize the new functionality. In order to verify the application is installed, all you need to do is open up the TOC > Administration > Variables and search for Event Handling Framework in the name column:
Conclusion:
As you can see configuring the EHF within Aras Innovator is not only pretty simple and easy to manage, but also customizable. Creating a new subscription with Event Types and Handlers takes only a few minutes to get up and running. Plus administrators have the option to customize events occurring after through method code!