In my first blog post I would like to share some experiences on implementing the Hybrid Web Contain (HWC) on BlackBerry devices through Sybase Unwired Platform (SUP) better known as the future SAP Mobile Platform (SMP).
Landscape back ground:
- Solution: Mobilizing of SAP workflows onto BlackBerry
- Platform: SUP 2.1.3
- Mobile devices: BlackBerry OS 5, OS 6 and OS 7
- Back-end integration: SUP connect through BAPI interface into SAP
1. HWC: Out of memory
You might experience an “Out of memory” exception while using HWC. This happens quite frequently on OS 5 and OS 6, even though there are not a lot of memory consumed by resource on the device. The “Out of memory” exception might occurs less on OS 7 as SUP 2.1.3 has build-in code to handle this exception better.
The exception occurs in the under lining RIM libraries and is not a SUP issue. Confirmation from RIM is that this issue will be resolved in OS 10.
2. BlackBerry OS 7 not succeeding making initial connection to SUP server for registration
You might experience when registering a BlackBerry OS 7 device with SUP, that the initial connection does not happen. Because of the initial connection not happening you will find no information in the server logs. Looking at the device logs will reveal very little to the underlining problem.
In my case to resolve this I made sure that I use the latest HWC files on the device and I upgrade the device from OS 7.0 to OS 7.1
3. BlackBerry Push Technology
You might find when making use of BB Push Technology that the notifications do not arrive in a timely fashion on the device (in my case it took sometime up to 10 minutes), or the notifications never arrives on the device.
First of all make sure your Push Service URL is correctly configure in Sybase Control Center (SCC). If your service requires authentication ensure you configure the credentials correctly:
After a BlackBerry device has registered with the SUP server you will notice that SUP allocated a Push Listener Port to the device where all push notifications from the BlackBerry Enterprise Server (BES) will be received. In SCC select the user / device under the Application Connection tab and click the Properties button:
You will notice that port 5011 (in the picture above) has been allocated by SUP. Also you will find that you can not change this port number. For each new application connection registered SUP assigns a different port – At a customer of mine SUP cycled through assigning ports 5011, 5012, 5013 as connections are registered. You can see the challenge here – How will the BES knows to which port it should send the notifications?
As the BlackBerry devices are registered with BES at the customer, a small configuration change needs to happen on BES for the Mobile Data System (MDS). With in the BES installation path look for …\MDS\config\rimpublic.properties file. Edit the rimpublic.properties files.
It will look like this:
Within the configuration file find the entry “push.application.reliable.ports” (as indicated above). If there is a “#” in front of the entry, remove it to un-comment the line. If SUP allocates a port for example 5014, you just add this port number to this line.
NB: Remember to restart the MDS service after any modifications to the rimpublic.properties files.
NB: The above configuration is not applicable to BES10
*If you still experience latency problems look at the priority of application notifications on the BES.
4. Alternative to BES Push Technology
You might find yourself in an environment where the network infrastructure is not very stable or even unreliable. The alternative to push technology is switch your workflow application to “online”, which means that the solution doesn’t rely on the BES to deliver the notification but the HWC stay online connected to SUP:
Again, select your application connection and click the Properties button in SCC (shown above). Set the Enabled value to False for BlackBerry Push Notifications. The HWC will stay online. I have implemented a solution in this fashion and the impact of being online on the device battery is minimal and barley noticeable.
5. Workflow controls not functioning as intended
You might find that certain controls function perfectly on a touch screen device but fails on a non-touch screen device. In my case the listview did not work on a non-touch screen 9300 using the BlackBerry navigation button.
To get around this you need to add custom code to the workflow generated files.
In my case I had to modify 2 files:
A new function needed to be added to the API.js for the BlackBerry 9300 (see above)
NB: Keep in mind that when you generate your workflow that you un-tick the “Update generated code” (see below), otherwise the above custom changes will be overwritten and lost.
Hope this was informative to you and you are welcome to leave a comment.