This project is read-only.

Illustrated Guide to SLAM

This page acts both as an overview of what SLAM does and how to install it. If you want to skip to the install portion click here

What SLAM Does

The best way to demonstrate SLAM is a simple example. Let’s say you have three lists on your SharePoint site: Clients, Projects and Tasks.

Clients Projects and Task Lists

Each Project is tied to a Client and each Task is tied to a Project. Each task has a time estimate tied to it.

Now let’s say you want a report showing the total estimated time for each client, aggregating across all projects for that client and all tasks for each of those projects:

Estimated time across clients

SharePoint would require you to iterate through every client, project and task each time you want to build that report. For a short list like this, probably not an incredible problem, but you can imagine what would happen on large lists.

Enter SLAM. With SLAM you just need to describe the relationships and it will “slam” the data to this automatically built SQL database:

SQL Tables

Now the report becomes a simple SQL query:

SQL Query

How to Install and Configure SLAM

Before starting, make sure that the .NET Framework 3.5 SP 1 is installed on your server. Download it here.

Begin by downloading the latest version of SLAM from the Releases tab (This guide applies to v1.1.6 and higher. If you're using a previous version please download the latest release from the releases tab before continuing). You’ll receive a WSP an EXE and a REG file (RegisterEventSource.reg). Run that REG file. Next, run the EXE:


Go through the installer. You’ll be asked to select the site collection you want to attach SLAM to – simply select the correct SharePoint instance.

Once complete, go to your site collections features. You should see SLAM listed there:

SLAM Feature

Activate SLAM.

Before going further, let’s use this opportunity to create an external database for SLAM if you haven’t already (note that out of the box, SLAM is set up to use a SQL Server database). Don’t worry about creating any tables – SLAM does that all for you. The database user should be set to have db_owner and db_securityadmin roles for that database. At the very least this user needs permissions to create schemas, create tables, select/insert/delete/update anything in the database if using roles is not possible or desirable.

Once you have the database set up, let’s tackle the config file. SLAM comes with a skeleton of the config file, which should help you to fully flesh it out. This is dropped in the virtual directory of each web application where SLAM is installed under /resources. Copy the slam.dummy.config into the root of the SharePoint virtual directory and rename it slam.config.

Here’s our slam.config after we filled it out for this example –

slam.config file

For more information on setting up your config file, click here.

Note that we changed the connection string details to protect the innocent. Make sure your values are valid for the database you set up. If you still haven’t set it up, no more stalling, we need it for this step.

Now go to the SLAM Control Panel. You can find it in the Site Setting screen, in the Site collection Administration column

Site Collection Admin

You should see the SLAM Control panel now.

SLAM Control Panel

The SLAM Control has a few very useful functions, organized into three broad sections. "Diagnostics" shows the messages logged by SLAM (including error messages if any). "Configuration" provides tools to help validate your slam.config file. "Activation" allows you to attached the SLAM event handlers (or detach them if you so choose) as well as performing a data-synchronization step.

If you haven't moved the slam.config into place yet you also see a welcome message in your control panel home page, telling you that you have to move the slam.config into place.

Since SLAM hasn't been attached to our lists yet, Diagnostics won't contain any data. So let's go to "Configuration".

SLAM Control Panel

Currently, there's just one Configuration option available - validate. As SLAM continues to mature as a product, we plan on including some more configuration tools in this area. But in the meantime, let's click "Validate".


If you run into errors, the control panel should be able to guide you on where to look. Keep editing the slam.config as necessary and clicking on “Refresh” until all the types and fields are properly matched.

Once everything looks good, click Back to get back to the Control Panel Home page.


Now click on the Activation button.


This brings us to the Activation section of the SLAM Control panel. From here we can attached the SLAM event handlers, detach them, or resync the SLAM data. resync is necessary if you have data already in your SharePoint lists before attaching SLAM. By default, these items won't be placed into the SLAM database. However, if you want them to be SLAMed, simply Synchronize and that data will be SLAMed.

But let's not get ahead of ourselves! First we need to activate SLAM. Click on Activate.

This will attach the event handlers and bring you to the diagnostic area, showing you the results of the activation procedure -


SLAM has attached itself to the specified lists and/or content types and will build the database and continuously keep it synchronized with SharePoint. This gives us an easy way to verify that SLAM is properly hooked up, just take a quick look at your SLAM database -


You can see that we now have some tables in that database. If you have some tables in the database, everything should be all set, SLAM is up and running!

Now, back to that report –


Simple! Just a touch of SQL and you’re done:

SQL Query

Happy SLAMing!

Last edited Nov 6, 2009 at 4:02 PM by AWSystems, version 10


Fahadkhan_tech Dec 28, 2011 at 10:37 AM 
I confugred SLAM in SHarePOint 2007 but its working on Top Level site and if we configure this on other site collection not on top level site, so it doesn't work. Although I activated Slam feature from Webapplication, Top Level site, Required SiteCollection level everywhere. But its working only on top level site otherwise Event receiver is not occurring.

Please suggest