Integrating Data For Business Connectvity Services In SharePoint 2013

Microsoft Business Connectivity Services solutions don’t have any form that is predefined; making is very different from other SharePoint 2013¬†features. Since you don’t know what they look like or what they do beforehand, you won’t know for sure how users are going to be able to interact with them or even how to secure them.

Every Business Connectivity Service solution is a customize solution. Therefore, you will have to use SharePoint Designer 2013 or Visual Studio 2013 as you develop your solution. This is how you will define the external data source. There is no one size fits all configuration or template that you will be able to rely on. You will be designing and implementing what you need so that it best serves the integrated external data of both SharePoint 2013 and Office 2013.

You will be able to develop a design for your Business Connectivity Services solution, but first you have to understand the needs of the business. The goal is to drive your solution towards an environment that it will be successful within. There are five questions you need to answer before you can design a great Business Connectivity Services solution. By collecting such information and sharing it with key stakeholders for approval, everyone will have the same vision in mind for the solution to achieve.

The first thing you need to look at with planning your Business Connectivity Services solution is where the external data is going be stored. You will need to look at three different perspectives:

Understanding the external data source in regards to the network that you create and users that will be accessing it is important. Draw a diagram of these components so that you can see where they fall for your particular network. You will be able to see if they are inside of the internal network and your firewall. You may discover that the infrastructure of the Business Connectivity Services though is an external data source. It could be separated by a boundary network or firewall that is on separate networks.

There are some basic rules that you need to use as a guide for your design:

  • For an external data source, the infrastructure of Business Connectivity Services needs to be solution for a corporate controlled network. To accomplish this, you need to implement on premises solution.
  • For an infrastructure of the Business Connectivity Services that are corporate controlled, you will need to deploy the all on premise solution. This is true even if the external data source is located outside of your own network. The Business Connectivity Services will have to communicate with that external data source. This will be accomplished through the firewall so make sure you plan well for such traffic.
  • Should you use Business Connectivity Services in SharePoint Online, the external data source is the cloud. You will then be implemented the cloud only solution.

Identify where the users will gain access to the Business Connectivity services solution. Make sure you will be able to consider the communications for the data between the Business Connectivity Services solution and the client. They should be encrypted for security. Make sure the browser and Office clients are able to fully support the functions that the solution is to provide.

An external system is going to host the external data. This could be in a SQL server database which is very popular. The connector of that external content type is going to connect to the data in a variety of ways based on what that external system happens to be. Should you be connecting to Exchange Server 2013, you will need to have a .NET connector.

Find out who has the daily administrative responsibility for the external data source. This is a group that you will need to be working with so that you can set up the right connectivity resource for that external data source. That individual will be able to help you discover how the data is to be made available for external use as well as how it is secured.

They can help you to create the necessary credentials to use that external system that is being created. They can also help you to see the big picture in terms of how it will impact your Business Connectivity Services solution.

With Business Connectivity Services solutions, you will be able to connect with an external data source. This is accomplished through one of the following:

  • .NET Assemblies
  • OData
  • SQL Server
  • Windows Communication Foundation Service

It is very important to know how the data will surface for external use. This is going to affect the development tools that you use for creating that external content type. In the following table, you will see those tools that you want to use based on a given external data source.

All of the authentication for communications between Business Connectivity Services and the external system is done internally. This means that Business Connectivity Service is going to offer the external system the information it needs to authenticate the request. Then it will be able to authorize access to data in the external system. Through Business Connectivity Services, there is support for many other types of authentication to be completed.

You will have to know what type of authentication mechanism the external system requires in order to complete your Business Connectivity Services solution design. It has to be designed in a manner that will represent the authentication information to the external system requirements. There are three authentication models that Business Connectivity Services is able to support:

This type of authentication requires credentials to be passed from Business Connectivity Services to the external system. These credentials are a combination of a username and some type of password. There are several ways this can be authenticated, but the most common involves the credentials of the user logging in to be passed through the mapping credentials so that they can be recognized.

The SQL Server database stores External content types, External system definitions, and Model definitions.

You will need to use a development environment to create Business Connectivity Services solution. It should be separate from your production environment though. You can use it to grant higher level permissions to certain users than you would in the production environment. If connecting to OData sources is part of the Business Connectivity Services solution, you must have Visual Studio 2012 or XML editor included.

The external data has to be accessible through the following:

  1. Apps for SharePoint or Office
  2. Business data web parts
  3. External data columns
  4. External lists

Users that can access the app for SharePoint and Office are able to access all of the external data. Working with site administrators you can plan the permissions that will be involved with the external data in your solution.


Implementing The SharePoint BCS DisplayUriField Property

Assume that you have some sort of external SharePoint content type of entity Test. The Test entity has a property associated with it called SearchUrl which when crawling the external content type will have the bdc3:// prefix, to control this you have to implement the DisplayUriField in both of your Finder and SpecificFinder methods. But even AFTER you do this, the URL will still use the bdc3:// prefix. Whats going on?!?!?!

The solution to this is to restart SharePoint Server Search 14 windows service which will force it to pick up the latest version of your assembly.