tags:

views:

38

answers:

2

My company runs a couple of B2B apps (written in Rails) dealing with parts and inventory and we've been trying to figure out the best way to integrate with some of our bigger users. We already offer the REST-style API that comes with Rails, but that, of course requires an IT Department on their end to decide to integrate it, so we'd like to lower that barrier if possible.

From what we've found, most of them are on SAP systems. Now, pretty much all I know about SAP is it's 1) expensive, 2) huge, 3) and does everything and anything you could ever need for your gigantic business to run. Naturally, this is all a bit imposing, and the resources on the site are a cross between impenetrable buzz-word laden sales material, and impenetrable jargon laden advanced technical material with little for the new, but technically competent user to be able to sink his teeth into.

So what I'm wondering is: as a 3rd party, that's not running a SAP installation, is there a way for us to offer access to our site's data through a web service or other API? Is it just a matter of providing or implementing a certain WSDL (and what would that be)? Is this feasible for someone without in-depth experience with SAP? Or is this a complete non-starter?

+2  A: 

I'd say it's not possible without someone who knows the SAP system. You probably won't need to hire someone with in-depth SAP knowledge, but at least for the initial implementation, you'll need both the knowledge and a working system you can develop against. Technically speaking, it's not really that hard, but considering the fact that SAP systems are designed to handle multiple organizations, countries, legal systems, localizations and several thousands of users simultaneously, things are bound to be a bit more complex than almost any other software around - and most of the time not even bloated, it's just easy to get lost in that kind of flexibility.

My recommendation would be to find a customer (or a prospective customer) who has someone in their IT department with the necessary technical and processual knowledge and who is interested in conducting a development project. This way, you'd get access to a real system (testing of course) and someone who can explain to you the basics of the system. But, as I said, be prepared for complexity.

vwegert
Thanks for the advice. We're hoping to get at least one customer to shepherd us through the process. You're right—I think it's the per-business customizability that worries me (as opposed to any kind of bloat).Out of curiosity, how much do businesses usually modify/customize the stock configuration? Is it often to the point of incompatibility between sites/versions?
AndrewO
There is no such thing as a stock configuration. You can configure about everything. Of course, there are sensible suggestions and best practices, but even these vary drastically from country to country and industry to industry. "Industry" SD consultants usually won't be able to do anything but shake their heads when it comes to billing processes for hospitals, for example.
vwegert
+1  A: 

vwegert makes some excellent points.

As to this part of your question:

So what I'm wondering is: as a 3rd party, that's not running a SAP installation, is there a way for us to offer access to our site's data through a web service or other API? Is it just a matter of providing or implementing a certain WSDL (and what would that be)?

Technically it is possible to expose any of your system's services as web-services to a client's SAP system. In order to do this you do not need any prior knowledge of SAP. (SAP should be able to import a WSDL, although there may be some limitations in the earlier pre-ECC5 systems).

For example a service that provides meter reads, airport departure schedules, industry trends etc is not dependend of what is in the user's system or how they set it up. However as soon as there is a need to initiate updates to the client system's data is when you need access to more specialised SAP knowledge.

Also note that many SAP functions can also be exposed as web services, but generally you do need someone with SAP (ABAP) knowledge to do this.

The ABAP language is actually fairly simple, but there is a huge learning curve to understand the data model and the myriad of configurable options in SAP.

Esti
Thanks. We're not looking to change client data, just allow them to push out to us and pull in structured data, so it sounds like a web service should work. So if we expose that ability through a WSDL, how much work is it on their end to hook up the generated client with the system/interface? The reason I ask, is that we haven't gotten many takers for the REST API (which seems simpler to _me_), so I'm worried that we'd meet similar reluctance to devote IT resources (unless SAP makes integrating a WSDL web service even easier).
AndrewO
I have to admit I prefer WSDL myself - because of its rigid structure, it allows for better tooling support. REST does not make any assumptions about the contents, and that leaves the vital parts for the developer to figure out. BTW, you might want to take a look at http://help.sap.com/saphelp_nwpi711/helpdata/en/48/c7a206da5e31ebe10000000a42189b/frameset.htm
vwegert
Some work is required to consume the web-services. Technically it's not that hard, but I found a very small percentage of ABAP programmers that have used web-services. As the client I'd be more concerned about the type of data that needs to be pushed to your system. Depending on the module it may still be fairly complex. Will incoming data have to be stored in SAP, or is it just for reporting; SAP integration projects have the habit of turning into a bit of a nightmare, which may explain the customers' reluctance. It is also not easy to find functionality that cannot be done within SAP.
Esti