Author: Steve

SharePoint and SSRS: The given key was not present in the dictionary

Consider this scenario. You have SharePoint with SQL Reporting Services (SSRS) running in SharePoint Integrated mode. You want to use a SharePoint list as a data source for a report.

In the SSRS Data Connection you enter the URL and credentials for the SharePoint site but when you test the connection the following error appears:

The given key was not present in the dictionary

After a bit of trial and error I discovered that this error occurs if the URL entered isn’t the default URL for the web application.

To resolve the issue, go into Central Admin and check the Alternative Access mappings on the SharePoint site used in the data source. Check that you are using the default URL.

Similar but unrelated issue

Note that there is a similar issue that occurs when added managed accounts in Central Admin. These issues are not related. Further details of that issue can be found here:



Changing SSRS database names

I’ve been working on a project where multiple servers including two SharePoint farms running SQL Server Reporting Services (SSRS) in SharePoint Integrated mode need to be moved to a single SQL Server. Each farm has its own SQL Server to host the SharePoint and SSRS databases. To make the job a little more challenging the databases in each farm have the same name.

To complete this job I need to change the names of the databases to avoid duplicate database names on the new SQL Server. Here’s the approach I have taken and few tips to resolve issues caused by the renaming process.

Before attempting the following process, make sure you have a backup.

SQL Reporting Services has two databases:

  • ReportingServerDatabase
  • ReportingServerDatabaseTemp

Backup / Restore :

  1. Backup and restored the databases to the new server, renaming the databases in the process. In this case I added a prefix to distinguish between the two SharePoint farms.
  2. On the SharePoint Server run the SSRS Configuration Tool
  3. Change the database to the new database server name. Note that you don’t get the opportunity to change the Temp database name only the reporting server database.

Update the references to the Temp database:

  1. In SQL Management Studio, locate the ReportingServerDatabase. There are references to the Temp database in several views and many stored procedures (83 in my case).
  2. Generate a script for the Views in the database (Drop and Create)
  3. Generate a script for the Stored Procedures in the database (Drop and Create)
  4. In both scripts search and replace the old Temp database name with the new one
  5. Stop the SSRS Services on the SharePoint Server (in the SSRS Configuration tool)
  6. Run the updated View script
  7. Run the updated Stored Procedures script
  8. Restart the SSRS service


  1. In SharePoint navigate to the SSRS Reporting library (in my case called ReportServer)
  2. Edit a Data Connection
  3. View a report

If you get an error in either of these functions, you should see the name of the Stored Procedure and database it is referencing. Go back into SQL Management Studio and check the references have been updated.




The Power of SharePoint Lists, Flows and PowerApp


Atul Gawande’s book The Checklist Manifesto talks about the power of checklists. Gawande discusses the use of checklists to reduce failures caused when we do things without making use of the things we know. The point being, that in an increasing complex world, mistakes are inevitable but the risk of mistakes can be reduced by using checklists.

Every workplace, both digital and non-digital can benefit from checklists to help ensure people are following the agreed process for frequent and infrequent tasks. Everything from apply for leave, through to landing an airliner in an emergency or carrying out surgery will benefit from checklists. No more winging it!

If you have Office 365, you have a great set of tools for building digital checklists without code. In this blog, we will discuss how to build a simple checklist solution using:

  • SharePoint: create lists with various fields to store and track information
  • PowerApps: build forms based apps for web and mobile users
  • Flow: build workflows and integrate various Office 365 tools


The best way to demonstrate the capabilities of these tools is to use an example. Consider a contractor on-boarding process. When a new contractor is registered to work onsite, they are added into Dynamics CRM and tagged as a contractor, someone checks they have the relevant certifications, a health and safety form is sent to the contractor and once a signed copy is received the contractor is authorised to be onsite and an ID card is issued.

Step 1: Planning and Design

Find a whiteboard and draw an outline of the system you want to build. Use the following checklist to capture the details needed to build the system:

  • The information you want to capture on the form
  • Details of any reporting requirements (check that you capture the information needed)
  • Workflow steps
  • Who can use the system
  • Any special permissions or security around the data

Step 2: Create a list

The SharePoint list will hold the information captured when the checklist is createdList-Settings

In SharePoint Online, create a new list (Modern lists are needed for Flow and PowerApps) and add columns to capture the values you want to track.


In addition to Yes/No checkboxes, you can add choice lists, text, number and date columns. There are currently some limitations with PowerApps when using some types of fields such as People fields and Manage Metadata.

Step 3: Create a Flow

Flows can be initiated when an item is added or updated in a SharePoint list.

Flows can also be started when something happens in another system that supports Flow e.g. When a new contact is added in Dynamics 365 (CRM), create a new item in the Checklist (SharePoint list) and notify customer support.



Step 4: Build a form with PowerApps

PowerApps can be built from a SharePoint lists allowing users to view and update list items from mobile devices or web browser.


From the list created in step 2, choose “PowerApps” and create PowerApp. Office 365 will automatically create a PowerApp using the list columns with Search, View and Edit forms. The PowerApp can be accessed either in the browser or using the PowerApps mobile App (iOS or Android).



SharePoint list based systems are quick and easy to build, making them very popular for all sorts of uses. If you’re looking for a bit of inspiration, I can recommend reading The Checklist Manifesto.







Changing SharePoint Database Servers

How do you upgrade your SQL Server that is hosting SharePoint databases?

A common scenario is a SharePoint 2010 farm using SQL 2008 R2 or SQL 2012. Their is requirement to upgrade to a newer version of SQL Server.

There are a few questions you need to answer before doing the upgrade:

  • What SharePoint build are you running? (SharePoint Build Numbers)
  • What version and edition of SQL are you currently running? (SQLserver Build Numbers)
  • What build number is supported by the new SQL Server version?
  • Are you running SSRS integrated mode?
  • How big are your SharePoint databases?
  • What name will the new server have?

The process for moving to a new SQL server has the following steps:

  1. Install SharePoint cumulative updates
  2. Install SQL Server
  3. Make the SharePoint databases read only on your old server
  4. Backup databases on the old server
  5. Restore to the new SQL Server
  6. Change the databases to writable on the new SQL server
  7. Update the SQL Alias on the SharePoint servers (see below)
  8. IIS Reset on all SharePoint hosts

Configuring a SQL Alias

On the SharePoint Servers running a Command prompt (CMD) as Administrator


If there is an existing SQL Alias, simply change the “Server Name” in the connection parameters to the new server.

If no SQL Alias exists, the you can create an Alias using the Old SQL Servers name and point it to the new server.


If the existing SQL Server is going to remain online for a period of time, you can also add an entry into the Windows HOSTS file, with the new SQLserver IP address and the old SQLserver name (Windows uses the hosts file to resolve the name before checking DNS).

NOTE: Other services accessing SQLserver from the SharePoint servers will also use the Alias.






Intro to PowerApps and Flow

I was lucky enough to get the opportunity to speak at the Digital Workplace Conference 2017 in Auckland on the topic of PowerApps and Flow.

The Digital Workplace Conference covers a full range of topics related to Office 365 and still has a strong emphasis on SharePoint. Topics cover a good mix of technical, thought leadership and customer case studies. I highly recommend this conference for anyone in the intranet, knowledge management, collaboration and SharePoint space.

Microsoft are supporting InfoPath and SharePoint Designer through to 2026, but aren’t adding new features to these tools. The future isn’t a like for like replacement, so it is important to pay attention to what is happening with the new tools.

Here a simple example using a SharePoint list as the starting point to build a basic PowerApp.

Presentation Agenda:

  • Overview of Flow
  • Security and Policies
  • Flow Demo
  • Overview of PowerApps
  • PowerApps Demo
  • Advanced features
  • Coming soon

The demo covered a number of simple but useful scenarios for using Flow and PowerApps and covered off some of the challenges and limitations. Both services are developing rapidly, so keep an eye on the roadmap.

Download Presentation

Thank you to everyone who attended my talk.

Do we still need Structure in SharePoint?

I love Delve, it’s a great way of quickly accessing documents I’ve been working on recently and is particularly useful in when collaborating with people across our business. It is particularly useful when someone moves on and you need to find that document they were recently working on.

I’ve had conversations with a wide range of people over the past few days about the use of Delve and where you still need to structure content to find it in traditional ways. In my opinion structure is still very important for several reasons:

  1. Compliance – documents that must be keep for compliance reasons benefit from structured storage. It allows content to be easily identified, grouped and makes it easier to apply policies.
  2. Archive (High value) –  where you have high value content, the ability to classify the documents, track the approval history and ensure you know which version is authoritative can be important.
  3. Security – structure makes security easier to apply, maintain and audit.
  4. Third-party integration.

You may also have documents that don’t have these requirements. It is still important to think about the life-cycle, particularly what happens if the owner of the documents leaves the organisation and how do I find documents that have been cold for a longer time period but still have value.

Why don’t I just store everything in OneDrive for Business? For all the reason listed above and because we want to ensure the documents are retained over the long term.

Is traditional Site Structure and Search dead? Delve improves user experience and making content more discoverable but it doesn’t suit every use case. Delve also helps address issues such as content stored in Office 365 Groups, OneDrive for Business and other services that work with Office Graph.

What are your thoughts on Delve and SharePoint Structure?

Data Channel : Managing SharePoint Databases

I was recently interviewed for the Data Channel about managing SharePoint databases on SQL Server.

In the interview with Nagaraj Venkatesan (SQL Server MVP from Singapore) I cover many of the common questions DBA’s have about SharePoint including:

  • Things that make SharePoint databases unique
  • Capacity Planning
  • Remote Blob Storage (RBS)
  • Backup / Recovery
  • SSRS Integration
  • Patching

You can download a copy of my presentation from #SQLsat614 which covers the basics for DBA’s and is also useful for SharePoint Admins.

Thanks to The SQL Saturday team for giving me the opportunity to present and Nagaraj for the interview.