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.
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.
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!
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.