Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
Showing results for 
Search instead for 
Did you mean: 
Active Participant

CodeJam for End-to-end SAPUI5 Application Development

Friday, June 3rd to Saturday, June 4th, Passau, Germany

It's CodeJam time again, and for 38 participants from MSG Systems in Passau, Germany, it was their chance to get up to speed with end-to-end application development.  We started in ABAP with the development of a custom OData service, and then finished in JavaScript with a SAPUI5 app running in the browser that consumes the custom OData service.

Most of the people attending this CodeJam were already experienced ABAP developers, but were new to the concepts of OData; so we spent the first half day going through the origins and foundational principles of OData.  Then after explaining the structure of ABAP classes used to define an OData service, people were comfortable enough with the coding side of things that we were able to go "off piste".  Here, we looked at the inner workings of the OData classes and how you can construct and reuse your own.

The result was that the developers were able to construct custom OData services, ready for consumption in SAPUI5.

38 die-hard developers gave up their Saturday to learn about SAPUI5.

On Saturday, we changed hats - we took off our ABAP hat and put on our JavaScript hat.  However, some of the developers there had never worked with JavaScript before, so "changing hats" was quite a culture shock!

Due to the fact that a significant proportion of the developers had never worked with JavaScript before, before diving into the details of SAPUI5, it was necessary to take the first hour or so to explain not only the most important programming principles used in JavaScript, but also specifically to contrast how the principles used in JavaScript differ from the principles used ABAP.

First of all, JavaScript is a dynamically typed language, so imagine the fun and games you'd have if you had to write an ABAP program in which every variable is declared like this:

field-symbols: <some_variable_name> type any.

That would make life pretty interesting, but that's how it works in JavaScript!

After that, the next challenge was to start using a concept that has no parallel in ABAP whatsoever!  This is the idea that the principal unit of JavaScript functionality (the function) is just a data object that happens to have an executable part: that is, JavaScript functions can be created and destroyed dynamically, passed as parameters to other functions and received as the return value from calling a function.  These attributes make a JavaScript function what is known as a "1st class citizen", and ABAP does not even have such concept...

After the people new to JavaScript had recovered from these programming culture shocks :smile: , we were able to look at SAPUI5...

Culture shocks aside, by the end of the Saturday session, everyone had successfully created a working SAPUI5 application that consumed the OData service created the previous day.

Unfortunately, we ran out of time long before we ran out of content, but nonetheless, it was a great time of learning, discussion, networking and hacking.

Chris W