We can use events to design the application to react to specific
actions or behavior that occur. Events enable us to separate customized
functionality from  the application business logic. By using events in the
application where customizations are typically made, we can lower the cost of
code modifications and upgrades to the original application.
- Code modifications to
     customized functionality can be made without having to modify the original
     application. 
- Changes to the original
     application code can be made with minimal impact on the customizations.
Events can be used for different purposes, such as generating
notifications when certain behavior occurs or the state of an entity changes,
distributing information, and integrating with external systems and
applications. For example, in the CRONUS International Ltd. demonstration
database, events are used for extensively for workflow and Microsoft Dynamics
CRM integration.
How Events Work
The basic
principal is that we program events in the application to run customized
behavior when they occur. Events in Microsoft Dynamics NAV are modelled after
Microsoft .NET Framework. There are three major participants involved in
events: the event, a publisher and a subscriber.
- An event is the
     declaration of the occurrence or change in the application. An event is
     declared by a C/AL function, which is referred to as an event publisher
     function. An event publisher function is comprised of a signature only
     and does not execute any code.
- A publisher is the
     object that contains event publisher function that declares the event. The
     publisher exposes an event in the application to subscribers, essentially
     providing them with a hook-up point in the application. 
 
 Publishing an event does not actually do anything in the application apart from making the event available for subscription. The event must be raised for subscribers to respond. An event is raised by adding logic to the application that calls into the publisher to invoke the event (the event publisher function).
 
 Partners or subsystems can then take advantage of the published event in their solutions. An ISV that delivers vertical solutions, and Microsoft itself, are the typical providers of published events.
 
 There are three different event types: business, integration, and trigger events. Business and integration type events must be explicitly declared and published, which means that we must create event publisher functions and add them to objects manually. On the other hand, trigger events, which occur on table and page operations, are published and raised implicitly by the Microsoft Dynamics NAV runtime. Therefore, no coding is required to publish them.
- A subscriber listens
     for and handles a published event. A subscriber is a C/AL function that
     subscribes to a specific event publisher function and includes the logic
     for handling the event. When an event is raised, the subscriber function
     is a called and it code is run. A subscriber enables partners to hook into
     the core Microsoft Dynamics NAV application functionality without having
     to do traditional code modifications. Any Microsoft Dynamics NAV solution
     provider, which also includes Microsoft, can use event subscribers.
There can
by multiple subscribers to a single event publisher function. However, a
publisher has no knowledge of subscribers, if any. Subscribers can reside in
different parts of the application than publishers.
How to Implement Events
Implementing
events in Microsoft Dynamics NAV consists of the following tasks: 
1.    Publish the event.
For business and integration events, create and configure a function in an application object to be an event publisher function.
For business and integration events, create and configure a function in an application object to be an event publisher function.
2.    Raise the event.
Add code that calls the event publisher function.
Add code that calls the event publisher function.
     3.   
Subscribe
to the event.
At the consumer end, add one or more subscriber functions that subscribe to published events when they are raised.
At the consumer end, add one or more subscriber functions that subscribe to published events when they are raised.
 
 
No comments:
Post a Comment