rss

Sharepointology

Sharepointology is the study and handling of Microsoft Office SharePoint Server

How To Create Alerts Programmatically

Posted 18Feb09 by Erwin in Development having 17 comments »

alert
This following piece of code will show you how to programmatically create a SharePoint alert:

First I will show you the code snippet to create the Alert, after that I will explain the code step by step.

SPAlert newAlert = user.Alerts.Add();
newAlert.Title = list.Title;
newAlert.AlertType = SPAlertType.List;
newAlert.List = list;
//newAlert.EventType = SPEventType.Add; <= doesn’t work
//use the following codes to set the "eventtypeindex" property
//all =0, added = 1, modify = 2, deleted = 3, web discussions = 4
newAlert.Properties["eventtypeindex"] = "1";
newAlert.AlertFrequency = SPAlertFrequency.Immediate;
//passing false to Update method will refrain from sending the alert confirmation mail
newAlert.Update(false);

Step by step:

The first thing to create the alert is to use the Add method of the Alerts property of the SPUser class, in our example “user” is an instance of a SPUser class.

SPUser user = mySite.Users["domain\user"];
SPAlert newAlert = user.Alerts.Add();

If you want to set an alert for a list, you have to set the AlertType property to SPAlertType.List and set the List property to an instance of the SPList class.

newAlert.AlertType = SPAlertType.List;
newAlert.List = list;

If you want to set an alert for a list item, you have to set the AlertType property to SPAlertType.Item and set the Item property to an instance of the SPListItem class.

newAlert.AlertType = SPAlertType.Item;
newAlert.Item = item;

cautionThe next property you want to set is the EventType property, this didn’t work out the way I wanted it too. I was having a problem with setting the EventType on an SPAlert to SPEventType.Add.

My code wouldn’t throw an error but neither would it set the EventType to SPEventType.Add, in stead it would stay at SPEventType.All.

I fixed this by using the following codes to set the “eventtypeindex” property of the SPAlert:

  • all = 0
  • added = 1
  • modify = 2
  • deleted = 3
  • web discussions = 4
//newAlert.EventType = SPEventType.Add;
newAlert.Properties["eventtypeindex"] = "1";

The last properties to set is the AlertFrequency.

newAlert.AlertFrequency = SPAlertFrequency.Immediate;

If you AlertFrequency is different than Immediate you will have to set the AlertTime property, the AlertTime property defines the next time the alert will be sent.

newAlert.AlertFrequency = SPAlertFrequency.Daily;
newAlert.AlertTime = new DateTime(DateTime.Today.Year, DateTime.Today.Month,
 DateTime.Today.Day, 8, 0, 0);

Last but not least you will have to call the Update method of the instance of SPAlert. You can pass a bool parameter which tells the update if it needs to send an alert confirmation mail or not.

newAlert.Update(false);
-->

CTP of Visual Studio 2008 extensions for WSS v1.3

Posted 12Jan09 by Erwin in Development having no comments »

Visual Studio 2008 extensions for WSS v1.2

Posted 06Jun08 by Erwin in Development having 3 comments »

About

My name is Erwin Bastiaensen and I am a Software Architect from Belgium, with a huge interest in technology. Lately I have been involved in some Java projects and implementing, interfacing and extending a Sharepoint portal.

You can contact me at sharepointology[@]gmail.com.

View Erwin Bastiaensen's profile on LinkedIn