Friday, December 1, 2017

OData Explorer

If you are working with UI5 and OData in general, you will quickly figure out the benefits of the OData v2 Model, especially if you have an existing OData service in the backend, UI5 makes it quite easy to bind a widget directly against the data including sorting, limiting, filtering, etc.

SAP itself is heavily focusing on OData as the prefered service layer, to offer services with the possibility to use metadata driven, autogenerated user interfaces.

The nice thing about an odata service is, that it describes himself with the containing metadata information, if you add $metadata as a parameter to the service url.

To make this information more readable, i created the OData Explorer to visualize the content of the odata metadata information.

OData Explorer


  • app to explorer a given OData v2 service
  • demo HCP destination pointing out to northwind example service
  • included coding to add service browser for SAP Gateways using /sap/opu/odata/iwfnd/catalogservice/
  • some css fixes for token (avoid clipping in Tablet, float)

This app is quite useful, if you are working with Fiori Elements like SmartFields, etc. that extremely makes use of semantic annotations like labels. Therefore i deploy this app on the HCP of most of my customers to easily discover existing SAP Gateway services even without the need to logon to the SAP system itself.

If you have a destination from your HCP pointing out to /sap/opu/iwfnd/catalogservice and also activated the catalog service, the OData Explorer allows to select any of the services and dynamically load the corresponding metadata.

Since i negotiated the visualisation, expecting that most properties are generally allowed and the app only show icons, if a feature is not allowed, this makes it visually quicker understandable than to watch the $metadata sap:createable:true/false for example.

SAP Service Browser

If you will use the app to explorer services on an SAP Gateway, you can enable the service catalog to discover and search for all existing services. The selected service will be loaded automatically. To enable this feature you have to
  • inside the manifest.json copy the xmodel/catalog model to the existing model section and delete xmodel (preload: false currently does not work, maybe a bug)
  • inside the Metadata.controller.js set property "_bUseCatalogService: true" to true to show service selector instead of using demo service

Source is located in the github repository.

Wednesday, August 2, 2017

SAP Fiori Client (Part II)

Some years ago i wrote a blog SAP Fiori Client pointing out the possibilities of running an UI5 app inside the SAP Fiori Client application.

In the meantime, there is an update on the documentation available here!

I have created a playground to make it easier to see the benefits in real life.
The following demo is hosted on my trial hcp account.

Fiori Client Demo

To be able too see all the goodies, link you SAP Fiori Client to the following URI:

You can easily use a QR code to configure the Fiori URL (new with version 1.8) .

Demo App URL

Maybe this makes it easier for you to start using the SAP Fiori Client.


  • demo how to use native device features inside the SAP Fiori Client
  • detection of client inside bootstrap
  • custom QRCode control to render FioriURL for easy setup
  • Plugin examples for:
    • Attachment Viewer
    • Barcode Scanner
    • Calendar
    • Camera
    • Contacts
    • Geolocation
    • InAppBrowser
    • Printer
    • Voice Recording

Source is located in the github repository.

Wednesday, July 5, 2017

New UI5 Logo Experience

Last week i have been visiting the first UI5con offered by SAP.

Besides socializing and all the great news one aspect has been, that some renovations on the way to evolution has taken place by changing the UI5 logo.

New UI5 Logo

We learned to know, that the original library was internally called phoenix and that is the reason, why they used a phoenix as the logo.

Now since everything is growing up and there is maybe the time for some renovation by Teodora Angelova

UI5 Logo UX Redesign Process

The final result can be seen in the upcomming OpenUI5 SDK, which is public available in the nightly build SDK.

OpenUI5 Nightly Build SDK

Personally i love this kind of UX especially if there is a story behind it.

Thursday, May 4, 2017


OpenUI5 contains a lot of cool and useful controls, but when it comes to a need of ordering or rearanging some data, there is no out-of-the-box support.

After some googling, i figured out that the internal used jQuery UI library contains something cool called Sortable.

It contains everything you need and the best thing is, that the needed resources are still part of the UI5 framework hidden inside the package "sap/ui/thirdparty/jqueryui/jquery-ui-sortable".

SortableList Demo

Gotcha, but sadly jQuery only support desktop events and therefore the functionality does not work on touch based devices ;-(

Luckily i figured out jQuery UI Touch Punch that enables Touch Event Support for jQuery UI without additional needs.

So besides all the blogs that i have read, this is the first working demo that supports both device types.

On touch devices, i also added a swipe delete action for demonstration purposes, because this coding is part of my karafun karaoke playlist app to manage the singers song list.


  • demo how to use jquery-ui-sortable with div elements on top of sap.m.List
  • adding touch support using touch-punch
  • adding nice css shadow and transparency effect while dragging

Source is located in the github repository.

Friday, March 31, 2017


Again it is demo time.

Playing around with some libs i discovered ScrollReveal.

It is a small library for easy scroll animations for web and mobile browsers.

So maybe give it a try (best viewed on small devices like phones ;-)

ScrolReveal Demo


  • custom control to extend sap.m.List
  • support of binding and growing by resyncing dom elements
  • using JSON model initialized inside manifest.json

Source is located in the github repository.

Sunday, March 12, 2017


I am not that fellow Old West fan (maybe a little one) and it is not High Noon.

Showdown is not a gun battle, instead it is a JavaScript Markdown to HTML converter that can be used server side (nodejs) and client side (browser).

My little UI5 control wrapper should be seen as a starting point for your own implementation, because i also added the prettify extension to highlight code (css, js, etc.) and remotely load content using ajax.

Showdown Demo

Source is located in the github repository.

Friday, January 13, 2017


Hello again in 2017!

Since i am a fan of using SVG images i always missed the feature to use as inline/embedded content inside my UI5 apps. Using SVGs by reference only does not allow to style parts of the image with css.

UI5 uses font based icons to include vector orientated images, but these kind of images are monochromatic only.

That's why i implemented a custom control, but also a prototyp which overrides the framework default behavior to allow usage off file names like NAME.inline.svg through different controls that have a img src property.

I included a demo, to show the usage off both implementations.


I put some links on top of the demo, that are quite handy helpers to work with SVG or infos in general.

As always, the github repository contains the control sources and a demo app.

Maybe the future of UI5 will be more colorful ;-)