Skip to Content

Preface


I must admit that for a quite long time I just couldn’t find time to share enough on SCN. I read it daily, actually quite religiously and in the last months I have had many moments when great info SCN saved my day. When developing SAPUI5 code I rely on SAP documentation and blogs all the time. I feel good that I broke the ice and I am back in the “blogging business” to give back more.

Project Scope

We are building responsive SAP web applications which connect to the SAP backend system via Gateway/OData. The apps will be exposed to the internet to be used by thousands of partners of the customer.


Project approach

I believe in Design Thinking so I promoted this methodology at the customer. In the end we are not following each phases, but I am happy to see the continuous involvement of the users in the project before and during building. It’s a nice experience for the users, they expressed their satisfaction and amazing learning for us, the technical experts. I think I have seen many good applications my life, so sometimes I think I really know what the best way is to implement certain functionality. Until the users disagree unanimously 😉 These are moments when I get confirmation about the power of Design Thinking and Agile.

We split the project in sprints and we implement the user stories based on priorities. We maintain these in an online SCRUM tool. This way the results are coming continuously, which keeps the customer happy. After many waterfall projects in the past this is a refreshing experience!


Design

Full responsive design is the goal with support for “all newer browsers”. This is really the fun part. It requires a tricky cooperation among the usability expert, the designer and the developer, in our case all from different companies. I can recommend two tools here: AxureShare proved to be a useful platform to share mockups and invision for distributing and collaborating on the design.


Technical lessons learned


  • The wish to support for “all newer browsers” on “all devices” automatically means that I started with the sap.m library. The customer still would like to support IE9, so the very useful sap.m.FlexBox is out. The usability expert and the designer have no SAP background (you could say luckily), which means that their ideas are not easy to translate to SAPUI5. Just simple change of the colors is the css is not enough. In some cases we have to detect the device and use the desktop library for large screens and the mobile library for smaller ones and the css styles have to be assigned dynamically too.
  • I use Chrome for development and one day I got very surprised when a new OData create call kept failing. I am still grateful to Sakthivel Elango for his blog which explaining that Chrome has removed some DOM Level 2 API’s and proving a workaround for it.
  • Since the Gateway work was parallel to the SAPUI5, in some cases I couldn’t wait for the Gateway-based OData service and I created one in HANA. In HANA I can create a table and a CRUD service in 5 minutes. This proved to be a good way to make sure that we don’t lose time.
  • I use OData binding wherever I can, because I think it is one of the strengths of SAPUI5, but for one of the applications I deviated from it. In this app the same data is manipulated on multiple screens, so I thought to get the data in JSON format from the OData service once in the controller of the first view and keep it in the session for all the other views. This way I minimize the traffic between the front-end and the back-end.
  • In one of the apps we have to make many updates in one go, so we use the batch update in OData. It works well, but creating the exact string took a while. Even a simple carriage return can break the whole thing. Making sure that the Content-Length is greater than the actual payload is another point of attention.

I am curious if you recognize these points and your experience is the similar. I will share more findings in a later phase of the project too.

To report this post you need to login first.

4 Comments

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

  1. Robin van het Hof

    Great blog, to which I can mostly relate to.

    funny you mentioned you use OData; to the contrary, I actually use JSON models whenever I can, the sole reason being it’s not a serverside model So I can do manipulations in the UI5 layer before I submit my changes back to a backend 🙂

    (0) 
    1. Tamas Szirtes

      Thanks, Robin. Yes, that’s a good point. With oData even sorting is done on the server side. I use oData model for simple tables, selecting an item, doing an update. Logically JSON should hit some performance limits with large data volumes, but I haven’t run into this issue yet.

      (0) 
  2. Simon Kemp

    Thanks for sharing your experiences here Tamas, it is always good to read about what is happening out in the real world where the “rubber hits the road”. I look forward to reading more from you soon.

    (0) 
  3. Krishnakant Joshi

    Hi Tamas,

    Thanks for sharing your experience. I personally feel that bringing Agile methodology in SAPUI5 development will have a great future ahead 🙂 .

    (0) 

Leave a Reply