M3 Event Overview

Background

This document describes the concept of event subscriptions in M3. It also gives a brief overview of the events and how they are managed within the M3 solution.

M3 events overview

An event in M3 is an occurrence of a change to a task or system that triggers a business object. This business object, which contains data and an event verb, becomes an event in the WebSphere business integration system.

M3 events are automatically triggered when significant changes occur in the M3 BE database (db) or when a program starts or stops. Technically the events are generated by the M3 BE foundation layer when the db record is committed to the database. Program-based events are created through the M3 BE Foundation runtime layer. This is a cross-platform runtime framework for the M3 BE application logic that provides services for database access, application jobs and subsystem process management, client-server interaction, output management and monitoring.

Database (db) events: The database (db) events are the most commonly used and are generated at create, update and delete of any db record. These events contain the complete db record of the field value before and after the change such as primary keys, time stamps, the program that initiated the db change, the initial program that started the process and the ID of the user starting the process.

Note: Information only held in memory is not included in the M3 event system, nor are db updates performed outside of the M3 foundation layer such as external SQL updates.

The M3 event system is based on a ‘publisher – subscriber’ relationship managed by the Event Hub and only those events with an active subscriber are published. The publisher itself is unaware of the subscribers and only sends the events to the Event Hub. The Event Hub’s main purpose is to ensure that the events are received by the subscriber and received in the same sequence as generated. Events are normally only held in memory as a means to maximize performance but can be saved to journals if the subscriber cannot receive the published events. Once delivered to the subscribers the events are deleted from the Event Hub.

M3 events are used in multiple scenarios such as to keep Infor Enterprise Search (IES) index on-line updated, trigger Business Object Documents (BODs) and other messages via Infor Enterprise Collaborator (MEC). M3 BE can also subscribe to events that trigger M3 functionality and this is further described below.

M3 event subscription

Users of M3 BE can create their own subscriptions to events in 'Event subscription' (CMS045) where the user enters the event name, the publisher and a possible event operation like create, update or delete. For example when subscribing to M3 BE db events, the event name is equal to the table name in the db (uppercase like MITMAS for the item master) and the publisher is M3. For program events, the event name is equal to the program name. If subscribing to events from other publishers, refer to the documentation of the application for further information about how to add subscriptions to their events.

The users also define under which circumstances the event subscription should be used. Secondly, the users define the usage of the event in related functions. Once the definitions are complete, the related M3 BE autojobs must be re-started in order to activate the subscription in the Event Hub and to cache the definitions performed in M3 BE in order to achieve the best possible performance.

By using the event operation it is possible to subscribe to certain types of events. For example, where ‘D’ is defined as the operation, the subscription is only performed for delete events in the db. This is a useful feature as it automatically limits the volumes of events needing validation.

The event subscriptions are performed for the M3 environment/tenant across all possible companies and divisions. The result of the event activity is however only displayed and used in the company and division of the event. For example, the definition of an event log could be the same for all companies in the environment/tenant but the result is only displayed for the company the user is logged into.

Note: It is only recommended to use M3 events for tables with a limited number of updates. Loading too many events to this subscription may cause severe performance issues in M3 Business Engine, Event Hub, and related products.