© INFO AG | April 13, 2023 | page 1
Mark Teichmann, Info AG
From SAP to app using Rhomobile
© INFO AG | April 13, 2023 | page 2
Mobile Application Development Platforms
=> 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
What is a MADP?
© INFO AG | April 13, 2023 | page 3
Mobile Application Development Platforms
• Antenna Software
• Appcelerator
• IBM Worklight
• Kony Solutions
• Rhomobile
• Sybase Unwired Platform
• Syclo (will be merged into Sybase Unwired Platform)
• Verivo
• …
Overview of well known Vendors
•Rhomobile
© INFO AG | April 13, 2023 | page 4
Components of RhomobileSource: http://www.rhomobile.com/products/
© INFO AG | April 13, 2023 | page 5
Mobile ProcessApproval of a Purchase Requisition
© INFO AG | April 13, 2023 | page 6
Live Demo
© INFO AG | April 13, 2023 | page 7
Livedemo continued…
© INFO AG | April 13, 2023 | page 8
Livedemo continued…
© INFO AG | April 13, 2023 | page 9
Components of Rhomobile
• Design mobile apps using Ruby and Eclipse
• Synchronize data with backend systems
• Build apps for all platforms in the cloud
Rhodes
RhoConnect
RhoHub
RhoStudio
© INFO AG | April 13, 2023 | page 10
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 | April 13, 2023 | page 11
Rhodes Framwork ArchitectureSource: http://docs.rhomobile.com/rhodes/introduction#framework-architecture
© INFO AG | April 13, 2023 | page 12
Ruby MVC• Mode
l
• View• Cont
roller
• Model
• View• Cont
roller
• Model
• View• Cont
roller
© INFO AG | April 13, 2023 | page 13
Rhom
• Easy data handling
• No database schema
• No data migrations needed
• Data model extendable by code
Mini Database Object Mapper
© INFO AG | April 13, 2023 | page 14
Rhom Example CodeAdded Property get_banfpos_list to the model
Built-in Sync functionality
Model is easily expandable
© INFO AG | April 13, 2023 | page 15
Usage of Workflow.get_banfpos_listSource code of View index.rb
© INFO AG | April 13, 2023 | page 16
<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>
…
…
Source code
Corresponding View
© INFO AG | April 13, 2023 | page 17
RhoConnectSource: rhomobile.com
© INFO AG | April 13, 2023 | page 18
RhoConnectData Synchronization with Source Adapters
© INFO AG | April 13, 2023 | page 19
Source Adapter for Workflow object
© INFO AG | April 13, 2023 | page 20
SAP Business Workflow One-Step PR Approval Workflow
© INFO AG | April 13, 2023 | page 21
SAP Objects
© INFO AG | April 13, 2023 | page 22
RESTful Controller
SDN blog by Uwe Kunath
© INFO AG | April 13, 2023 | page 23
REST Service in SAPTransaction SICF
rest_result = RestClient.get("#{@base}/sap/zrest/banfdemo/workflows/#{current_user.login.upcase}").body
© INFO AG | April 13, 2023 | page 24
Workflow document in Browser
© INFO AG | April 13, 2023 | page 25
Workflow document stored in RhoconnectRedis based NoSQL Sync Server
© INFO AG | April 13, 2023 | page 26
RhoHub
• Git Repository for your source code
• RhoHub Editor for working in the Cloud (optional)
• Build app for different Mobile Platforms
Build native apps for all platforms
© INFO AG | April 13, 2023 | page 27
© INFO AG | April 13, 2023 | page 28
Example iOS Build
© INFO AG | April 13, 2023 | page 29
RhoHub Editor
© INFO AG | April 13, 2023 | page 30
RhoGalleryApp Store in the Cloud
© INFO AG | April 13, 2023 | page 31
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
Top Related