Microbe is an open source social application designed to run from your SAP system. A mobile user interface is generated using zMob, and served securely on iOS and Android devices.
Following is an outline of the required configuration, and some implementation details for those interested. As the project is open source, anyone is free to contribute their changes back to help Microbe grow! zMob is also open source, dual licensed under the LGPL and a commercial license.
First of all, the source code needs to be installed on your system. Detailed instructions can be found on the project site at https://code.google.com/p/microbe/wiki/Home.
Next, the users who will use Microbe from their mobile devices must be granted access to the relevant reports. The helper report zmicrobe_addusr can be used in order to add the relevant permissions to the zMob configuration.
Finally, the zMob report zmob_config_data must be run to see the configuration details that will be used on the end user devices. This will show the SAP URL that must be configured for communication in the zMob app on your iOS and Android devices. Once added to the app configuration, your mobile devices will be able to communicate with Microbe hosted on SAP, and the fun can begin!
The zMob emulation system can be used to test your installation. Just enter the above mentioned URL into the web app (also available for Google Chrome) and see the communication between the mobile application and the SAP system in the log window:
Microbe consists of two reports, zmicrobe_index and zmicrobe_post, that are converted into mobile user interfaces using zMob:
The first page lists the last 20 posts made by your users. Clicking “Post message” navigates to the second report.
Here we can see the source code for the application (based on a standard SAP report). When the user clicks “Submit to SAP”, the data entered by the user is passed back to the report and the START-OF-SELECTION code is executed. This inserts the users message into the database and redirects the user to the first screen / report..
Following is the code contained in zmicrobe_post and zmicrobe_index. These represent the bulk of the implementation – zMob does the heavy lifting of converting these reports into fully functional mobile applications..
* entry point into microbe mobile app
msg TYPE zmicrobe_msgs,
txt TYPE string.
WRITE ‘Welcome to the Microbe demo microblogging platform.’.
WRITE ‘See original implementation in reports ZMICROBE_INDEX and ZMICROBE_POST.’.
WRITE ‘Post a message <link:ZMICROBE_POST>’.
SELECT * FROM zmicrobe_msgs INTO msg
UP TO 20 ROWS
ORDER BY timestamp DESCENDING.
CONCATENATE msg–username ‘posted’ msg–message
INTO txt SEPARATED BY space.
* todo: include thumbnails <img:> – extend db..
IF sy–subrc NE 0.
* WRITE: ‘Be the first to post a message!’.
p_msg LIKE zmob=>ui_description,
p_usr LIKE zmob=>bg_user.
msg TYPE zmicrobe_msgs.
msg–timestamp = 0.
msg–username = p_usr.
msg–message = p_msg.
INSERT zmicrobe_msgs FROM msg.
COMMIT WORK AND WAIT.
‘Your message has been posted.’, /,
‘Back to Microbe <link:ZMICROBE_INDEX>’.
Note that in the screenshots, the “Your Message” input field in the mobile application corresponds to the P_MSG parameter in report ZMICROBE_POST. P_USR is a hidden parameter, and is passed back to the report. In the emulator, hidden parameters can be exposed using the collapsible box.
Any output containing <link:…> is converted to a navigable element that will take the user to another report (if they have the authorisations to run the report..)
More technical details on implementation can be found in the article ABAP Report => Mobile Application automated by zMob!
Microbe project: https://code.google.com/p/microbe
zMob project: https://bitbucket.org/zmob/sap
Become a beta tester for the latest version of the mobile apps.
- Click on messages to respond and see responses..
- Profile pictures (photographed by device camera) included by posts
- Include photo attachments in posts (Photo capture shall soon be supported by zMob)
- Include “Check in”, GPS at time of posting shown on map (GPS is currently supported by zMob)