I need to to get the data from SAP to SharePoint, and on performing CRUD operations via Lists from SharePoint. The updated data should also get effected in SAP.

Can anyone help me in knowing how I can do this?

  • I realized the format of the data exchange is performed at the level of web services, and then, whatever you want, even С#, AJAX, SSIS and other... – Fox Dec 20 '17 at 11:31
  • Is there any possibility to get it through BCS – MSA Dec 20 '17 at 11:36

this can be done through BCS , you need WCF services from SAP having method stereo type required for SharePoint external list to perform CRUD operation on data.

If you have above WCF then you can create external data type from SharePoint designer and choose external data source as WCF and configure the endpoint and WSDL, later the operation requires (CRUD).

| improve this answer | |

Please bear with me. My answer is a bit long, but it's because I want to give you some options. You have a few options. All three will work, but some are better than others. I'll make my recommendations, but you need to decide which works best for your environment. I am assuming you are using SharePoint 2013 or later.

1) This one is probably your best solution, but also might be your most difficult. You had asked in a comment if BCS would work. BCS will in fact work very nicely. What happens is you establish a connection to SAP using an External content type. Using that content type you can create an external list that will allow any changes that you make to it to be reflected in the other end if you so configure things to do so. However, the hard part is creating the connection. Unlike SQL server, SharePoint does not have any built in connections for SAP. This means you have to build them. My suggestion is to build a web service in SAP that will allow you to perform CRUD operations to the section you want. Maybe the service exists already. You can then create a connection via the web service (WCF) and build the external content type from there. This page provides a good and lengthy example of creating such a connection (not for SAP, but the basics are there). It is for SharePoint 2010, but the logic will work in later versions as well.

2) Create Remote Event Receivers deployed internally or in the cloud. Basically what you are going to do is create an event receiver that monitors for any changes to the list (Item Added, Item Updated, Item Deleted, etc). When a change or insert occurs the remote event receiver fires, gathers the information and then can use whichever web services you need to affect the same change in SAP. This solution will accomplish exactly what you are asking, but you now need to have another environment up and running in your infrastructure. However, if you already have web services running in your environment then this will do nicely. It's just that this solution can't run in SharePoint, nor can it work with a SharePoint hosted solution. It has to be a Provider hosted. Here is a good example to get you started.

3) The third option is probably your easiest, but it won't work in SharePoint online, nor is it recommended for on-prem. This is because it uses the server object model which is a big no-no these days. Basically you install a solution into your farm that monitors all lists, or in this case the list you want. When actions occur, it traps them, and executes code you write, which means you can use REST calls or whatever you need to affect the changes you need. A good example of creating an event receiver can be found here.

Sorry again for the long winded answer, but hope it helps.

| improve this answer | |
  • Ugh, I just re-read my response and totally missed that you wanted two way communication. Option #1 will give you that. Options #2 and #3 will also give you that, but you will have to write corresponding code in SAP to push data to SharePoint. Options 2 and 3 won't pull data, only push it. – David Drever Dec 20 '17 at 21:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.