Introduction
SharePoint is a web-based collaboration and document management platform created by Microsoft. SharePoint allows users to share files, data, news, and resources through a ‘site’.
A SharePoint site is a website where users will find content for their organization or team. Site content is contained in document libraries and lists.
A document library is a container where files, folders, and their associated metadata are held in a SharePoint site. To learn more, please see Microsoft’s documentation. For example, What is a document library?
A list is a collection of tabular data stored in columns and rows. The rows are list items and the columns may be fields, properties, or metadata. To learn more, please see Microsoft’s documentation. For example, What is a list?
FME provides several ways to interact with SharePoint document libraries and lists. This article will explain the three main methods of SharePoint integration in FME. The method you choose will largely depend on the storage resource you need to access, and what you need to accomplish with your FME workflow.
SharePoint List Reader/Writer
The SharePoint List Reader/Writer reads from and writes to lists only. It does not download, upload, or delete files stored in a SharePoint document library. In FME, each list is a feature type. Each row or item in a list is a feature, and each column or field in a list is an attribute. For more information, including the types of lists supported, please see the Microsoft SharePoint List Reader/Writer documentation.
The SharePoint List Reader/Writer supports several authentication methods. If your SharePoint site is hosted in SharePoint Online, then you must use a web connection. If your SharePoint site is hosted in SharePoint Server (on-premises), then you can use one of the other authentication methods.
The SharePoint List Reader/Writer uses the SharePoint API and, therefore, requires a different web service definition and web connection than the SharePointOnlineConnector. See Creating a SharePoint Web Connection for guidance.
SharePointOnlineConnector Transformer
The SharePointOnlineConnector is a transformer that lets you perform the following actions on files or folders held within a SharePoint Online document library:
- List
- Upload
- Download
- Delete
This connector does not ship natively with FME. Users must download and install the SharePoint Online package from the FME HUB.
Unlike the SharePoint List format, the SharePointOnlineConnector supports authentication via a web connection. The SharePointOnlineConnector uses the Microsoft Graph API, and therefore requires the configuration of a different web service and connection than the SharePoint List Reader/Writer. See Creating a SharePoint Web Connection for guidance.
SharePoint Online as a File System
Some FME readers and writers also support browsing SharePoint Online as if it were a file system. This allows you to read from or write to SharePoint Online without needing to add additional SharePointOnlineConnectors to your workflow. When adding a reader or writer, you can select a file from SharePoint: instead of 'Select File' choose 'Select File From Web' and then 'Browse Microsoft SharePoint'.
The same web service and connection defined for the SharePointOnlineConnector is used to browse SharePoint as a file system in your workflows. Users must download and install the SharePoint Online package from FME Hub.
Creating a SharePoint Web Connection
Before you can use the SharePoint List Reader/Writer, SharePointOnlineConnector, or browse SharePoint as a file system, you need to define a web service and use it to create a web connection.
Determine your Requirements
The connection you need to create depends on your organization’s requirements and guidelines. The following considerations determine how your web service should be configured in FME.
1. How will you be working with SharePoint?
Read the earlier sections in this article and determine if you will be using the SharePoint List Reader/Writer or SharePoint Online Connector. If you want to browse SharePoint as a file system, please follow the SharePointOnlineConnector articles.
2. What Azure Tenancy will you be using?
Microsoft gives the option of both single tenant and multitenant applications. For more information on this topic, see Microsoft’s documentation on Tenancy in Azure Active Directory.
3. Do you want to connect on behalf of a user or as an application?
The SharePointOnlineConnector supports access on behalf of a user, where Microsoft Graph API delegated permissions have been granted to the Azure app registration. As of FME 2024.1, it also supports access as an application, where Microsoft Graph API application permissions have been granted to the Azure app registration.
The SharePoint List Reader/Writer only supports access on behalf of a user at this time, where Microsoft SharePoint API delegated permissions have been granted to the Azure app registration.
Delegated permissions let you connect to SharePoint from FME on behalf of a Microsoft 365 user account. When you provide your username and password to authenticate an FME web service or connection, FME does not store these credentials. They are exchanged in the OAuth2.0 authorization code grant flow for a short-lived access token and a refresh token. FME only stores these tokens. The refresh token is used by FME to obtain a new access token when the current one expires.
Application permissions let you connect to SharePoint with an Azure tenant id, client id, and client secret. These values are stored within the FME web connection and passed to SharePoint each time you need to connect. The client secret should be treated as a password. Configuration of a web service in FME is not required. With application permissions, Microsoft 365 credentials do not need to be provided to authorize the connection in FME. This method of authentication is similar to the use of a 'service account' and uses the OAuth2.0 client credentials grant flow.
For a further comparison of the two authentication methods mentioned above, please see Microsoft’s Overview of permissions and consent.
Once you have reviewed the points above and determined what your requirements are, follow the appropriate article below to create a web service and connection. If you are still unsure, please speak with your Azure or SharePoint administrator
SharePointOnlineConnector
Connect on behalf of a user (Delegated Permissions)
- How to Create a SharePointOnlineConnector Single Tenant Web Connection
- How to Create a SharePointOnlineConnector Multitenant Web Connection
Connect as an application (Application Permissions)
SharePoint List Reader/Writer
Connect on behalf of a user (Delegated Permissions)
- How to Create a SharePoint List Single Tenant Web Connection
- How to Create a SharePoint List Multitenant Web Connection
SharePoint Web Connections in FME Flow
Once your SharePoint web connection is working in FME Form, a few extra steps are needed to get it working in FME Flow.
- How to Create a SharePoint Single Tenant Web Connection for FME Flow
- How to Create a SharePoint Multitenant Web Connection for FME Flow
If you experience issues connecting to SharePoint in FME, please review the Troubleshooting SharePoint Web Connections and Services article.
Tutorials
Below are some additional tutorials for working with SharePoint once you have successfully connected from FME.
- Reading and Writing SharePoint Lists with FME
- Reading and Writing SharePoint Document Libraries with FME
- Document Library Migration & Metadata Updates with Microsoft SharePoint
Comments
0 comments
Please sign in to leave a comment.