My little efforts 🙂
In this article I will mention the easiest way for integrating BizTalk Server 2010 with SharePoint 2010. Most of my friends need to updated, delete, select, add item in the SharePoint Via BizTalk server 2010, but they have found so many issues if they are little weak in BIZTALK or little weak in the SharePoint.
Microsoft is providing the SharePoint Adapter in the BizTalk for any CRUD or even if we go more in detail we can even work on workflows through SharePoint Adapter for BizTalk 2010. But some people found some issues in the installing the SharePoint Adapter, or don’t want to event add any adapter in their environment or not found it easy to cope with SharePoint adapter.
Well I have researched on the SharePoint adapter and go in little dept. how’s it work for the BizTalk to communicated with the SharePoint. Check the link. http://msdn.microsoft.com/en-us/library/aa578311.aspx this walk through has explained the detailed information for BizTalk SP Adapter.
As far as I remember about the SP Adapter in the BizTalk,need to installed on the SharePoint Farm, and will create a one WCF (Windows Communication Foundation ) service and the communication will work through that web service.
In my bridge adapter I have done little trick but that trick will save a lot of time to set up the integration. In my case we don’t have to installed any adapter on the SharePoint farm, rather we need to create one custom WCF service on the farm which can do our work.
IN the WCF Service will use the SharePoint Object model and do the entire manipulation of data on the SharePoint Farm, through our Bridge Adapter we can use all SharePoint the Service to complete our task . Below is the Adapter Picture in detail
Create one Custom SharePoint Web service (WCF) for our request, and create another WCF service which work as bridge.All types of Binding for WCF serivice are applicable. This is more secure CUZ we are not adding any group, for accessing our farm site or WCF Service rather our bridge WCF Service will do that why i called it as bridge adapter.
All Soruce Code is attached in this blog.
(1) First we need to Create a Custom SharePoint WCF Service which is main and will complate our our task up on a request and do the Manipulation, I have created a SharePoint Custom WCF service because I have found so many issues in the Client Object model. This Service Will reside in our Sharepoint Farm and in this we will use the Sharepoint Server Object model. We named it as ServiceA.
Well In my custome WCF Service (ServiceA) I have create some generic code which take some argument and complete the appropriate task, initially I have create Insert,Update,Delete and select in my service on any particular list, we can also add more function once we make our bridge with the SharePoint i.e. CRUD on Document Library, Start WorkFlows, Connect With BCS server etc. Source Code.
Mark the DLL of this Project as Safe Control in farm.
Our customer WCF Service will be like below.
(2) We need another WCF Service (ServiceB) which work as Bridge Between our BizTalk Client and the SharePoint. In Service B we allow anonymous access and then this will speak to our main Service (ServiceA) for task performance.
I have used the BasicHttp Binding in communication with the WCF Service. Though we should use the WShttp binding cuz transmission go encrypted way. In this WCF Service I have used the code which take data from biztalk or any other third party and give it to our SeriviceA (SharePoint Service) and get the response. Source Code
So far our Bridge has completed, now We just need to consume our Service (B) from any client. I have consume this WCF Service via BizTalk and the Console From outside the Network of SharePoint Farm, and it is working fine. Source Code and another way to Consume WCF Service in BizTalk Consume WCF Service in through BizTalk .
Once We deployed our Bridge Service (WCF), then we just need to overload the function and Call them from BizTalk. For any more detailed you can comments.
I hope my little efforts will work for BIzy and SP People.