The last months I’ve been repeatedly confronted with the SharePoint Document integration in Dynamics CRM. In CRM 2015 the “old” SharePoint integration was replaced by a server side integration. However, I think the server side integration is not much better than the old one.
One of my biggest gripes with the SharePoint integration is that the integration is not using the capabilities of the document libraries within SharePoint.
Instead of using meta data to retrieve documents within SharePoint, the integration relies on the ugly mechanism of creating folders. Making the document library less accessible and making it much harder to find documents in SharePoint.
The integration could have been much better if a content type was introduced in SharePoint, containing at least the two following fields:
contains the Id of the entity to which the document is related
contains the name of the entity to which the document is related
Furthermore it would have been nice if the content type would contain an additional set of fields in which metadata from CRM could be stored.
Besides these issues, retrieving documents can be a real pain in case the document library contains over 5.000 items.
With regard to SharePoint this is normally not a problem as SharePoint is capable of storing millions of documents in a single document library. And yes, a folder in SharePoint is counted as an item (it is a record in the database).
However the search query fired from CRM to SharePoint (as far as I can see, the Client Side Object Model is used to retrieve the documents) gets into serious troubles in case more than 5.000 documents/folders are found.
In that case a bandwith exceeded error occurs and the user does not see his documents. Unacceptable I think!
All these problems made me think. Is there a way we can build a Document integration, which is as easy to use as the SharePoint integration and does not run into these limits?
Then another thought crossed my mind. Since CRM doesn’t bother about meta data in SharePoint, why use SharePoint? SharePoint is degraded to an expensive fileshare after all.
Why not storing documents to DropBox, OneDrive, ftp, a local file share, a webservice or whatever what? I think this case is worth investigating.
What would I like to see in the Document Integration solution?
What is the storage method, address etc.
- Flexible architecture
Make it easy to add custom document storage providers.
- Configure what entities are supported
Like the SharePoint integration, per entity one should be able to indicate that the entity supports document integration.
- Icon in the toolbar or ribbon to show documents related to the entity
Make the document easy accessible.
- Custom page for showing the documents.
Page showing a list of related documents, we can make this as sophisticated as we want to
I know this sounds ambitious, on the other hand it sounds fun as well.
Realizing this document integration solution means that we need to investigate a large number of things:
- We have to tweak the UI
- We have to provide a custom page
- We have to deal with settings
- We have to deal with provisioning
- We have to design a flexible architecture
Not an easy task. On the other hand, my goal is to provide you with a proof of concept in which these concepts are tackled.
As usual I don’t expect this development to go butter smooth, I expect to hit a wall a few times. If you have any requests, ideas or remarks, please let me know.
Let’s go on this journey together…