For lack of a better name: blog

19Sep/104

Installing the SharePoint 2010 CMIS Connector

cmislogo.jpg

Microsoft has released a CMIS connector for SharePoint 2010. In this post I will show you how to install this connector and show some of its functionalities. In another blogpost I will demonstrate the integration with e.g. Alfresco and a CMIS client.

Click continue reading for more info

About CMIS

Content Management Interoperability Services (CMIS) is a standard approved by OASIS with the goal of being the SQL for Enterprise Content Management. This standard improves the interopability between ECM systems.

The standard is released by the companies Oracle, IBM, Microsoft, OpenText, SAP and Alfresco.

This standard makes it possible to open a SharePoint document library in another CMIS compliant system or vice versa.

The standard can be found here.

About the connector

from Technet:
The Content Management Interoperability Services (CMIS) connector for SharePoint Server 2010 enables SharePoint users to interact with content stored in any repository that has implemented the CMIS standard, as well as making SharePoint 2010 content available to any application that has implemented the CMIS standard.

The CMIS connector for SharePoint Server 2010 includes two features:
-The Content Management Interoperability Services (CMIS) Consumer Web Part, which can be added to any SharePoint page. This Web Part displays and lets users interact with the contents of any CMIS repository;
-The Content Management Interoperability Services (CMIS) Producer, which allows applications to interact with SharePoint lists and document libraries programmatically by means of the interfaces defined in the CMIS standard.

Installation

1. Download the SharePoint 2010 Administrator Toolkit here and run the executable;
2. Select the required features and click next.

sharepoint 2010 administration toolkit setup

The installer deployed a WSP to the directory “C:\Program Files\Microsoft\SharePoint 2010 Administration Toolkit\Content Management Interoperability Services (CMIS) Connectors” called spcmis.wsp.

Install the WSP:

Go to the SharePoint 2010 Management Shell;
1. Run the following command:
Add-SPSolution –LiteralPath 'C:\Program Files\Microsoft\SharePoint 2010 Administration
Toolkit\Content Management Interoperability Services (CMIS) Connectors\spcmis.wsp' ;

2. Go to Central administration \ System Settings \ Manage Farm Solutions;
3. Click spscmis.wsp, choose the appropriate deployment settings, and click Deploy Solutions.

The CMIS Producer

You need to select a site where the document libraries will be used as document repositories.
Every document library in this site will be available as repository through the CMIS connector.

  1. Go to the site with the document library you want to use as repository;
  2. Go to the site settings;
  3. Go to site features;
  4. Enable the “Content Management Interoperability Services (CMIS) Producer” feature;
    2 
  5. Create a document library that will serve as repository. I created a library called docrepo with 3 content types.

This feature creates a set of webservices that can be used by CMIS compliant clients.

You can find the wrapper webservice under http://hostname:port/_vti_bin/cmissoapwsdl.aspx?wsdl

Other webservices that come with the connector are:

DiscoveryService /_vti_bin/cmis/soap/DiscoveryService.svc
MultiFilingService /_vti_bin/cmis/soap/MultiFilingService.svc
NavigationService /_vti_bin/cmis/soap/NavigationService.svc
ObjectService /_vti_bin/cmis/soap/ObjectService.svc
PolicyService /_vti_bin/cmis/soap/PolicyService.svc
RelationshipService /_vti_bin/cmis/soap/RelationshipService.svc
RepositoryService /_vti_bin/cmis/soap/RepositoryService.svc
VersioningService /_vti_bin/cmis/soap/VersioningService.svc
ACLService /_vti_bin/cmis/soap/ACLService.svc

All done, let’s test it with a consumer. There are numerous CMIS clients available, like the WeWebU OpenWorkDesk 3.0. I did not try this, but will release another blog post where I will demo this functionality.

The CMIS Consumer Web Part

The CMIS consumer can only be added to a SharePoint site on port 80 (otherwise the SSO page won’t be routed correctly). Also, there can only be one host header binded with the web application.

  1. Activate the CMIS Consumer feature in site collection features from the SharePoint site;
    3
  2. Create an new page and add the CMIS Consumer Web Part;
    4
  3. Select open the tool pane;
    5
  4. Fill in the details:Specify WSDL Address: e.g. http://HOSTNAME:PORT/_vti_bin/cmissoapwsdl.aspx?wsdlCheck WS-Security Required
    Select Basic and click repository list;
    6 
  5. Fill in the user details (domain\accountname);
    7
  6. Select the document library we created earlier in the select repository list;
  7. Click ok.

Now we have a page with a CMIS connection to the document repository:

8

If we select the webpart, we get the repository tools in the ribbon:

9
10

The Repository Information button shows the following information:

Repository name docrepo
Web address http://localhost:82/docrepo/Forms/AllItems.aspx
Description SharePoint document library
Repository ID 92486020-c39b-4aab-aa5d-fe4ea0c0e45b
Repository application's vendor name Microsoft Corporation
Application name Office SharePoint Server
Application version 14.0.0.0
CMIS specification version 1.0
Can the repository support enumerating the descendants of a folder? No
Can the repository support retrieving the folder tree? Yes
When does the repository support updating a document’s content stream ? Any time
What level of changes the repository exposes in the change log? The ObjectIDs for changed objects and an indication of the type of change, no details of the actual change
Whether or not the repository exposes renditions of document objects? No. The repository does not expose renditions
Can the repository support filing a file-able object in more than one folder? No
Can the repository support leaving a file-able object not filed in any folder? No
Can the repository support filing individual versions of a document in a folder? No
Can the repository support updating the Private Working Copy of a checked-out document? Yes
Can the repository support including the Private Working Copy of checked-out documents in query search scope? Yes
Can the repository support including non-latest versions of document in query search scope? No
What types of queries the repository can fulfill? The queries that filter either on the full-text content of documents or on their properties
What types of SQL JOIN keywords the repository can fulfill in queries? No queries that include JOIN clauses can be fulfilled
What’s the level of support for Access Control Lists by the repository? The repository supports discovery of ACLs and applying ACLs

Create a new document from the consumer

  1. Select the CMIS webpart and select the new file button. This will show the content types from the document library;
    11
  2. Select the file and fill in the metadata;
    12 
    notice that the Proces field in this example is a managed metadata field, which is not supported by this connector;
  3. Click ok.

You can see the newly added document in the list:

13

document detail screen:
14 

Possible errors

A couple of errors that can show up while installing the connector and solutions that helped me:

A web Part of Web Form Control on this Page cannot be displayed or imported. The type is not registered as safe.
You must activate the SharePoint Server standard site feature on the site.

The resource object with key 'CmisLoginDlgDesc' was not found.
Is the webpart on a SharePoint site on port 80? Is your site language English?

Want more?

More info on:

Posted by Alexander Ketelaar

Comments (4) Trackbacks (1)
  1. Amazing post dude! Thanks for sharing this with us. SharePoint NERD!

  2. Have you tried the RESTful CMIS Producer?
    I can’t seem to figure out what the service doc URI will be for that…

  3. Nice blog post! Quite informative and helpful. Do you have another blog post how how you used a CMIS clients (like the WeWebU OpenWorkDesk 3.0) to consume content from SharePoint?


Leave a comment

(required)