Skip to Content

ABAP Report => Mobile Application automated by zMob!


zMob is a powerful platform allowing the generation of mobile applications from simple ABAP reports. Behind the scenes, the report is converted into a mobile UI and passed to the end user’s mobile device. Once data is collected, the user submits the data back to the SAP system, where your report processes the result in real-time. Your report writes lines that are relayed back to the mobile device, processed for special tags and rendered for the user.

The zMob library for SAP is open source (dual licensed under the LGPL and a commercial license,) and can be downloaded from the project page at

A project using zMob to generate a mobile application from ABAP reports is Microbe, an open source (MIT) microblogging platform. A recent article outlines the functionality and configuration of Microbe, but here we shall look at the implementation in more detail, plus other features of zMob – this is the ABAP Development section after all!


As can be seen in the screen shot, the parameters of a report are mapped to the fields of a mobile application. The types of the parameters must be taken from the constants of the ZMOB class, and indicate the component or device data that the report would like to process.

Following are the available types for UI components and device integration:

UI Components


Presents a map widget showing the current location of the device.


Presents a button that can be clicked to capture the value of a barcode using the camera.


Presents a button that can be clicked to capture audio from the device.


Presents a button that can be clicked to capture a photo using the camera.


Presents a button that can be clicked to capture a video using the camera.


Presents a simple checkbox component.


Presents a compass, which can be frozen on a heading by clicking.


Presents a date picker widget.


Presents a key-week picker widget.


Presents a box for text entry that grows as more text is added.


Presents a drop down list of items.


Presents an input field specialized for email input.


Presents an input field specialized for number input.


Presents an input field specialized for password input.


Presents one item from a group of radio buttons.


Presents a widget used to select an integer value between a maximum and minimum value.


Presents an input field specialized for telephone number input.


Presents an input field for plain text.


Presents an input field for plain text with help attached.


Presents a toggle button for On Off values.


Presents an input field specialized for http address input.

Device Properties


Returns the value of the device accelerometer at time of submit.


Returns the value of the device latitude at time of submit.


Returns the value of the device longitude at time of submit.


Returns the accuracy of the device longitude/latitude coordinates at time of submit.


Returns the value of the device altitude at time of submit.


Returns the accuracy of the device altitude sensor at time of submit.


Returns the value of the device heading at time of submit.


Returns the value of the device speed at time of submit.


Returns the timestamp at which the geolocation data was last updated.


Returns the device’s model or the name of the product.


Returns an ID unique to the device.


Returns version information for the operating system installed on the device.


Returns information on the operating system installed on the device.


Returns the configured user name for the SAP user using the device.

Start Of Selection

Once the user has entered data into the application, they click the “Submit to SAP” button and their form data is serialized. The data is then passed back to SAP and submitted to the corresponding report. The output from the report is sent back to the mobile application and rendered.

Tags within the returned data are interpreted and have special meanings.

  • <link:…> will cause a line in the results to become a link to another ABAP report or HTTP address.
  • <img:…> [planned] to allow specifying an inline image URL
  • <html> [planned] to allow HTML output embedded within the application
  • Other tags are planned for future implementation!

Example Source Code

Following is the code contained in zmicrobe_post and zmicrobe_index for the sample microblogging application Microbe. The code is simple and straightforward, and yet achieves impressive results thanks to zMob.

Note that because zmicrobe_index has no parameters defined, zMob skips an input screen and renders the results of calling start-of-selection directly for the user. The lines written to output are then shown to the user in a list view, including a link to the zmicrobe_post report.

* entry point into microbe mobile app

REPORT  zmicrobe_index.

  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

CONCATENATE msgusername ‘posted’ msgmessage
  INTO txt SEPARATED BY space.

* todo: include thumbnails <img:> – extend db..
  WRITE txt.

IF sysubrc NE 0.
*    WRITE: ‘Be the first to post a message!’.


REPORT  zmicrobe_post.

  p_msg LIKE zmob=>ui_description,
  p_usr LIKE zmob=>bg_user.


  msg TYPE zmicrobe_msgs.

msgtimestamp = 0.
msgusername = p_usr.
msgmessage = p_msg.

INSERT zmicrobe_msgs FROM msg.

  ‘Your message has been posted.’, /,
  ‘Back to Microbe <link:ZMICROBE_INDEX>’.



The zMob emulation system can be used to test your installation and your own reports from within the browser. (It is also available in the Google Chrome store for free.)

After activating a report and configuring user access for SAP users, the URL to your SAP system can be entered into the browser based emulator, and you will be able to see and interact with your mobile application, including logging the communication between SAP and the mobile application.


Your ABAP report will render within the emulator in the same way it would on a mobile device. This is a quick way to experiment and tweak your reports to make sure the correct data is being passed back and forth. It’s as simple as making a minor modification to your report, activating and refreshing the browser window to see the new changes take effect!

Once your application looks perfect, it can be distributed to test devices for hardware integration testing. Finally, using the user authorization system, the application can be pushed to the end user devices for use in production.

Mobile Clients

Currently we are in the process of beta testing the mobile clients for Android and iOS devices. If you are interested in participating in the beta testing phase, head on over to our Google+ Community for Beta Testing. Shortly we will also be looking for beta testers with Windows Phone and Blackberry devices.


You must be Logged on to comment or reply to a post.
    • Hi Alejandro,

      Great stuff. We're looking for Beta testers for mobile devices shortly, so if you're interested let me know and I'll send along some more details.


  • Hello Jack,

    I tried to create a report but the ZMOB class is missing, hence an error was shown. How can I resolve this - how can i include the ZMOB class in my report?


    • Hi Dee,

      You need to install SAPLink first (SAPLink is an open source installation system for SAP) plus the DDic and SICF Plugins:

        SAPLink Installation Instructions:

        DDic Nugget:

        SICF Nugget:

      Next you need to download zMob:

      Install the file named NUGG_ZMOB.nugg using the report ZSAPLINK - this will add the ZMOB class to your SAP system.

      Next, activate all the objects in your work list. You should now be able to build mobile apps using simple ABAP reports!

      Currently we're working on a simpler installation path, which will hopefully involve a copy, paste, activate and run approach instead 😉


      • Hello Jack,

        thank you for detailed explanation.I installed saplink successfully but while activating

        class ZMOB I am getting error as "Type "ZMOB_PERMISSIONS" is unknown" in method AUTH.Now i commented code in method AUTH to overcome this but got another error as below.

        in Method XML2PARAMS line no 22

        iterator = class_root->get_children( )->create_iterator( ).

        Unable to interpret ")->CREATE_ITERATOR(". Possible causes: Incorrect spelling or comma error.


        • Hi Dee,

          You need to activate all the objects from the zmob nugget in one go rather than one at a time - if the table ZMOB_PERMISSIONS is not active then it will cause a problem in class ZMOB as ZMOB depends on the table..

          Regarding the second issue, this could be due to your SAP release version - what version are you on? I'll code up a workaround shortly and update the code online 😉

          At a pinch, I'd say that the line "iterator = class_root->get_children( )->create_iterator( )." can be replaced with the following, but I'll need to double check:

          data lif_nodes type ref to iXMLNodeList.

          lif_nodes = class_root->get_children( );

          iterator = lif_nodes->create_iterator( ).


          • Hello jack,

            Thank you for the reply..

            just posted a our workaround 🙂 .We are able to activate all(but one by one) with below tweaks.

            1.code inside Method AUTH UN-commented as we created zmob_permission manually.

            2..we commented the code  in line 22

            *  iterator = class_root->get_children( )->create_iterator( ).

            and wrote below lines.
               param_nodes = class_root->get_children( ).
               iterator = param_nodes->create_iterator( ).

            One more thing,where can we find ZMOB_CONFIG_DATA to get URL?

            Best Regards,

          • Hi Dee,

            Great stuff 🙂 The zmob_config_data report is a work in progress, but if you go to the SICF transaction and find the ZMOB node (on the top level) make sure it's active, and then right click and choose Test. SAP will launch the browser, and the URL it shows is the URL you need for the emulator at

            Paste the URL into the emulator and hit Connect, and you should be able to debug your own mobile applications straight from your SAP system!

          • Hello Jack,

            Thanks for reply.

            Version: SAP ECC 6.0 Release 700.

            Installed all files and activated successfully still I am not getting ZMOB  node in SICF.Please suggest.


          • Hello Jack,

            Got zmob_permissions(it was my fault to overlook the given files,sorry for the trouble)

            Now we need below reports(i am not able to see these anywhere)?




          • Hi Dee,

            [ZMICROBE_ADDUSR] For the user configuration, more details can be found in the config section here:


            USERGROUP: <dialog user account used to access SAP by your mobile devices>
            : <space>
            : <YOUR REPORT>
            : X

            USERGROUP: <dialog user account used to access SAP by your mobile devices>
            : <space>
            : <YOUR_SECOND_REPORT>
            : <space>

            In the future I will create the report ZMOB_ADD_USER report, but in the mean time you can enter values manually. Space values for usergroup and username will allow anyone to run your report, so make sure there's nothing sensitive to be exposed. ENTRYPOINT = X will show the report as an item on the users first screen. At least one configured report should have this set to X..

            [ZMOB_CONFIG_DATA] For the mobile configuration, again, this report is started but not yet finished! If you go to the SICF transaction and find the ZMOB node (on the top level) make sure it's active, and then right click and choose Test. SAP will launch the browser, and the URL it shows is the URL you need for the emulator at:


            If the node is not visible, ensure you have successfully installed the SICF Slinkee:


            Hope that helps 🙂


          • Hi Dee,

            I don't know what's causing the error importing the SICF node, it seems to be a problem in SAPLink somewhere 🙁

            The node is easy to create - from within the SICF transaction, create a new node called zmob hanging from the top level, set the handler class to ZMOB and activate, and it should then work correctly. When you right click on the active node and select Test, SAP will launch the browser and it will contain the URL needed by the emulator.


  • Hello Jack,

    very nice topic and interesting tool, Congratulations!

    Can we use report select-options on mobile?

    Also i had done a similar study to mobilize ALV reports. You can check demo via MySapReport it can mobilize all standard and custom ALV reports by variant without any modification on SAP and dynamicliy creates charts according to fieldcatalog. For detail information you can check my blog series.

    • Hi Basar,

      That's a really interesting collection of articles, thanks for sharing. I think our projects could work nicely together 😀 I'll certainly investigate further over the weekend 😉


  • It looks interesting.

    What is the underlying technology/framework used ?

    Is it a browser based app or container based or native app ?

    - Midhun VP

    • Hi Midhun,

      The solution uses the classic Cordova+jQMobile combination on the mobile side, reading in the report structure from SAP, rendering an appropriate UI, and sending back the data once the user has finished. The solution then posts the users data back to SAP, SAP calls the report using the parameter values provided, and relays the response back to the mobile application. Currently all communication uses XML, but Uwe's JSON library looks like a nice alternative ( and may be incorporated soon.

      A permissions table indicates which reports users can access via the system (acting as a white-list). A VPN should be used between the device and SAP to ensure a secure connection, and a non-dialog user should be used.


        • Hi Midhun,

          Not sure I understand correctly - data can be updated within SAP using START-OF-SELECTION (see the Microbe project as an example.) Within this section of the report, any data passed back from the mobile app can be stored or used to update SAP in any way necessary. It's just like a normal report, and is run by the mobile app as though the user had F8'd the report from within the SAP GUI and entered the same values.

          Hope that helps clarify 😉

  • Hi Jack.

    I have install zMOB im my ECC System. I have install saplink files with sucess. Now i need install zmob files with saplink. All, ok. But i dont find ZMOB_CONFIG_DATA report in my system. Where I can download source file of ZMOB_CONFIG_DATA report.

    You can I help me?

    I need connect my mobile device in my ecc to view zmob application running.

    Thanks a lot.


    • Hi Rafael,

      Sorry for the late reply!The report to which you refer is a work in progress, and not yet complete. Sorry 🙁 However, directly configuring the lines in the table ZMOB_PERMISSIONS will achieve the same goal. The table structure is:





      The table should be configured as follows:

      USERGROUP should be set to space to allow all SAP user accounts to be able to access the mobilised report, or set to a specific account name (value of sy-uname.) The reason why this is called USERGROUP is because normally an RFC SAP account (non-dialog) would be used to connect to SAP from the mobile device. Hence the username of the account accessing the system doesn't necessarily represent the user accessing the system.

      USERNAME is the name configured within the mobile application on the device.

      REPORT is the name of the SAP report to allow access to.

      ENTRYPOINT is a value indicating whether the report shows on the welcome page for the user, or whether the report is simply referenced by another report. Any report referenced to by another report must be listed in this table also or else the users won't be able to access it.

      As an example of the configuration, we could have something like:

      USERGROUP = <space>

      USERNAME = <space>



      this configuration would allow any user over any RFC connection to read from and post back to the report named ZMOB_EXAMPLE_01 in your SAP system. The report would be shown and linked to from the welcome page of the application.

      I hope this helps 🙂

      Warm regards,


  • For all those who are getting SICF_ZMOB intallation error:

    Tcode : SICF
    Default host/SAP/BC >> New Sub Element.

    zmob >> handler list

    add ZMOB.

    Activate service.

    • Hi Amit,

      It seems I have been neglecting this blog post recently, for which I apologise to the community. Things are a little busy at the moment.

      Thank you for your previous comment regarding the SICF config - looking at the project from inside out I miss these details!

      The Android app is still in Beta, and instructions on installation can be found by joining this group on Google Plus:

        zMob Android Beta Testers – Community – Google+

      Make sure you join the group using the same Google account you use on your Android device (as the application is in Beta, we use the group to determine who can install the application.)

      Warm regards,


  • Hi Jack,

    Thanks for quick reply.

    I was restless in posting about the app though I read u can install it once you join the group 😛
    I am in and I have it now (thanks again for the same)

    @ Rafeal:

    create an executable  z program:


    data: gty_perm type ZMOB_PERMISSIONS.

    *gty_perm-REPORT = 'ZMICROBE_POST'.

    *gty_perm-ENTRYPOINT = 'X'.


    *modify zmob_permissions from gty_perm.

    *clear gty_perm.


    *gty_perm-REPORT = 'ZMICROBE_INDEX'.

    *gty_perm-ENTRYPOINT = 'X'.


    *modify zmob_permissions from gty_perm.

    *clear gty_perm.

    gty_perm-REPORT = 'ZME28_ZMOB'.

    gty_perm-ENTRYPOINT = 'X'.

    modify zmob_permissions from gty_perm.

    clear gty_perm.

    dts it 🙂

    PS: Jack, I will get back with interesting thing I get on the way and m sure you will be pleased to answer them.

    Thansk All.

    • Hi Amit,

      Great stuff, thanks for posting your permissions report 🙂

      I'm really curious to see what you've done with zMob - one of the thrills of working on the zMob project is seeing what others do with it. Is there any chance you could post a screenshot of your finished product for the community to see? Or if you're feeling brave/energetic then a blog post outlining your experiences and end result would be fantastic 😀 I understand if you're working on a closed or commercial product, so no problems.

      Thanks for embracing zMob Amit - consider yourself an official zMobber!

  • Hi Jack,

    I had a look at your zMOB mobile application development for SAP. I would like to implement a POC for one of our requirement.

    You were talking about some beta versions in development for Android platforms. Is the development completed over there or it is still under development?

    I would like to do a POC for a android mobile accessing SAP as a backend system. I have gone through some links to install SAPLink in order to start with working on the POC.

    I will contact you in case i need any help.