Goat Herding Day

SAP TechEd Las Vegas – Day Three (Goat Day)

Goat 001

I have been posting bogs about TechEd – one blog per day. It seems like ages ago now, but I have been so busy I am only now getting round to transcribing my notes – usually in airport lounges.

https://blogs.sap.com/2017/10/21/sap-teched-las-vegas-day-one/

https://blogs.sap.com/2017/11/03/sap-teched-las-vegas-day-two/

08:00 ABAP for SAP HANA

Half way through this session Capra the Goat was handed over to me, as it was my duty to look after her this fine day. She had been on the 5K fun run with Christian Brvckmuller earlier and after they finished he sneaked into the ABAP session to pass on the Goat baton, as it were.

Mere words cannot describe what an honour it is to be entrusted with this sacred duty. Anyway as you will see Capra accompanied me on all the various lectures I went to, and Mentor activities like meeting senior SAP executives and tour of the show floor and so on.

Anyway getting back to ABAP, here are the notes I made about the session on ABAP.

Firstly and most importantly the speaker used the phrase PARADIGM SHIFT. That is the greatest of all buzzwords and the audience screamed as one “Oh No! Not a Paradigm Shift!”

The other buzzword I made note of was SERVER STICKINESS which was a new one on me.

This was a very technical session so the buzzwords were light on the ground which is a good thing.

My next door neighbour who works for SAP had indicated some time ago that he thought EHP8 (i.e. ABAP 7.50) would be the final release for ECC 6.0 based on what he saw the developers working on. That was in no way official, just a wild guess on his part.

For many reasons I really need to know if this is actually the case or not but as might be imagined there does not seem to be an official SAP positon on this. I must have seen or heard something in this session however as I had written down “7.50 is the LAST for On-Premise”.

There was the ever popular show of hands to see who in the audience was on the latest version of ABAP – this time defined as both 7.50 and HANA. A surprising number of hands went up which tends to back up the SAP boasting about the speed of adoption of HANA for ERP.

You may have heard of transaction SQLM (SQL Monitor) which is designed for use in production, and keeps a track of all custom ABAP code that is actually used during the year (rather like UPL) but with a focus on database access with SQL traces added. The one demonstrated had a button to show the SQL trace, which my version (in 7.02) does not appear to have. As of ABAP 7.52 this transaction also analyses CDS views and ABAP managed Database Procedures.

Sometimes I look back at my notes and wonder what I was thinking. I had written “Out of the Box = Rubbish” which is a sentiment that quite often turns out to be true, but I wonder what was demonstrated to make me think that once again. What I had actually written, minus the swear words, was “there is NOTHING out of the box” which again may sound harsh but sometimes seems to be the case.

The context seems to be CDS views. There is an enormous paradox here in what SAP has to say on this matter, a George Orwell 1984 example of “double think” where you have to hold two utterly contradictory points of view at once, whilst wholeheartedly believing in both of them.

One the one hand it is claimed that CDS views are “highly re-usable”, and on the other hand SAP uses as a measure of how good CDS views are the fact that they have created 24 thousand standard ones, and are creating more every day at the speed of light. There is even a diagram they keep popping up showing all the views and how they relate to each other – it looks rather like the Milky Way. Why do you need to create a hundred new ones every day if the old ones are supposed to be re-usable?

To me, this question is vital to the future of the entire universe. If open SQL and CDS views have functional parity then the two reasons for using CDS views were given as re-usability and the ability to add annotations. Possibly only the latter is actually a valid reason.

One good thing about TechEd is seeing the actual screens from the latest versions. I looked at the templates for CDS views that were being used and they seemed to have improved a bit from the ones I have been used to, which is good.

Some people might say this is obvious, but the documentation tends to gloss this over and I am glad it was mentioned here – since a CDS view is often used as a building block which other CDS views refer to (the so called “view on view” structure) a CDS views often wants to expose the data relationships between tables (what us old codgers thought of as “joins” but are now “associations” which are more semantically meaningful) and to do that you write the association at the end of the CDS view definition, and this serves as a sort of beacon which other CDS views can lock on to. That puzzled me at the start, a seemingly meaningless statement at the end of the definition.

In ABAP 7.51 we have a new statement WITH which is used by Open SQL i.e. in the body of your program not in a CDS views.

This defines what is called a “common table expression” which is a subquery really, the difference is you define your subqueries at the start of a routine, and then in the real SELECT statement instead of manually writing he subquery you refer to the definition. This sort of thing is no doubt intended to make the program easier to read, but I wonder if the opposite is not true.

Next was a recap of the “simplification” done to the database tables in S/4 Finance? I personally think what has been done here is wonderful, but sadly both the presentation and the presenter failed a basic mathematic test here in that they were asked to add one to one and tell us the result, and they got it wrong.

In essence the point was that in the past if you do a transaction there are about fifty four million tables that need to be updated – starting with BKPF and BSEG and then all the GLPCA and COPA tables, and BSIK and so on. It was then sated that in the new world when you do a transaction instead of all those tables – which need a database update for each table, naturally – there are now only two tables BKPF and ACCDOC, and so you only need one update.

The audience then got all picky and said if there were two tables you needed to update them both and so there were two updates i.e. 1 +1 = 2, rather than 1.

The presenter tried to defend his position but in the end caved in and said yes, there are two updates. I felt sorry for him, often in life your job is to defend something you don’t entirely agree with, I am glad I have never been in that position.

Next was a quick whizz through the Web IDE, which would have looked a lot slicker if it had not asked the presenter for his user name and password after virtually every round trip. I am sure that is fixable, but not a good look for a live demo. That is the price you pay for seeing the latest and greatest technology, if it is still being worked on, not even ready for production yet, then of course it is not going to work perfectly.

Lastly I noted that in 7.51 and higher the BOPF (Business Object Processing Framework) the draft framework has been integrated as standard. This is intended for where you are working on a mobile device and your connection may drop out every so often. Traditionally when creating a business object e.g. sales order or (more realistically) a monster, there are a certain number of mandatory fields and you cannot save the object until you fill them all out. Now you can save a draft with only some of those fields filled out – presumably in mobile mode drafts must get saved every so often automatically, like spreadsheets in excel, and you can complete the object later turning it from a draft into a bona fide business object instance. You can configure how long a draft object exists before it gets automatically deleted by the garbage collector.

10:30 S/4 HANA Extensibility

Since if we want to stick with SAP we have to move to S/4 HANA eventually, how to do custom development in that environment is something every ABAP developer needs to know.

In a one line summary the idea is that every SAP product – S/4 HANA, Ariba, Concur and so on, can be extended like nobody’s business, despite living in the cloud. I think SAP realise we have been become so used to this we cannot live without it.

I had thought that my company would be moving to an on-premise version, so we could keep all our Z code, as that is what virtually every company moving to S/4 has done so far. However the prospect of using ABAP in the SAP WEB IDE is a whole new ball game and I am starting to wonder if in eight years when we make the jump, we might actually be able to do what SAP wants and use the cloud version.

Note that I say eight years’ time – often the time lag between seeing something at an event like this, and using it in real life is five years or more. This is partially because what you see here are laboratory previews often only finished an hour before the demonstration, and partially because in the non-cloud world we only upgrade every five years.

So the main message this presenter wanted to get across was that using ABAP in the Web IDE is still a “glint in the milkman’s eye” and will not be ready for some time.

At the keynote Bjorn Borg was using ABAP in Eclipse, but the presenter said that was not out yet for the Web IDE and instead you used some “apps” which he demonstrated – they are not out yet either, but when they are they will be a brand new IDE coming out of the left field.

There is a website called API.SAP.COM where you can read a blog all about the S/4 HANA CLOUD SDK which only deals with the Java language for now. Mind you I just had a look, and I could not find it. That website (which tells you all the white listed APIs for connecting to S/4 HANA, Ariba, Concur, etc..) has no search which is the worst design flaw a site can have according to the book “Don’t Make Me Think” and the performance is appalling, meaning after trying to navigate around a few times you die of boredom and give up. SAP really needs to wake up to the fact the internet is the future and start taking this sort of thing seriously.

Anyway, here is the blog in question:-

https://blogs.sap.com/2017/05/10/first-steps-with-sap-s4hana-cloud-sdk/

The last point I noted – and I wonder if anyone at SAP has noticed this – is that naturally when you have defined your new application you want someone to be able to “consume” i.e. it gets deployed to your environment and end users (or maybe another application run by a robot) can consume the application.

Many years ago in “The Hitch Hikers Guide to the Galaxy” you had a young Vogan practising to be an evil space monster by shouting “RESISTANCE IS FUTILE!” Some years later the writers of “Star Trek: The Next Generation” has the Borg doing the same thing.

In this case you had the slide saying “CONSUMPTION IS EASY” which would be wonderful if that phrase had not been followed by a question mark.

SAP TechEd Las Vegas – Day Three (Goat Day)