Welcome Corner Blog Posts
Go a little bit deeper into the Welcome Corner with blog posts. Learn how to get started in SAP Community and get tips on maximizing your participation.
Showing results for 
Search instead for 
Did you mean: 
Active Contributor
What have Iron Maiden, Chicken Therapy, Functional Programming, Beyoncé, Machine Learning, a strike by French customs, the CAPM and Destiny’s Child all got in common?

Well, on 15/03/2019 it was SAP Inside Track in Maidenhead in the UK, where all these disparate strands came together.

My wife and I decided to drive to the UK from Heidelberg, going through the Channel Tunnel, stopping off in Belgium half way through.

All was well until we tried to cross the border between Belgium and France. The French Customs had gone on some sort of strike and were not letting any lorries through, so lorries were banked up for the entire 97KM between Eurotunnel and the Belgium border, and we got stuck behind them, as some naughty trucks had gone into the wrong lane and were then stopped, blocking the entire road. So we were 150M from the French/Belgium border but it might as well have been a million miles.

The car in front of us had an “F” on it indicating the driver was a local, so when he drove off the motorway and through a field we followed him, and sure enough we were across the border a few minutes later. If we had not done that we would still be there now.

We stayed in the “Karma Sanctum” which is a hotel in a small English village about 15 minutes’ drive from where the SIT was happening. From the awards on the wall the hotel was clearly owned by the manager of Iron Maiden, who also manages Beyoncé and Destiny’s Child.

One of the beers was “Trooper” and on the bottle it said “created by Iron Maiden” and it did indeed have “Eddie” from the Iron Maiden albums on the front of the bottle dressed as a solider.

Keynote – Maggie Buggie

Maggie is from Ireland and she is in charge of the innovation department at SAP which has the task of taking all these whacko new technologies like AI/ML and IOT and Blockchain and trying to turn them into solutions which actually help real organisations in the real world do real things.

I imagine that is easier said than done, especially when a world crawling with buzzwords usually backed up by a load of hot air. To show this is not the case with SAP (much as I might accuse of them of just that on the odd occasion) Maggie presented a bunch of case studies where SAP has used such cutting edge technology to actually provide value.

“Signify” is the brand name of Phillips Lighting. Like most manufacturing companies they are trying to make the transition from making most of their profits by making things to making most of their profits by providing services.

As an aside one company who got onto this early, and talked about it at SAPPHIRE over ten years ago was Harley Davison. At that point you might have thought they made most of their revenue from selling motorcycles. That would make sense surely? They don’t make anything else. As it transpired the bulk of their revenue actually came from interest payments on hire purchase agreements. You could say that is still selling motorbikes really, but I suppose in this case the service was letting people start riding a motorcycle without paying for it all up front. A moot point perhaps, but anyway the idea is manufacturing companies want to make their money in non-traditional ways.

In the case of “Signify” this comes from lighting up famous landmarks around the world like the Golden Gate Bridge. The idea is that this makes the location more attractive for tourists, so they are providing the tourist board of wherever it is with some sort of service. Where the whacko technology comes in is using the IOT to monitor the vast array of lights needed to stop them breaking down randomly and thus potentially casting patches of shadow that spell out rude words on the side of the famous landmark.

Much more importantly the other service Signify provides is providing light therapy for chickens.

That was the IOT example, next cab off the rank was ML/AI and the case study was the Queensland Government from good old Australia. I have to tell you from personal knowledge they (Queensland) have had a very mixed bag of success with their SAP implementations, including some colossal failures. Still they have stuck with SAP all these years and in this case the specific department using AI/ML from SAP was the Tax Office, in this case chasing tax fraud. As might be imagined all you need to do is catch a few big fraudsters and you can dramatically reduce the taxes your average Joe Blow needs to pay.

Studies show that only 3% of governments thus far use AI/ML for anything at all, so in this area the Australian Government seems to be well ahead of the curve. I will say the Australian SAP User group holds a big Public sector conference in Canberra each year, on the grounds that virtually the whole of the Australian government runs on SAP, albeit on seven billion different instances split across various states and departments, all trying to re-invent the SAP wheel on their own.

Now we have seen IOT and ML/AI in action what is the third stooge? It is non other than “Fishy Blockchain”. Now you might think when Blockchain is described as “Fishy” that means people do not trust it as far as they can throw it, but in this case it is the literal truth as a fish food company was using SAP Blockchain to track the fish from “Ocean to Plate”.

A video was shown starting with the fisherman in Indonesia catching the fish in the first place, and then its journey was tracked all around the world until it ended up on a plate in a poncy restaurant in the USA. At any point in the chain you could scan the barcode and see the whole journey, including the video of the fish being caught.

As one of the audience observed Maggie seemed to have a “Pathological hated of POCs”. She did not put it quite like that, but the concept was clear enough. The guy from the audience noted they are unfocussed generally, and when they are focussed why not reference an existing implementation rather than build a POC yourself?

The next question – and this was asked in several talks – was why nobody from SAP ever uttered the word “Leonardo”. The answer was that no customer knows/cares about the phrase “Leonardo” – it is only used internally at SAP.

Another SAP guy noted that so many things have been added to “Leonardo” – IOT, ML, Blockchain and so on, it has lost all meaning as a brand. In fact just the other day at work I saw an SAP guy at work trying to sell us S/4 HANA and he had loads of slides but whenever a slide had the word “Leonardo” on it he moved onto the next one in a split second before the audience could get a good look.

DJ Adams on ES6 JavaScript and Functional Programming

I have not really done that much UI5 programming so I have only done a small amount of JavaScript programming, and most of that was cut and paste from examples and change some values. So I was unaware of what a lot of the terminology means

It turns out that ES6 is the 2015 version of JavaScript, but nonetheless it is the latest version and only just out. That might not make much sense but consider this – SAP has not yet implemented all of the SQL92 specification in ABAP SQL and the 92 stands for “1992”.

ECMA Script is the language, JavaScript is an implementation. So is NodeJS. I am sure everyone knew that but me. I thought ECMA was what happened when I turned 14 and started getting spots all over my face.

JavaScript is a functional language, ABAP (and Java) is an imperative language.

In imperative programming you say HOW to do something e.g. program a loop to do something to each entry in an internal table.

In functional programming you say WHAT you are doing – i.e. you write a statement saying you are doing something to all elements in an array. In ABAP you could simulate this by wrapping the HOW statements in a method which says WHAT but in functional languages it is sort of built into the language.

The Three Kings of functional programming are the MAP, FILTER and REDUCE statements, and manipulating arrays they travel afar.

The latter two are now in ABAP and I asked if they did the same thing in ABAP as they did in JavaScript and DJ said he hoped so. I hope so too.

The thing about functional programming which ABAP people cannot get their heads around is passing functions as parameters. I had thought to myself “I can pass an object instance as a parameter, which is sort of like a function” but no, it is not.

The thing is you can actually define the function whilst you are defining the method to which that function is an IMPORTING parameter. Even more spookily you can have a method which returns a function as the result. I have to admit I am still struggling with that one. I think I need a lot more examples.

Lunch at SAP Inside Track Maidenhead

S/4 HANA – Michael Koch

The University of Warwick has 2 ABAP developers and is moving to S/4 HANA. Michael discussed how he prepared for this as a developer.

There has been bucket loads of blogs about this on the internet, including by me, and I gave a speech about it at SAP TECHED Las Vegas in 2017.

As we all know by now there are hundreds of changes (laughing called “simplifications”) – BAPI interface changes, field length changes (material number goes to 40, all currency fields increasing to 23 etc.) and BAPI interface changes and all sorts, like 75% of the tables vanishing as they are not needed anymore. There are automated tools to tell you what you need to change in some detail.

One funny thing in the automated readiness check Fiori tool is the tile which shows you a bar chart of which add-ons will work after the upgrade. One bar is green and lists the number that will work (compatible), one is read and lists the number that will not work at all (incompatible) but the best bar is the middle one in blue which lists the number of add-ons which are “compatible by deletion” which means they will not break as long as you delete them from your system completely, and thus stop using them.

Michael said the biggest opportunity in the whole exercise was to review and improve code standards and introduce such things as ATC checks, and even – shock horror – unit testing! He and his colleague talk to each other about code a lot more now than ever before.

One gotcha he found was that a great many standard Fiori apps which “work out of the box” do not actually work out of the box, and you have to spend a fair bit of time troubleshooting them to get them to work.

DJ Adams – Cloud Application Programming Model

Until I went to this talk I had never really understood the CAPM even though I read a fair few blogs on the subject. I think it was going into my eyes, and then out my ears, without passing through my brain. This time though I think I understand, at least to an extent.

The other day I had someone say to me they had done an open SAP course on HANA programming and it was no longer a “CDS View” it was a “CDAS”. I had never heard of that, as in ABAP world it is always a CDS view, so I presumed they had miss-read the term, though of course I would not have put it past SAP to suddenly give CDS views a different product name.

It transpires that CDAS is what CAPM programmers call them, standing for “Core Data and Services”. In this way of looking at things the underlying database tables are the core data, and the “view” on the table with the annotations is the service as it generates the ODATA service (I think). In fact as far as I can see you start by creating “entities” using what I call the CDS View and it generates both the tables and the ODATA service.

In ABAP world we are really spoilt by having everything inside the same system – code, database and so on – whereas in other languages you have to do everything yourself.

Here, though DJ was using the command line to do most things, the CAPM seemed to pretty much auto-generate everything, so he was able to whip up a quick application in no time at all.

He was using Microsoft Visual Studio as the IDE, with an SAP add-on, though you can of course use the SAP Web IDE.

The language is this case was NodeJS (which I now know is JavaScript) but you can use pretty much any non-ABAP language here. ABAP has its own environment for this now, the good old Cloud RAP. You have a file called SERVICE.JS (the extension will of course vary with the language) where you can code operations that happen when a POST event (or whatever) is executed on the entities defined in the CDS View.

I notice when defining the associations in the CDS thingies that the language was more verbose than ABAP i.e. you wrote something like “category has association to many products” and I like that, the more it reads like English the better.

There is a file called SAP/CDS/COMMON which I like to think of as a TYPE-POOL sort of thing as it contains commonly used elements.

As an example if you say in the CDS view definition that you are using the COMMON file to make it MANAGED then it automatically gets the four created by/created on/changed by/changed on fields. I think this is great, in database tables in ABAP you often want the exact same thing but generally everyone gives the fields different names, different data elements, and does not usually put them together but scatters them throughout the table definition.

In my code I have a Z INCLUDE STRUCTURE for this, to give some sort of uniformity, like you get in HR tables, which have one or two INCLUDE STRUCTURES at the start of each table definition for the commonly used fields.

In any event the CAPM is the same as the Fiori Programming Model for SAP HANA and the same as the Cloud RAP, in that you have the same layers – database tables, CDS View layer, business logic layer, ODATA service, and then a Fiori application on top. The mechanism is quite different each time, but the structure is the same.

AI for Charity – DATAKIND UK

This organisation is staffed by volunteers, and do not charge their customers. They have a day job during the week, and in their sparer time, and at weekends, they descend on charities and do “data dives” in which they use AI and Machine Learning to do analytics for these not for profit organisations to see how effective their strategies are and what they can do better.

In 2014 only 2% of charities were using Cloud systems for this sort of thing, as of 2019 this has increased to 30%.

This is a London based organisation, though they do work all across the UK.

For more information see www.datakind.org

Secret Thing

I cannot tell you what this is – as it is SECRET – and will not be announced till SAPPHIRE NOW.

I can however tell you it involves merging two separate SAP products into one and thus we have an SAP product CHANGING ITS NAME! Amazing but true.

Birds of a Feather Machine Learning

It seems – in the UK at least – very few organisations have their own data science teams. They instead get in third party companies to do the AI/ML projects. Thus SAP sell the vast bulk of services in this area to third party companies which then service the end customers.

The SAP guy was asked why pay SAP for AI/ML tools when there are so many free open source type tools out there. Apparently what SAP brings to the table is the ability to track changes in the various moving parts of the ML data model. It has been said that there is no proper change/version control in the ML world at the moment. It is, in theory, possible, but very few people are actually doing it.

Dustbin at SAP Inside Track Maidenhead


As ever an SAP Inside Track event is always a worthwhile experience. In Europe there is pretty much one a week now, and they occur all over the world. I hope to go to several more this year and am speaking at some of them (Belgium, Oslo, Essen) about the future of ABAP Programming.

I would encourage everyone to look at the below Wiki and see if there is one near them this year and if so, drop everything and go along to the event.


Cheersy Cheers