From SAP to app using Rhomobile

Mark Teichmann, Info AG




                              © INFO AG | 13 May 2012 | page 1
Mobile Application Development Platforms
What is a MADP?


=> Suite of products and services that enable development of
mobile applications

Typical Features
•   Cross-platform support
•   Middleware for Data Sync, Security, App Provisioning
•   Graphical Editor / Code generation




                                                    © INFO AG | 13 May 2012 | page 2
Mobile Application Development Platforms
Overview of well known Vendors


• Antenna Software
• Appcelerator
• IBM Worklight
• Kony Solutions
   Rhomobile
• Rhomobile
• Sybase Unwired Platform
• Syclo (will be merged into Sybase Unwired Platform)
• Verivo
• …

                                                  © INFO AG | 13 May 2012 | page 3
Components of Rhomobile
Source: http://www.rhomobile.com/products/




                                             © INFO AG | 13 May 2012 | page 4
Mobile Process
Approval of a Purchase Requisition




                                     © INFO AG | 13 May 2012 | page 5
Live Demo




            © INFO AG | 13 May 2012 | page 6
Livedemo continued…




                      © INFO AG | 13 May 2012 | page 7
Livedemo continued…




                      © INFO AG | 13 May 2012 | page 8
Components of Rhomobile


• Design mobile apps using Ruby and Eclipse




• Synchronize data with backend systems


• Build apps for all platforms in the cloud




                                              © INFO AG | 13 May 2012 | page 9
Rhodes


• Open Source Framework for building mobile applications
• Ruby MVC
• Rhom Database Object Mapper
• UI is HTML5/CSS/JS
• Rendered in native browser app
• Available for Android, iOS, Blackberry, Windows Phone




                                                 © INFO AG | 13 May 2012 | page 10
Rhodes Framwork Architecture
Source: http://docs.rhomobile.com/rhodes/introduction#framework-architecture




                                                                               © INFO AG | 13 May 2012 | page 11
Ruby MVC
                        Model




           Controller           View




                          © INFO AG | 13 May 2012 | page 12
Rhom
Mini Database Object Mapper


• Easy data handling
• No database schema
• No data migrations needed
• Data model extendable by code




                                  © INFO AG | 13 May 2012 | page 13
Rhom Example Code
Added Property get_banfpos_list to the model




                 Built-in Sync functionality


                                 Model is easily
                                 expandable




                                                   © INFO AG | 13 May 2012 | page 14
Usage of Workflow.get_banfpos_list
Source code of View index.rb




                                     © INFO AG | 13 May 2012 | page 15
Corresponding
View


                                                            Source code
        <li><div data-role="collapsible”>

                <h3>Bestellpositionen</h3>


        <ul data-role="listview" data-inset="true" >

                   <% @workflow.get_banfpos_list.each do |pos| %>

                    <li data-role="list-divider" >Position <%= pos['bnfpo'].to_i %>

                          <span class="ui-li-count"><%= pos['menge'] %></span>

                    </li>

                   <li>

                      <p><strong>Material: <%= pos['matnr'] %></strong></p>

                                                  …

                                                   …
                                                © INFO AG | 13 May 2012 | page 16
RhoConnect
Source: rhomobile.com




                        © INFO AG | 13 May 2012 | page 17
RhoConnect
Data Synchronization with Source Adapters




                                            © INFO AG | 13 May 2012 | page 18
Source Adapter for Workflow object




                                     © INFO AG | 13 May 2012 | page 19
SAP Business Workflow
One-Step PR Approval Workflow




                                © INFO AG | 13 May 2012 | page 20
SAP Objects




              © INFO AG | 13 May 2012 | page 21
RESTful Controller


SDN blog by Uwe Kunath




                         © INFO AG | 13 May 2012 | page 22
REST Service in SAP
       Transaction SICF




rest_result = RestClient.get("#{@base}/sap/zrest/banfdemo/workflows/#{current_user.login.upcase}").body




                                                                             © INFO AG | 13 May 2012 | page 23
Workflow document in Browser




                               © INFO AG | 13 May 2012 | page 24
Workflow document stored in Rhoconnect
Redis based NoSQL Sync Server




                                   © INFO AG | 13 May 2012 | page 25
RhoHub
Build native apps for all platforms


• Git Repository for your source code
• RhoHub Editor for working in the Cloud (optional)
• Build app for different Mobile Platforms




                                                      © INFO AG | 13 May 2012 | page 26
© INFO AG | 13 May 2012 | page 27
Example iOS Build




                    © INFO AG | 13 May 2012 | page 28
RhoHub Editor




                © INFO AG | 13 May 2012 | page 29
RhoGallery
App Store in the Cloud




                         © INFO AG | 13 May 2012 | page 30
Lessons learned


• Learning Ruby is straight forward
• Implementing SAP backend needs manual work
• Documentation of Rhomobile could be better and more up to date
• Good support via Google Group and @adamblum (CEO)
• jQuery Mobile slows apps down -> jqMobi is possible but much
  manual work needed




                                                 © INFO AG | 13 May 2012 | page 31
Thanks for your attention!
MARK TEICHMANN
mark.teichmann@info-ag.de
@thulium3




                             © INFO AG | 13 May 2012 | page 32

From SAP to app using rhomobile

  • 1.
    From SAP toapp using Rhomobile Mark Teichmann, Info AG © INFO AG | 13 May 2012 | page 1
  • 2.
    Mobile Application DevelopmentPlatforms What is a MADP? => Suite of products and services that enable development of mobile applications Typical Features • Cross-platform support • Middleware for Data Sync, Security, App Provisioning • Graphical Editor / Code generation © INFO AG | 13 May 2012 | page 2
  • 3.
    Mobile Application DevelopmentPlatforms Overview of well known Vendors • Antenna Software • Appcelerator • IBM Worklight • Kony Solutions Rhomobile • Rhomobile • Sybase Unwired Platform • Syclo (will be merged into Sybase Unwired Platform) • Verivo • … © INFO AG | 13 May 2012 | page 3
  • 4.
    Components of Rhomobile Source:http://www.rhomobile.com/products/ © INFO AG | 13 May 2012 | page 4
  • 5.
    Mobile Process Approval ofa Purchase Requisition © INFO AG | 13 May 2012 | page 5
  • 6.
    Live Demo © INFO AG | 13 May 2012 | page 6
  • 7.
    Livedemo continued… © INFO AG | 13 May 2012 | page 7
  • 8.
    Livedemo continued… © INFO AG | 13 May 2012 | page 8
  • 9.
    Components of Rhomobile •Design mobile apps using Ruby and Eclipse • Synchronize data with backend systems • Build apps for all platforms in the cloud © INFO AG | 13 May 2012 | page 9
  • 10.
    Rhodes • Open SourceFramework for building mobile applications • Ruby MVC • Rhom Database Object Mapper • UI is HTML5/CSS/JS • Rendered in native browser app • Available for Android, iOS, Blackberry, Windows Phone © INFO AG | 13 May 2012 | page 10
  • 11.
    Rhodes Framwork Architecture Source:http://docs.rhomobile.com/rhodes/introduction#framework-architecture © INFO AG | 13 May 2012 | page 11
  • 12.
    Ruby MVC Model Controller View © INFO AG | 13 May 2012 | page 12
  • 13.
    Rhom Mini Database ObjectMapper • Easy data handling • No database schema • No data migrations needed • Data model extendable by code © INFO AG | 13 May 2012 | page 13
  • 14.
    Rhom Example Code AddedProperty get_banfpos_list to the model Built-in Sync functionality Model is easily expandable © INFO AG | 13 May 2012 | page 14
  • 15.
    Usage of Workflow.get_banfpos_list Sourcecode of View index.rb © INFO AG | 13 May 2012 | page 15
  • 16.
    Corresponding View Source code <li><div data-role="collapsible”> <h3>Bestellpositionen</h3> <ul data-role="listview" data-inset="true" > <% @workflow.get_banfpos_list.each do |pos| %> <li data-role="list-divider" >Position <%= pos['bnfpo'].to_i %> <span class="ui-li-count"><%= pos['menge'] %></span> </li> <li> <p><strong>Material: <%= pos['matnr'] %></strong></p> … … © INFO AG | 13 May 2012 | page 16
  • 17.
    RhoConnect Source: rhomobile.com © INFO AG | 13 May 2012 | page 17
  • 18.
    RhoConnect Data Synchronization withSource Adapters © INFO AG | 13 May 2012 | page 18
  • 19.
    Source Adapter forWorkflow object © INFO AG | 13 May 2012 | page 19
  • 20.
    SAP Business Workflow One-StepPR Approval Workflow © INFO AG | 13 May 2012 | page 20
  • 21.
    SAP Objects © INFO AG | 13 May 2012 | page 21
  • 22.
    RESTful Controller SDN blogby Uwe Kunath © INFO AG | 13 May 2012 | page 22
  • 23.
    REST Service inSAP Transaction SICF rest_result = RestClient.get("#{@base}/sap/zrest/banfdemo/workflows/#{current_user.login.upcase}").body © INFO AG | 13 May 2012 | page 23
  • 24.
    Workflow document inBrowser © INFO AG | 13 May 2012 | page 24
  • 25.
    Workflow document storedin Rhoconnect Redis based NoSQL Sync Server © INFO AG | 13 May 2012 | page 25
  • 26.
    RhoHub Build native appsfor all platforms • Git Repository for your source code • RhoHub Editor for working in the Cloud (optional) • Build app for different Mobile Platforms © INFO AG | 13 May 2012 | page 26
  • 27.
    © INFO AG| 13 May 2012 | page 27
  • 28.
    Example iOS Build © INFO AG | 13 May 2012 | page 28
  • 29.
    RhoHub Editor © INFO AG | 13 May 2012 | page 29
  • 30.
    RhoGallery App Store inthe Cloud © INFO AG | 13 May 2012 | page 30
  • 31.
    Lessons learned • LearningRuby is straight forward • Implementing SAP backend needs manual work • Documentation of Rhomobile could be better and more up to date • Good support via Google Group and @adamblum (CEO) • jQuery Mobile slows apps down -> jqMobi is possible but much manual work needed © INFO AG | 13 May 2012 | page 31
  • 32.
    Thanks for yourattention! MARK TEICHMANN mark.teichmann@info-ag.de @thulium3 © INFO AG | 13 May 2012 | page 32