2023:SharePoint (CMIS Binding): Difference between revisions

From Grooper Wiki
 
(28 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{AutoVersion}}
[[image:sharepoint.png|frame]]
[[image:sharepoint.png|frame]]


<blockquote>
<blockquote>{{#lst:Glossary|SharePoint}}</blockquote>
The '''SharePoint''' Connection Type is a CMIS binding that connects to Microsoft SharePoint, providing access to content stored in Document Libraries and Picture Libraries.
</blockquote>


Connectivity is compatible with both online and on-premises SharePoint deployments via the SharePoint REST API. 
Connectivity is compatible with both online and on-premises SharePoint deployments via the SharePoint REST API.  


<br clear = all>
<br clear=all>


== About ==
== About ==
Microsoft SharePoint is a web-based collaborative platform that integrates with Microsoft Office.  It is primarily a document management and storage platform, but it is highly configurable and its implementation varies from company to company.  Grooper utilizes what SharePoint calls "Document Libraries" to import and export documents with property mappings.  When you create a Document Library in SharePoint, not only do you have access to standard document properties like "Created By" or "Content Stream Length", but you can add custom ones as well.  This allows Grooper to map fields from a data model onto documents within a Document Library.
Microsoft SharePoint is a web-based collaborative platform that integrates with Microsoft Office.  It is primarily a document management and storage platform, but it is highly configurable and its implementation varies from company to company.  Grooper utilizes what SharePoint calls "Document Libraries" to import and export documents with property mappings.  When you create a Document Library in SharePoint, not only do you have access to standard document properties like "Created By" or "Content Stream Length", but you can add custom ones as well.  This allows Grooper to map fields from a data model onto documents within a Document Library.


{|cellspacing="5" cellpadding="10"
{|class="attn-box"
|-style="background-color:#f89420; color:white"
|
|style="font-size:14pt"|'''!'''||Supported versions include SharePoint 2013 or higher.  However, for SharePoint 2013, connections must be made to the root site.  Connecting directly to a subsite is not supported.
&#9888;
|
Supported versions include SharePoint 2013 or higher.  However, for SharePoint 2013, connections must be made to the root site.  Connecting directly to a subsite is not supported.
|}
|}


{|cellspacing="5" cellpadding="10"
{|class="attn-box"
|-style="background-color:#f89420; color:white"
|
|style="font-size:14pt"|'''!'''||'''BE AWARE!'''
&#9888;
|
'''BE AWARE!'''


When querying a SharePoint repository, the <code>IN_FOLDER</code> predicate is not supported.  You must use the <code>IN_TREE</code> predicate to search for documents in Document Library's folder structure.
When querying a SharePoint repository, the <code>IN_FOLDER</code> predicate is not supported.  You must use the <code>IN_TREE</code> predicate to search for documents in Document Library's folder structure.
Line 26: Line 29:
Also, be aware the <code>IN_TREE</code> search is recursive where <code>IN_FOLDER</code> is not.  This means any subfolders will be queried as well as the targeted folder.
Also, be aware the <code>IN_TREE</code> search is recursive where <code>IN_FOLDER</code> is not.  This means any subfolders will be queried as well as the targeted folder.
|}
|}
== Version Differences ==
Connectivity to SharePoint sites via the SharePoint CMIS Binding is a new feature as of version 2.72!


== How To:  Set Up a SharePoint Connection ==
== How To:  Set Up a SharePoint Connection ==


<tabs>
[https://app.supademo.com/demo/cm9bnzgnm3gampxcbfhbe27ss Click here for an interactive walkthrough]
<tab name="Step 1">
{|


[[File:2023_SharePoint_CMIS_Binding_How_To_Set_Up_a_SharePoint_Connection_Step_1_01.png]]
# Expand your Projects Folder and right-click the '''Project''' (or '''Folder''') where you want to add the '''''CMIS Connection Type'''''
# Select "Add", followed by "CMIS Connection..."
# Within the Add window, name your '''CMIS Connection'''.
#* For this example, we've named ours 'SharePoint', after its '''''Connection Type'''''.
# Click Execute to create.
# Within your newly created '''CMIS Connection''', expand the dropdown menu on the Connection Settings tab.
# Select the SharePoint option.
# Enter the '''''Base URL''''' which will connect Grooper to your SharePoint site.
# Select your '''''Authentication Method'''''.
#* If your URL is secure, then OAuth may be the only '''''Authentication Method''''' available. In order to use OAuth, you will need to save, log in via '''''Authentication''''' sub-property, then save once more.
#* If using an unsecure URL, then you will select from the following Authentication Methods:
#** '''''Anonymous Authentication'''''
#** '''''Auto Authentication'''''
#** '''''Basic Authentication'''''
#** '''''NTLM Authentication'''''
# If necessary, turn the '''''Subsites''''' property from False to True.
#* This will enable Grooper to access any subsites that your SharePoint connection has.
# Click the List Repositories button to display all available, connected '''Repositories'''.
# From the list, select the '''Repository''' you wish to import.
# Click the Import Repositories button.
# Ensure you have selected the desired '''Repository''' and click Execute.
# Once successfully imported, the '''Repository''' will appear in the Node Tree as a child Object of your '''CMIS Connection''''.
#* In addition, the Import Status on the '''CMIS Connection''' will turn from False to True.


|}
== How To: Set Up a Document Library in SharePoint ==
</tab>
<tab name="Step 2">
{|
[[File:2023_SharePoint_CMIS_Binding_How_To_Set_Up_a_SharePoint_Connection_Step_2_01.png]]
<br>
<br>
|-
[[File:2023_SharePoint_CMIS_Binding_How_To_Set_Up_a_SharePoint_Connection_Step_2_02.png]]
 
|}
</tab>
<tab name="Step 3">
Expand the "Connection Settings" heading.  Enter the Base URL for your SharePoint site.
 
 
[[image:sharepoint url.png|center]]
 
 
The SharePoint OAuth connection implements OAuth 2.0 to connect Grooper to SharePoint using your Windows credentials.  Click the ellipsis button at the end of the "Authentication" line to connect.</p>
 
 
[[image:sharpoint auth.png|center]]


As mentioned earlier, Grooper connects to Document Libraries in SharePoint to map fields in a data model to properties of a Document Library.  First, we need to make a Document Library and set up its properties.


</tab>
<tab name="Step 4">
{|


 
[https://app.supademo.com/demo/cm9ct2cox47i6pxcbko7wluuq Click here for an interactive walkthrough]
[[File:2023_SharePoint_CMIS_Binding_How_To_Set_Up_a_SharePoint_Connection_Step_4_01.png]]
 
|}
</tab>
<tab name="Step 5">
{|
 
[[File:2023_SharePoint_CMIS_Binding_How_To_Set_Up_a_SharePoint_Connection_Step_5_01.png]]
 
|}
</tab>
</tabs>
 
== How To: Set Up a Document Library in SharePoint ==
 
As mentioned earlier, Grooper connects to Document Libraries in SharePoint to map fields in a data model to properties of a Document Library.  First, we need to make a Document Library and set up its properties.


<tabs>
<tabs>
Line 132: Line 111:


[[image:1560365990515-129.png|center]]
[[image:1560365990515-129.png|center]]
</tab>
</tab>
</tabs>
</tabs>


== How To: Map Properties to/from a Document Library ==
== Known Issues & Limitations ==
 
<tabs>
<tab name="Step 1">
Expand out the "CMIS Connections" folder in the "Infrastructure" node.  Expand out your SharePoint connection and select your imported repository.
 
[[image:1560368679720-228.png|center]]
 
 
</tab>
<tab name="Step 2">
In the **CMIS Repository** tab, expand out the Content Type you want to map.  In this case, we are going to map on the document level.  Click the plus sign next to the Content Type to expand it.
 
 
[[image:1560368839956-562.png|center]]
 
 
</tab>
<tab name="Step 3">
You will see all the Document Libraries in your SharePoint site listed as children of the Content Type.  Press the "Import Types" button to drop down two options.  Choosing "Entire Branch" will import every Document Library as a Content Type.  Alternatively, you can choose individual Document Libraries and select "Selected Type" only.  The dot on the upper right corner of imported types will change from red to green.
 
 
[[image:1560369100797-747.png|center]]
 
 
</tab>
<tab name="Step 4">
Navigate further down the node tree and expand out the "Content Types" folder.  Expand the top level Content Type to view all the imported Types.  In this case we just imported the "CMIS Example" Document Library.  If we imported the entire branch, each would appear as a child underneath "Document".
 
 
[[image:1560369230877-105.png|center]]
 
 
</tab>
<tab name="Step 5">
For this example, we are going to export a few invoice documents to SharePoint.  Turn the "Export Enabled" property to "True" and set the "Export Content Type" to whichever Content Model was applied to the documents.
 
You can also see in the "Property List" panel the "columns" we added to the Document Library are appearing as properties.
 
 
[[image:1560369533128-125.png|center]]


=== SharePoint CMISQL Query Limitations ===
<section begin="sharepoint_query_limitations" />
The '''''SharePoint''''' connection binding does not support the <code>IN_FOLDER</code> predicate.
* You must use the <code>IN_TREE</code> predicate instead when selecting a folder location to query.
*  Be aware the <code>IN_TREE</code> search is recursive where <code>IN_FOLDER</code> is not. This means any subfolders will be queried as well as the targeted folder.


</tab>
<tab name="Step 6">
Now we can update the mappings so the data extracted from our documents can be pushed to our SharePoint site.  Click the ellipsis button at the end of "Export Field Mappings".


The '''''SharePoint''''' connection binding has a hard limitation when it comes to querying larger repositories, with many thousands of folders and files.
* There is currently a threshold limit of 5000 rows. 
* This means if a query has to scan more than 5000 items to return an item, SharePoint will return the following error:
** "Internal Server Error (500): The attempted operation is prohibited because it exceeds the list view threshold."
<section end="sharepoint_query_limitations" />


[[image:1560369654445-649.png|center]]
== See Also ==
 
 
</tab>
<tab name="Step 7">
Here, you can choose how properties from your Content Model are assigned to writable properties on the Content Type, which in turn will edit those properties in the Document Library upon export.
 
The "Property Name" column contains the writable properties from the Content Type (and hence the Document Library).
 
The "Map To" column provides choices of how to map from Grooper's Content Model to SharePoint's Content Type.  You can map fields extracted to the data model by choosing "Field".  Choosing "Variable" allows you to select values available from your Content Model, like document classification, or system information, like current date/time.  "Value" allows you to type in a custom value.  And "Nothing" will map nothing to that property.
 
The "Mapped Value" column is where you will assign the value from Grooper to be mapped.
 
 
[[image:1560370383143-819.png|center]]
 
 
</tab>
<tab name="Step 8">
When running the Document Export activity using the "Mapped Export" provider, you will select the "CMIS Repository" you are exporting to.  The "Target Folder" will be the Document Library you created.  You will need to drill down the node tree and find the site you created and Document Library under it.  Sites have globe icons.  Document Libraries have a file cabinet icon.
 
 
[[image:1560370712218-786.png|center]]
 
 
{|cellspacing="5" cellpadding="10"
|-style="background-color:#f89420; color:white"
|style="font-size:14pt"|'''!'''||A word of caution.  Content Models must be unique to an associated Document Library.  If you reference the same Content Model on multiple Content Types, you will get an error.
|}
 
</tab>
<tab name="Step 9">
If you go back to your SharePoint site, you can see all the documents exported with the data mapped how we configured the Content Type to do so.
 
 
[[image:1560371108340-534.png|center]]
 
 
</tab>
</tabs>


[[Category:Articles]]
For more information to use your '''CMIS Connection''' once its created, see the following articles:
[[Category:Version 2.72]]
* [[CMIS Export]]
* [[CMIS Import]]

Latest revision as of 12:16, 13 May 2025

This article is about an older version of Grooper.

Information may be out of date and UI elements may have changed.

202520232.72

SharePoint is a connection option for cloud CMIS Connections. It Grooper to Microsoft SharePoint, providing access to content stored in "document libraries" and "picture libraries" for import and export operations.

Connectivity is compatible with both online and on-premises SharePoint deployments via the SharePoint REST API.


About

Microsoft SharePoint is a web-based collaborative platform that integrates with Microsoft Office.  It is primarily a document management and storage platform, but it is highly configurable and its implementation varies from company to company.  Grooper utilizes what SharePoint calls "Document Libraries" to import and export documents with property mappings.  When you create a Document Library in SharePoint, not only do you have access to standard document properties like "Created By" or "Content Stream Length", but you can add custom ones as well.  This allows Grooper to map fields from a data model onto documents within a Document Library.

Supported versions include SharePoint 2013 or higher.  However, for SharePoint 2013, connections must be made to the root site.  Connecting directly to a subsite is not supported.

BE AWARE!

When querying a SharePoint repository, the IN_FOLDER predicate is not supported. You must use the IN_TREE predicate to search for documents in Document Library's folder structure.

Also, be aware the IN_TREE search is recursive where IN_FOLDER is not. This means any subfolders will be queried as well as the targeted folder.

How To: Set Up a SharePoint Connection

Click here for an interactive walkthrough

  1. Expand your Projects Folder and right-click the Project (or Folder) where you want to add the CMIS Connection Type
  2. Select "Add", followed by "CMIS Connection..."
  3. Within the Add window, name your CMIS Connection.
    • For this example, we've named ours 'SharePoint', after its Connection Type.
  4. Click Execute to create.
  5. Within your newly created CMIS Connection, expand the dropdown menu on the Connection Settings tab.
  6. Select the SharePoint option.
  7. Enter the Base URL which will connect Grooper to your SharePoint site.
  8. Select your Authentication Method.
    • If your URL is secure, then OAuth may be the only Authentication Method available. In order to use OAuth, you will need to save, log in via Authentication sub-property, then save once more.
    • If using an unsecure URL, then you will select from the following Authentication Methods:
      • Anonymous Authentication
      • Auto Authentication
      • Basic Authentication
      • NTLM Authentication
  9. If necessary, turn the Subsites property from False to True.
    • This will enable Grooper to access any subsites that your SharePoint connection has.
  10. Click the List Repositories button to display all available, connected Repositories.
  11. From the list, select the Repository you wish to import.
  12. Click the Import Repositories button.
  13. Ensure you have selected the desired Repository and click Execute.
  14. Once successfully imported, the Repository will appear in the Node Tree as a child Object of your CMIS Connection'.
    • In addition, the Import Status on the CMIS Connection will turn from False to True.

How To: Set Up a Document Library in SharePoint

As mentioned earlier, Grooper connects to Document Libraries in SharePoint to map fields in a data model to properties of a Document Library.  First, we need to make a Document Library and set up its properties.


Click here for an interactive walkthrough

Go to your SharePoint site.  Using the left navigation column, click on "Site Contents"



From here, click on the "New" button next to the plus icon, and select "Document Library".  It will prompt you for a name and optional description.



You've created an empty document library.  You can see a few of the default properties, Name, Modified, and Modified By.  At the end of this line, you will see "Add Column" next to a plus sign.  Click this to add new properties.



This will give you a variety of types for your data elements.  For example, "Single line of text" would correlate to a simple string variable.



This brings up a new menu to name the column (or property), give it a description, alter the type (which will correspond to a similar type in Grooper), and assign a default value if desired.



The added property will appear as a new column.


Known Issues & Limitations

SharePoint CMISQL Query Limitations

The SharePoint connection binding does not support the IN_FOLDER predicate.

  • You must use the IN_TREE predicate instead when selecting a folder location to query.
  • Be aware the IN_TREE search is recursive where IN_FOLDER is not. This means any subfolders will be queried as well as the targeted folder.


The SharePoint connection binding has a hard limitation when it comes to querying larger repositories, with many thousands of folders and files.

  • There is currently a threshold limit of 5000 rows.
  • This means if a query has to scan more than 5000 items to return an item, SharePoint will return the following error:
    • "Internal Server Error (500): The attempted operation is prohibited because it exceeds the list view threshold."


See Also

For more information to use your CMIS Connection once its created, see the following articles: