In SharePoint 2013, to handle events in share point app need to create Remote event receivers or App Event receivers. Yes, In SharePoint 2013 event receivers are modified little bit and two new concepts are introduced.
Remote Event Receivers:
Remote event receivers handles events in an item in the app such as list item, library item or web. In remote event receivers, app responds, when ever item added, updated or deleted in a list/library. When ever creating new remote event receiver you can select the type of event receiver. for Eg. you select ListItemEvent, that fires whenever user add/updates/deletes the list item.
Remote Event Receivers:
Remote event receivers handles events in an item in the app such as list item, library item or web. In remote event receivers, app responds, when ever item added, updated or deleted in a list/library. When ever creating new remote event receiver you can select the type of event receiver. for Eg. you select ListItemEvent, that fires whenever user add/updates/deletes the list item.
- Remote event handler, a web application should be exists.
- Web service will be added to the web application That web service contains the code to handles the event.
Code file contains two methods ProcessEvent() and ProcessOneWayEvent().
How Remote Events Works?
following XML shows the elements.xml file that shows remote event receiver item adding. Here URL means the URL of web service contains code to handle the event.
App Event Receivers:
App event receivers can handles the events for an app in share point like App installing, App uninstalling, App deleting.This will be useful thing, you want to send an notification email to the users when an app got deleted. We can handle few app events through this model. we can't update a list item in HandleAppInstalled Event, because there is no list exists in the app web when first installed the app.
We can handle following events,
Will update two more posts regarding how to create remote event handlers and App event handlers.
ProcessEvent() handles before action happened means before item added/updated.deleted. This is 2 way Synchronous event. Here 2- way means, remote calls will handled and provides code to the share point to get context token for call backing to share point.
ProcessOneWayEvent() handles after action happened means after item added/updated/deleted. This is one way Asynchronous event. One way means will just call the web service without callback to share point.
How Remote Events Works?
- User makes an action (Add new/ Update/delete)
- Share point communicates to the ACS and asks the Access token for the current Logged-in user information
- Share point communicated to the web service and what to do for the event in the back end system.
- Web service will Communicates to the ACS for it's token to do operation in SharePoint back end. Back end System sends Success/Failure message to web service.
following XML shows the elements.xml file that shows remote event receiver item adding. Here URL means the URL of web service contains code to handle the event.
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="104">
<Receiver>
<Name>MyCustomRemoteEventReceiverItemAdding</Name>
<Type>ItemAdding</Type>
<SequenceNumber>10000</SequenceNumber>
<Url>~remoteAppUrl/RemoteEventReceiver1.svc</Url>
</Receiver>
</Receivers>
</Elements>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Receivers ListTemplateId="104">
<Receiver>
<Name>MyCustomRemoteEventReceiverItemAdding</Name>
<Type>ItemAdding</Type>
<SequenceNumber>10000</SequenceNumber>
<Url>~remoteAppUrl/RemoteEventReceiver1.svc</Url>
</Receiver>
</Receivers>
</Elements>
App Event Receivers:
App event receivers can handles the events for an app in share point like App installing, App uninstalling, App deleting.This will be useful thing, you want to send an notification email to the users when an app got deleted. We can handle few app events through this model. we can't update a list item in HandleAppInstalled Event, because there is no list exists in the app web when first installed the app.
We can handle following events,
- Handle App Installed
- Handle App Uninstalling
- Handle App Upgraded
Will update two more posts regarding how to create remote event handlers and App event handlers.