The exponential increase of mobile adoption at SAP has been significantly supported by the early availability of analytics (SAP BI Mobile, SAP BusinessObjects Explorer Mobile) making these mobile apps the preferred entry point to Business Intelligence (BI) for our business community. Elements, like making end users feel they are at home, facilitating the deployment with built-in apps are key factors of a smooth deployment and higher adoption rate.
   SAP BI Mobile offers this possibility with a SDK (Software Development Kit). The purpose of this article is to share our experience in leveraging SDK to create a customized version of SAP BI Mobile fitting with the expectations of our business community. It is addressed to anyone interested in this topic, no matter the level of computing skills.
General goals you may want to reach with SDK
   SDK offers a large panel of options to adapt the overall design of the app, hereby integrating the corporate layout policy of your company. You can  almost change anything you want in the application (colors, labels, background, images, icons…). The SDK library is accessible to technical, but not  expertized, consultants. You can quickly find whatever you need in sources and write your own piece of code.
   Beside layout, SDK also allows you to control the parameters of the app. A great example is the possibility to set predefined connections to your corporate systems, that are then systematically listed when the end user installs the app, and does not need to be entered manually. This is a huge step
forward to facilitate a global deployment.
   Content can also be managed via SDK – offering in particular the possibility to create your own charts. If it may help to fulfill some specific business needs not covered with the default chart library, this is the most advanced piece of SDK where more developer skills are required.
 
   Finally, the SDK Developer Guide gives useful information about all possible customizations and how to set them up with a step by step description.
Technical requirements
   Here are the prerequisites to develop SDK solutions for SAP BI Mobile:
 
  • Development is made on an iMAC with the Xcode software (see note below)
  • A mobile device to deploy the customized application
  • An Apple Developer Account (see note below)
   About XCode :
     Xcode is an integrated development environment (IDE) containing a suite of software development tools developed by Apple for developing software and applications for OS X and iOS. An iOS simulator is also integrated in the software in order to test your developments. You open your build with this software and can see the whole content (files, folders, code, images, etc).
 
   Here is a screenshot of the display in Xcode of the architecture of the build:
/wp-content/uploads/2013/10/scn1_303186.jpg
About Apple Developer Account
 
   Getting an Apple Developer Account is mandatory to develop and compile apps on IOS. You can buy this account on the Apple portal. With this account, you will have to create a certificate, register your device, and create a provisioning profile which connects your certificate and your device. All these actions have to be done on the Apple portal.
/wp-content/uploads/2013/10/scn2_303187.jpg
 
Overall landscape
   The whole development until the final compilation is performed within Xcode. Xcode is composed of two main windows: the development window (for development and compilation) and the organizer window (for distribution).
 
a. Development Area
 
   The development window is where you can customize your app in the way you want. All developments / modifications are done in this window.
    /wp-content/uploads/2013/10/scn4_303237.jpg
   On the left of the screen, you have a sidebar where you can see the architecture of your app. You can navigate through these elements; and each time you select one, it appears in the main screen on the right. After that, you are free to customize whatever you want in all files of the architecture.
   The iOS simulator is very helpful to test the behavior and the design of your application. You have to select either iPad simulator or iPhone simulator depending on the targeted device. Then, you just have to run the project.
         /wp-content/uploads/2013/10/scn5_303238.jpg
  
b. Compilation
   The next step when your developments are done is to compile the code into a new app. In the Product menu of the navigation bar, you have to select Archive. This action also has to be done in the development window.
/wp-content/uploads/2013/10/scn6_303248.jpg
 
c. Distribution
 
   The last step in order to get your app is to publish it so you can create the IPA file that will be deployed on mobiles. This action is done from the Archives tab of the Organizer window. You can now see the build that you archived previously. 
– Select your build and click on the distribute button.
– Select the method of distribution:
/wp-content/uploads/2013/10/scn7_303249.png
– Select “Save for Enterprise or Ad-Hoc Deployment” then Next.
– Now, you have to choose a certificate for signing the application.
/wp-content/uploads/2013/10/scn8_303250.png
 
– The last step is to set the location for saving your IPA
   
d. Install the IPA file on your iPad
   This is a standard synchronization via iTunes.
   Please find a short video which details how you can install the IPA file on your iPad.
    
Examples of customization
1st  example: Predefined connection
   Predefined conditions can be extremely helpful in global deployments, avoiding the need to support each user to set up his or her own connection with the risk of typos in the settings.
   You can access and create these connections in the “DefaultSettings.plist” files in the item “feature.predefinedconnections.list”.
   Note that you can set an unlimited number of predefined connections, just click on the “+” icon and add server information. If you want to delete one of your predefined connections, just click on the “-” icon.
/wp-content/uploads/2013/10/scn9_303260.png
   Each line you add for setting a new connection has to begin with “sapbi://addConnection?” followed by the parameters of the connection. All parameters are linked with the symbol “&”.
   Some connection parameters are mandatory: Name, Type (BOEConnection, HANABIServer, etc), Server URL, CMS, Central Management Server), Authentication type (Enterprise, LDAP, Windows AD)
 
   There are also optional parameters if you want to add more information to the connection:
  • Editable : Boolean parameter that determines if the connection is editable on device
  • Default: Boolean parameter that determines if the connection is set by default on device
  • User credentials
  • Save Password : Boolean parameter that determines is the password can be saved on device
   You can find all of these parameters in these examples of predefined connections.
/wp-content/uploads/2013/10/scn10_303261.png
  
   Here is an example with mandatory and optional parameters:
sapbi://addconnection?ConnectionType=BOEConnection&connection_name=myBOEConnection&server_url=11.22.33.44%3A8080&cms=11.22.33.44&authType=secEnterprise&usr=myuser&pwd=mypassword&savePwd=true&editable=true
 
2nd   example: Home screen color customization
   This example especially applies to companies where corporate design is subjected to strong governance. The customization is separated between colors of all text elements of the home screen and background images.
   First, regarding colors of texts, you can access and modify them in the file “ApplicationAppearance.plist” by updating the column Value (the one in the red square). You have to fill this column with the hexadecimal code of the color you want to set for your texts.
/wp-content/uploads/2013/10/scn11_303281.png
   Here is the reference of each line of the “ApplicationAppearance” file in the home screen. With this, you can easily know which line you need to update to customize the text of the home screen of the application:

/wp-content/uploads/2013/10/scn12_303282.png
   The background of the app and the icons are built with images, so the easiest way to customize the application is to change these pictures directly. You just have to replace the file by using the same name and the modification will be taken into account immediately.

   You can find all these files in the folder images in the hierarchy structure of the application.

   The pictures used for the background of the app are located in the folder “Appearance”:

             /wp-content/uploads/2013/10/scn13_303283.png
   The pictures used for the icons of the home screen are located in the folder “HomeScreen50”:
            /wp-content/uploads/2013/10/scn14_303287.png

Conclusion and recommendations

   The SBO Mobile SDK is a great opportunity for customizing your app in a simple way because it does not require a high level of computing skills for most of features. Moreover, the documentation is very well detailed, so it is easy to follow the instructions step by step. Of course, before going into this direction, you must consider the additional TCO generated by the need to update and recompile the app for any change in the customization or whenever a new version of the Standard App is released.

   Here are few screenshots of customizations:

  • Icon on the home page:

/wp-content/uploads/2013/10/scn18_303289.png

  • Home screen Colors customizations :

/wp-content/uploads/2013/10/scn16_303296.png

Useful links:
To report this post you need to login first.

5 Comments

You must be Logged on to comment or reply to a post.

  1. Peter Chen

    Very nice.  Thanks for the step-by-step. 

    This is 10x better than the official product guide…I often wonder why the product  guide had to be so abstract…not as graphical and detailed…In theend, SAP wants people being able to use their product quickly, right ?

    (0) 
    1. David POISSON Post author

      Hi Peter,

      thank you for your feedback and very happy that it helped. You are right, intention is always that you can start as rapidly and easily as possible. With our situation of internal customer, we view the suite from a different angle, allowing us to bring to the community the perspective of a real customer even if internal, which generally is a good complement as per the feedback we receive. With your feedback, it shows we are on the right track and will continue

      (0) 
  2. Mike Howles

    Great post about how to customize and brand the SDK.  I wish I’d run across this last week while I was stumbling around in Xcode to find basically all these spots to customize with.  A lot of what I’ve found and what you mention in your blog seems to revolve more around UI customization and some visual branding.  I was unable to dig in beyond that but it’s a great start.

    They did mention at TechEd this year that they want to take this technology in Mobile BI and make it available in transactional/workflow based applications in the form of some sort of embedded analytics use so I think and hope we’ll continue to see SAP open this up further.

    (0) 
  3. Henrique Bueno

    Great post! Congratulations!

    I’m developing an app based on SAP BO SDK that receives the iDocID from other app.

    Can I open a document in this app when the same is started? I want to open directly a document without to pass by reports list.

    I’m trying to use opendoc with this URL, but this does not work. I can open the app and show the reports list, but I need to touch in the report to open it.

    NSString *urlConnection = [NSString stringWithFormat:@”sapbi://OpenDoc/?ConnectionType=BOEConnection&connection_name=%@&server_url=%@&cms=%@&Type=%@&iDocID=%@&reportPartKey=%@&reportPageNumber=%@&reportIndex=%@&isInstance=%@&prompt=%@”, connectionName, serverUrl, cms, type, iDocID, reportPartKey, reportPageNumber, reportIndex, isInstance, prompt];

    Thanks!

    (0) 
  4. Ram Gopalan Virudhachalam

    Great Post David! Covers almost all the main contents of using the SDK! Cheers, in addition to that they update the SDK quite frequently with new features popping up. For instance the last version included the Connection URL of the pre-defined connections to be HTTPS by default in nature, else we need to add that up as an exception!

    Thanks and continue the good job!

    (0) 

Leave a Reply