SAP Workflows on Blackberry with SUP
MBOs, Custom UI & lot's of Jars, CODs and ALXs
In one of my last projects I worked on a mobile application for Blackberry devices. The mobile client connects to a Sybase Unwired Platform server which is connected to a SAP ECC 6.0 system. So let me talk about my experience with this setup.
The installation of the server was not a big issue, I did this on a Windows XP Parallels Virtual Machine (I work with a MacBook) that I use for development and it was running straight away. The only tricky thing was the installation of the SAP JCo components; for that you need to copy dll's and jar files manually into the SUP directories. This is a very error prone process :-(
The first development task was the creation of the Mobile Business Objects (MBO), which I did with the SUP PlugIn in Eclipse. The solution had 5 MBOs that connect to SAP via JCo and based on these MBOs we generated the code for the Blackberry client. We did not use the UI builder that is part of the SUP PlugIn, but created our own UI "by hand". That was necessary because we needed to adjust the look and feel to the customers design. For creating the UI we also used Eclipse, but this time with the JDE PlugIn from RIM.
We copied the generated source code into the Blackberry project and we were able to start coding the UI. The SUP API on the client is straight forward and without reading any JavaDoc or tutorial we could do most of the coding. The difficult (and unfortunately not well documented) part was the integration of the SUP libraries into the Blackberry project. After a while we figured out which Jars we had to use, but then we run into the same issue again when we wanted to run it on the Blackberry Simulator: Which COD files do we need to import? Again we figured out the solution, only to wonder which ALX files we need for running it on a real device. This is something that needs improvement! I documented this and will blog it here soon.
There was one issue, which was costing me a lot of time: I had an error on the client (inside the generated code, a transaction could not be found) that I fixed - but it was still not working. I went crazy and I think without the help of Hami from Sybase I would still sit there wondering what I do wrong. The solution was very simple: The Blackberry simulator cached something, therefore the error kept coming back and back and back. I had to run a script inside the Blackberry simulator directory called clean.bat, that removed everything from the simulator and set it back into the initial status. After that - what a surprise - it worked.
To summarize, I think that it is fun and that it is easy to work with the SUP platform to create mobile solutions for Blackberry. I would do it again any day!