We’ve been living and breathing real-time integration with SAP for the last 10 years. Initially it was almost like magic. You could literally hear people say “those guys really DO get data out of our SAP system!”
Nowadays everybody and his grandmother claims that they integrate with SAP real-time (it’s no wonder since SAP provides some great, fairly easy to use APIs). But when you take a closer look, most of them will just tell you that they have a “tool set” to communicate with SAP. Great…
The problem is not how to technically communicate with SAP. The real issue is how to integrate data from SAP into the flow of your app and how to get the right data at the right time to the right spot.
For example: Nordson EFD stores the material number that was in their legacy system in SAP. Because a lot of customers are still used to them, EFD wanted us to provide a search capability. We added the field “Old Material Number” to our material search screen and enhanced the RFC to use the existing SAP match-code. Additionally, we also automatically substitute the old number at time of order entry for the divisions which didn’t implement this in SAP yet (a typical temporary solution to give our clients the time to adjust their SAP system to the new situation of being exposed to the web. More about this in a later blog). Or Drive Medical required that orders which have to be post-processed by a CSR get blocked and flagged with the reasons for it. We decided to set a delivery block and write the reasons into a text which the CSRs can see on their order screen.
If you think, well, what’s the big deal with making these customizations ? We couldn’t agree more, it HAS to be easy to be right. But without a thorough knowledge of both sides of the fence, SAP and the web, you easily can get lost in coding unnecessary stuff. And just as a side remark: even knowing both sides of the fence doesn’t necessarily help you, if you don’t have the right architecture, as Sam showed in his blog A Tale of Two Texts.
And by the way: our “tool set” 🙂 consists of SAP web services, the way they come out-of-the-box with SAP Netweaver 2004 or higher (which uses the SAP Web Application Server 6.40 or higher). We use the default service sap/bc/soap/rfc in combination with custom written RFCs (to allow us a quick implementation of solutions like the ones mentioned). Our Rails app uses Piers Harding’s sapwas gem as a middle layer (thanks Piers !) to get a fairly manageable interface without having to worry too much about SOAP. And all of this within a VPN tunnel to ensure your data’s security.