Overview of Business Connectivity Services in SharePoint 2013


Applies to: SharePoint Foundation 2013, SharePoint Server 2013

Topic Last Modified: 2016-12-16

Summary:  Understand SharePoint Business Connectivity Services (BCS) and how SharePoint Business Connectivity Services brings external data into SharePoint and Office through the cloud and on-premises configurations.

This article introduces you to Microsoft Business Connectivity Services. After you read this article you’ll understand:

  • What Business Connectivity Services is.

  • The business problems that Business Connectivity Services solves for and when to use it.

  • How Business Connectivity Services works.

  • What the three basic Business Connectivity Services solutions are and what they look like.

This article is your starting place for using Business Connectivity Services to create data integration solutions in SharePoint 2013 and Office 2013. You have to understand the concepts in this article before you can move on to planning, developing, and installing Business Connectivity Services data integration solutions. The examples in this article are used throughout the remainder of the Business Connectivity Services documentation.

In this article:

Business Connectivity Services is a centralized infrastructure in SharePoint 2013 and Office 2013 that supports integrated data solutions. With Business Connectivity Services, you can use SharePoint 2013 and Office 2013 clients as interfaces into data that doesn’t live in SharePoint 2013 itself. For example, this external data may be in a database and it is accessed by using the out-of-the-box Business Connectivity Services connector for that database. Business Connectivity Services can also connect to data that is available through a web service, or data that is published as an OData source or many other types of external data. Business Connectivity Services does this through out-of-the box or custom connectors. The connectors, as the name implies, are the communication bridge between SharePoint 2013 and the external system that hosts the external data. For an overview of using OData in BCS from a developers perspective, see Using OData sources with Business Connectivity Services in SharePoint 2013 in the MSDN Library

SharePoint 2013 has several ways to present the external data. Probably the most common way is to present the data in an external list. External lists look and feel like regular SharePoint lists, except that they can only display external data. If you want to integrate external data alongside other data in a list or library, you would use an external data column. An external data column is a column type that you can create and add to a SharePoint list just as you would add a Person or Group or Date and Time column, except that it is displays external data. For more information about external data and external lists from an information worker perspective, see Introduction to External Data and Differences between native and external lists on Office.com. SharePoint 2013 includes Business Data Web Parts for presenting and interacting with external data and apps for SharePoint, which can also use external data. For information about apps for SharePoint, see Overview of apps for SharePoint 2013. For an overview of BCS from a developers perspective, see Business Connectivity Services in SharePoint 2013 in the MSDN Library.

Once the external data is available, you can then perform different operations on the data such as Create, Read, Update, Delete, and Query (CRUDQ). Depending on the operations that are enabled, the changes made to the data in SharePoint 2013 or Office 2013 can be automatically synchronized back to the external data source. You can search the external data by using SharePoint Search.

Every company deals with data that is located in different places, is accessed in different ways, and is used for different purposes. Some of this data might live in SharePoint 2013 and some of it might not. Companies might have complete control over some of that data in file shares and databases and SharePoint 2013, as in the case of their sensitive employee records and content about product research. It is just as likely that they will use other data that they do not have control over, data that is provided by a third party, such as customer information or stock quotes. Companies then have to develop business processes that use the important data from each of those sources to accomplish their business goals.

Frequently, companies create custom applications that take data from these different data sources — both structured and unstructured — and make them available to their employees through custom interfaces that bring the structured and unstructured data together. This is usually done by in-house developers and it incurs some level of overhead to develop and maintain. Business Connectivity Services gives companies a way to easily integrate external data into SharePoint 2013 solutions and Office 2013 clients. Depending on the type of solution, you can manipulate the data and update it in the external system. You can also take it and work with it offline. Users can then work with SharePoint 2013 data and external data in the familiar SharePoint 2013 and Office 2013 tools.

You can use Business Connectivity Services to build many types of data integration solutions. Here are some examples.

  • Help desk   Enterprise help desks that provide internal technical support can use Business Connectivity Services. For example, the support tickets and the knowledge base that the help desk technicians use are stored in two separate databases, both of which are not in SharePoint 2013. By using Business Connectivity Services, the company can retrieve data from both sources, filter and sort it, and then present it for interaction in an external list in SharePoint 2013. What’s more, with the correctly configured permissions, the help desk technicians can manipulate the data, while users with support questions only have permissions to search for their open support tickets to check the status. Technicians and information workers can also access the data through various Office 2013 clients. Open support tickets are routed through predefined steps by workflows. Help desk managers can view current support ticket data by technician in reports and dashboards. Typical reports indicate the number of support issues assigned to each support specialist, the most critical issues currently, and the number of support incidents that are handled by each support specialist during a given time period.

  • Artist tracker   A talent agency integrates its database of artists into its internal website. The complete list of artists, their contact information, and schedules can be taken offline in SharePoint Workspace or in Outlook. Recording contracts can be generated and filled from the website, or Outlook, and a workflow guides each contract through its various stages. New artists can be added from the website or from Outlook. By using this solution, agents always have the information that they need and they can perform many key tasks by using familiar Office interfaces.

  • Sales dashboard   A sales dashboard application helps sales associates in an organization quickly find the information that they need and enter new data. Sales orders and customer information are managed in an external application, such as Salesforce.com, and integrated into the solution by using Business Connectivity Services. Depending on their roles, team members can view sales analytics information, individual team members’ sales performance data, sales leads, and a customer’s contact information and orders. Sales professionals can view their daily calendars, view tasks assigned to them by their managers, collaborate with team members, and read industry news from a web browser, or from Outlook. By using Word 2013, managers can author monthly status reports that include data from the external systems.

For information on how to get started with BCS from a developers perspective, see Get started with Business Connectivity Services in SharePoint 2013

Business Connectivity Services is just one way to integrate external data into SharePoint 2013 and Office 2013 client-based business data solutions. There are custom Java script-based solutions, custom data connections, and custom-coded Web Parts. In addition, apps for Office are also available. apps for Office can access external data directly or use the Business Connectivity Services APIs and the centralized Business Connectivity Services infrastructure. While each of these has its purpose, Business Connectivity Services offers several advantages for enterprise-scale data integration.

Centralized infrastructure   Business Connectivity Services is a centralized infrastructure that supports integrated data solutions. By itself, the infrastructure is unaware of any external system or external data. Business Connectivity Services and the Office 2013 clients need to be told where the external data is, how to connect to it, and what can be done with it. This data about the external system and external data is wrapped up in a definition called an external content type. External content types make Business Connectivity Services aware of external systems. External content types are centrally stored and secured and can be shared by many Business Connectivity Services solutions. External content types allow you to deeply integrate external data into SharePoint 2013 and Office 2013 solutions. The Business Connectivity Services infrastructure is very similar in server and client environments. Because of this, the developer can create an external content type and with minimal administrative intervention and that external content type can be used in both client and server solutions.

Managed authentication   Another advantage of the centralized infrastructure in Business Connectivity Services is that it handles the security transactions with the external system. When the developer creates the external content type, information about which authentication protocol and credentials to use is included. Business Connectivity Services passes this configuration information to the appropriate connector and the connection is made. This means that users don’t have to provide any additional credentials when they want to work with the external data. Business Connectivity Services can use credentials stored in the Secure Store Service. These stored credentials have access to the external data and they are mapped to users’ individual credentials or a security group that the users are members of. This enables a single sign-on experience for the users. On the client-side, users must know the credentials that the external system requires and provide the credentials the first time that they access the external data. The credentials are then securely stored on the Windows client.

Search external content   Because the Business Connectivity Services infrastructure is built into SharePoint 2013, it takes advantage of common SharePoint 2013 features such as Search. The external data is defined as a content source that SharePoint 2013 crawls and indexes. The search results from external data are security trimmed — meaning the user only sees what they have permissions to see — just as all other search results in SharePoint 2013 are. Expert users, other users, and developers can interact with external data by using the lists, Web Parts, and column features that they are already familiar with.

Business Connectivity Services has server-side components and client-side components. Business Connectivity Services solutions can include one or the other or both in a single solution. These two component stacks work completely independently of one another. However, they are structured very similarly. They both use the same configuration data. For the server-side, the configuration data is stored in an external content type. External content types are stored in the Business Data Connectivity (BDC) Metadata Store database. For the client-side, the configuration data is stored in a BDC model on the client in the BDC client-side cache. The BDC model is just a version of the external content type that is exported to an XML file. The XML file is imported into the Office client. The server component stack and the client component stack can access the same external content sources. The two stacks are distinguished by the user interfaces, where and how the data that define the external connection and external system are stored, and where the services run.

In Business Connectivity Services server-side solutions, users interact only with external data in a browser on a SharePoint site. This can be on any type of SharePoint site that supports external lists, external data columns, external Web Parts, or apps for SharePoint. SharePoint Enterprise Search of external data is supported in the browser as well.

For Business Connectivity Services to connect to an external data source and interact with the data there, that external system must be defined in a way that Business Connectivity Services understands in an external content type. An external content type contains the name of the external system and what kind of data source it is, what type of authentication to use for connections, where it can connect to, which operations can be performed, and, optionally, any filters and sorting instructions to be used so that only the desired data is returned and that the data is in the correct order.

Figure: Business Connectivity Services server-sidecomponents

The layers of the BCS server-side architecture
  1. A user opens a SharePoint web page that contains external data to interact with it. At a minimum, if the user has permissions to access the data, the user will be able to read it. In addition, depending on how the supported operations are defined in the external content type and the level of permissions that the user has to the external content type, the user might be able to create new records, update existing records, and delete existing records. If the user is in an Enterprise Search website, and the user has the necessary permissions, the user can run queries against the records. This data can be in an external list, external data columns, external Web Parts, or apps for SharePoint.

  2. A request for the external data is created and passed to the BDC Server-Side Runtime service. The BDC Server-Side Runtime does a variety of jobs. It is the working component of Business Connectivity Services and handles most of the actual activities involved with taking requests for external data, making connections and interacting with the external data, and returning data to the user.

  3. The BDC Server-Side Runtime accesses the BDC Metadata Store and retrieves the external content type. The BDC Metadata Store is a database stored in SQL Server. It only contains information about the connections. No external data is stored in the BDC Metadata Store or anywhere else in SharePoint 2013.

  4. The BDC Server-Side Runtime reads the external content type to see how to connect to the external data source. The BDC Server-Side Runtime retrieves credentials from the Secure Store if it is necessary. For more information about the Secure Store, see Plan the Secure Store Service in SharePoint Server 2013.

  5. The BDC Server-Side Runtime passes the request to the connector that can communicate with the external system.

  6. The connector establishes communication with the external system, retrieves the data, and performs any write actions that might be pending. The external data is filtered and sorted before it is returned back through the chain to the user.

In the client-side version of Business Connectivity Services solutions, the Office 2013 applications interact with external data. A client-side solution can run independently of SharePoint. Not all of the Office 2013 applications interact with external data and some of them only do so in a read-only manner. The following table provides details on which operations are supported, how the applications can access the data, and how the connection is made.

Table: Applications and operations supported in Business Connectivity Services

Application Supported operations Access external data online or offline ClickOnce or import BDC model


Read only


Import BDC model




Import BDC model


Read only

Online and offline

Import BDC model



Online and offline

Import BDC model




Import BDC model



Online and offline

Click Once installation

Before you can work with external data in an Office 2013 client you must have the prerequisite software listed here Prerequisite software that is needed to work with external data on Office.com

In the client-side solutions, there is some work that must be done before users can access external data through the Office client applications.

  • First, when the developer creates the external content type, it must be configured to support Office clients.

  • If the solution uses Access, the external content type must be exported as a BDC file and then imported into Access.

  • If the solution uses Word, InfoPath, or Excel, the application will install Microsoft SQL Server Compact 4.0 and Microsoft .NET Framework 4, and then connect to the external data the first time that the application is used.

  • If the solution uses Visio, you will use the Link Data To Shapes feature in Visio to browse to an external list and connect to it.

The following diagram shows the client-side architecture of Business Connectivity Services. You can assume that either the BDC model file was imported into the indicated applications or connections have been made to Outlook.

Figure: Business Connectivity Services client-side architecture

The components of the BCS Client-side architecture
  1. A user attempts to access external data through one of the Office applications and the application generates a request for the data.

  2. The request is passed to the BDC Client Runtime. The BDC Client Runtime performs the same functions as the BDC Server-Side Runtime.

  3. The BDC Client Runtime queries the BDC model, which is stored in the BDC client-side cache, for the details about how to connect to the external source, which credentials to use, and what the external data source is. The BDC client-side cache is an instance of Microsoft SQL Server Compact 4.0, which is installed the first time that a client-side Business Connectivity Services solution is used.

  4. If the user’s credentials don’t have access to the external data source, the user is prompted to enter a set of credentials that do. Those credentials are then stored in the Windows Credential Manager for later use.

  5. Once the connection information is retrieved, the BDC Client-Side Runtime passes the request to the appropriate connector, which establishes communication with the data source and performs the requested and permitted operations. As with the server-side solution, the authentication is handled by the Business Connectivity Services client.

  6. The data is then filtered and sorted by the external system and returned through the communication chain to the Office application.

At the most fundamental level, every Business Connectivity Services configuration is driven by the location of the Business Connectivity Services infrastructure and the location of the external system that hosts the external data. There are only two ways that the Business Connectivity Services infrastructure and the external system can relate to one another. The Business Connectivity Services infrastructure and the external system can be on your corporate network (all-on-premises), or both the Business Connectivity Services infrastructure and the external system are in the cloud (cloud only).

The first solution is one where the SharePoint 2013 farm and the external system are both behind a company’s firewall and live in company-controlled data centers and users will have to be on the company’s network to access it. This first type is an all-on-premises solution. The following diagram shows an example of an all-on-premises configuration. In this example, users interact with external data through an external list and through Outlook. The external data source is a SQL Server database that contains customer contact information.

Figure: Diagram of an all-on-premises solution

A structured on premises BCS solution. Showing the
  1. A user goes to an external list on a SharePoint site. The external list creates a request for data by using the user’s Windows credentials.

  2. The request is sent to the BDC runtime in the SharePoint farm.

  3. The BDC runtime accesses the external content type for the list (in the BDC Metadata Store) to see how to access the external system and which operations can be performed. By using either the user’s credentials or the credentials from the Secure Store (as defined in the external content type), the BDC runtime passes the request to a connector that can handle the request, in this case the SQL connector.

  4. The SQL connector accesses the external data source and retrieves the data, and applies any formatting and filtering as specified in the external content type. The data is passed back through the request chain to the list where the user can interact with it.

  5. The user wants to take this data on a portable computer in Outlook so that the user can use the Connect to Outlook feature on the external list to take the data offline.

  6. The Click Once installation runs and installs the required BDC model on the client. This lets the BDC Client-Side Runtime access the external data directly.

  7. Outlook then connects to the external data by using the configuration in the BDC model and synchronizes it into an Outlook SharePoint external list, formatted as a contacts list.

  8. The user can then interact with the contact data, and any changes that the user makes can be written back to the external data source either by an on-demand synch or by waiting six hours for the automated synchronization.

Business Connectivity Services in a SharePoint Online tenancy can access data from various cloud services. For example, SharePoint Online can access data from a third-party stock quotes service or from the Microsoft Azure Marketplace Data Market by using the Business Connectivity Services web service connector. Because this type of solution doesn’t include any customer-maintained SharePoint 2013 farms and hardware and consists of only cloud-based services, it is called a cloud-only solution.

Figure: Diagram of a cloud-only solution

The sequence of data flow for BCS All In The Cloud
  1. The user logs on to SharePoint Online and opens an external list that the user has rights to.

  2. The Business Data Connectivity service runtime queries the external content type for the list in the Business Data Connectivity services metadata store to learn how to access the external system, which operations can be performed, and which credentials to use. The external content type tells the BDC runtime to retrieve the necessary credentials from the Secure Store.

  3. The Business Data Connectivity service runtime passes the request (SOAP over HTTP) to the endpoint of the SQL Azure Windows Communication Foundation (WCF) service.

  4. The SQL Azure service returns the data in a SOAP envelope.

  5. The SharePoint Online site displays the external list in the user’s browser. The user can then perform all the configured operations on the data source for which the user has permissions.

For an overview of the procedures to deploying this solution, see Deploy a Business Connectivity Services cloud-only solution in SharePoint 2013. For the procedures to deploy this solution, see Make an External List from a SQL Azure table with Business Connectivity Services and Secure Store on Office.com

The BCS hybrid solution makes use of SharePoint Online and SharePoint 2013 on-premises. It integrates data from an on-premises OData service endpoint into a SharePoint Online tenancy. The solution looks as shown in the following video and diagram. For more information about SharePoint hybrid configurations and how data and authentication flow in the SharePoint BCS hybrid solution, see Hybrid for SharePoint Server 2013.

Video: Watch a demonstration of the BCS hybrid solution overview.

Video (play button) icon

Figure: Business Connectivity Services hybrid solution

Shows the sequence of actions for BCS hybrid
  1. An information worker logs on to the SharePoint Online tenancy using the user's federated account and opens an app for SharePoint or external list that needs data from an on-premises OData data source. OData is an open protocol that is used to query and update data. For more information about OData, see Introducing OData: Data Access for the Web, the cloud, mobile devices and more in the MSDN Library.

  2. The external list creates a request for the data and sends it to Business Connectivity Services. Business Connectivity Services looks at the connection settings object to see how to connect to the data source and which credentials to use.

  3. Business Connectivity Services retrieves two sets of credentials.

    1. Business Connectivity Services retrieves the Secure Channel certificate from the Secure Store in SharePoint Online. This is used for SharePoint Online authentication to the reverse proxy.

    2. Business Connectivity Services retrieves an OAuth token from the Azure AD Service. This is used for user authentication to the SharePoint 2013 on-premises farm. You get access to the Azure AD service with your SharePoint Online subscription. It is a security token service that manages security tokens for users of SharePoint Online. For more information about the Access Control Service, see Access Control Service 2.0 in the MSDN Library. For more information about OAuth, see OAuth 2.0 on the web.

  4. Business Connectivity Services sends an HTTPS request to the published endpoint for the data source. The request includes the client certificate from the Secure Store and the OAuth token, as well as a request for the data. The reverse proxy authenticates the request by using the client certificate and forwards it to the on-premises SharePoint 2013 farm. For more information about publishing SharePoint to the Internet, see SharePoint publishing solution guide in the Forefront Technical Library.

  5. The on-premises farm retrieves the user’s cloud identity from the OAuth token (for example, user123@contoso.com), and through the Client Side Object Model (CSOM) code, maps it to their on-premises identity (for example, Contoso\user123). The on-premises credentials are mapped to credentials that have access to the external data via a Secure Store target application.

  6. The on-premises Business Connectivity Services forwards the request to the OData Service endpoint. The OData Service authenticates the request (via IIS) and returns the data, which is passed back through the chain to the external list for the user to work with.