At work we run our business on a SAP system. It's big, expensive, and underutilised. One of the projects I have been involved in is using it to store data in, which we then use to build our web site. The original design was grand and quite nice, but like many projects of it's ilk, it was never actually implemented, under pressure from PHBs, corners were cut, and the result worked, but it's not shiny, and it doesn't scale.
This week I have been working with the SAP people, to dust down the original design goals, combine that with new experience, and produce a new shiny way of storing data and getting it out again. We started by storing the data in SAP, the way SAP intended, and not the way we ended up doing it to start with. This is good, so we now have data in SAP, files on the file system, and lots of linking between the two via the SAP DMS.
We threw away the Java Business Connector (BC) tool, and went for Piers Harding's excellent SAP::Rfc interface tool to SAP. By keeping all the business logic in SAP, I'm able to get the data out for the correct site, in the correct language, with all the right bits, in one go. I then convert the SAP tables into a "disposable" SQLite database, and then use normal SQL to build the web site at my lesiure.
I now don't have to fight with the BC thing, or have bits of business logic in the Perl layer, or deal with relational data in a huge XML file. It's often easier to do things a second time round, but even so, it's proving very easy and quick to do. Thanks to those who have helped me out (without knowing), they deserve a pat on the back...!