Goat Herding 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.
Easy as Sunday Morning?
Julius Caesar was warned about the “IDEs of March”. I think what the prophet actually meant was that every March SAP would release a new IDE until there were so many of them you did not know if you were coming and going, and when the Senate stabbed you to death it was something of a relief.
At one point SAP were saying that it was silly that you developed some things in SE80 and JavaScript in another IDE and so for one glorious moment in time there was just one IDE for everything – the so called ABAP in Eclipse. That was too good to last so after a very short time indeed the recommendation has shifted back to having a different IDE for every part of the programming model, with new IDEs coming at you like machine gun bullets, for example the “apps” that were demonstrated in this session.
In fact the SAP weekly email called “First Five” could be a list of the first five new IDEs released by SAP this week. Of course that would be silly – they don’t release five new Ides EVERY week. Some weeks they release five new business rules frameworks instead, by way of variety.
11:30 Book Signing
You are probably familiar with the saying “hope springs eternal” meaning that humans often find a way to convince themselves that things will go the way they want, despite an avalanche of evidence to the contrary. I suppose it is somewhat like buying a lottery ticket when you know for a fact you have more chance of being killed by a lightning strike than winning the jackpot. It would be ironic if they happened at the same time.
So SAP Press got a load of authors like my good self and gathered us together in the “community clubhouse” and said that people would come up to us with copies of our books and get us to sign them.
The logic was – I suppose – that when someone like Stephen King is at a bookstore people see him, buy one of his books on the spot, and then get him to sign it. The same thing happened in the film “In the Mouth of Madness” except in that film the readers often got killed just after buying the book.
Anyway, in advance I thought that was rather optimistic for SAP textbooks, I really do not think I am in the same class as Stephen King, for example, even though we both write about monsters. All the other authors would not have even mentioned monsters in their books so what chance do they have?
However the SAP Press people made the most of it, taking photographs and so forth. One person who did have a really good time at this event was Capra. She could not endorse anything, but she was all over the place.
13:00 Mentors Meeting with Head of SAP Support
How this works is that in advance of TechEd the Mentors have to compile a list of difficult questions for a given SAP executive. There are about eight to ten of these meetings throughout the event.
It always reminds me of a sketch on the “Kenney Everett Show”. In that sketch Joanna Lumley and a male actor were in a restaurant discussing their marriage breakdown. Behind Joanna Lumley was a floor to ceiling fish tank so only the man could see it. They were having a deep discussion trying to save their marriage when suddenly Kenny Everett swam by in the fish tank dressed as a nun (with a beard).
The man stopped the conversation and pointed out the Nun but just like in a pantomime by the time Joanna looked around the nun had swum off so she did not believe him.
This pattern repeated a few times until eventually Joanna declared “You don’t care about me – you just keep making stupid jokes about nuns – I am leaving you!”
As she turned to go she faced the fish tank and the nun swam by. She instantly turned back and said “There – there IS a Nun! You do care!” and thus there was a happy ending.
In the same way many SAP customers think that SAP support is rather like the nun in the fish tank – a sort of supposedly funny joke, something that does not actually exist but that costs you many millions of dollars a year.
So the current head of SAP Global Support – Andy Cobbold – has his work cut out for him convincing the SAP customer base there really is a nun in the fish tank.
It’s often difficult to feel sorry for top SAP dogs, but in these situations instead of sitting in front of a room of yes men as they would at work, or in front of customers who cannot really talk back, they are in a room full of Mentors whose job is to give them a hard time.
I have to say I thought this gentlemen did a good job during this arduous ordeal. At the end there was a photograph session and naturally he wanted to me photographed with me – because I had the goat – and that photograph was flashed up on the show floor.
14:15 New ABAP Programming Model Workshop S4H279
I had been to the theoretical presentation on the “new” ABAP programming model the day before (see link above) but the bonus of TechEd is you get to try out the new technology even if it does not quite work perfectly, or indeed at all. This is done by way of “hands on workshops” which sell out like hot cakes.
In this case the exercises comprised:-
- Setting up the project with ABAP Development Tool for Eclipse
- ABAP Core Data Services and OData Services
- Create your SAP Fiori Elements Application
- Enhance the metadata extension
- Enable create, update and delete operations
- Create BOPF actions, determinations and validations
- Add draft capabilities to your SAP Fiori elements app
Without going crazy into the details the approach is as described before – the CDS view gets the data and has “annotations” which give instructions to the UI layer about the nature of the fields, but not how to actually render these. Then the CDS has a corresponding ODATA (Gateway) service.
Then we have a BOPF object to handle the business logic needed to validate the transactions (create, update etc.,) and the idea is you can save such a business object in a draft format. These developers at SAP – they are not so draft.
17:00 ABAP Git – Graham Robinson
When I looked back at my notes for this session – I had three phrases only written down:-
The first one is self-evident and I will expand upon it in a second. The second one alludes to the challenge I had laid down to all presenters to include the phrase “one million tons of bananas” in their presentation. Graham had managed to draw some pictures of bananas inside his ABAP source code which he showed on the screen. He did that just for me.
I would have been really honoured and impressed but sadly I had picked that exact time to fall asleep in the audience – in the front row – which is not actually the most flattering thing you can do to a presenter. It was nothing to do with Graham’s content, more to do with me having a sneaky drink the night before and it suddenly catching up with me. Luckily Capra butted me with her horns until I was awake again.
GIT is a horrible name for an IT product, in the UK politicians insult each other by saying “the Right Honourable Gentleman is a Snivelling Little Git” and when the speaker insists they retract the insult they say “All right, I will retract the word ‘little’”.
In any event GIT started life as a source control mechanism for languages like Java where the programmer developed on their own machine and checked in/checked out code, and multiple programmers worked on different parts of the same application and had to merge their changes back into the main code base. The whole concept seems alien to an old dyed in the wool ABAPer where two people literally cannot work on the same object at the same time due to the object being locked to a transport request.
However more and more companies – mine included – are moving to having two development systems, one for BAU and one for special projects, and the same object can get changed independently in both DEV systems. So we have the same problem as the Java people and need the same sort of solution, which is what ABAP GIT intends to solve.
An object is being violently changed in the project DEV system. Meanwhile it has a small bug in production. A small change is made in the BAU DEV system and goes to production. At that point the object has two “forks” in ABAP GIT. When the project version gets transported you have to merge the two forks back into one. In the film “Mystery Men” the super hero “The Blue Rajah” used to throw forks and spoons at the bad guys and speak in a ludicrous fake English accent. Those were his two super powers.
ABAP GIT is not there 100% yet in regard to the merging in the same way the real GIT is but it is open source, which means you cannot complain about missing features, as the instant you do you are forced to develop that missing feature you just complained about yourself and add it to the common source code. Using GIT.
Moreover ABAP GIT is in many ways the successor to SAPLINK which was itself a giant leap forward in moving ABAP artefacts from system to system.
In addition Bjorn B had ABAP GIT on his screen when he did the opening keynote at TechEd. It occurs to me if we are going to be developing ABAP programs using the SAP Cloud HANA Web IDE Platform as opposed to the ABAP repository in the database then we will be in the Java situation of checking in and checking out code, this time ABAP code, so we will need a GIT type tool, and this will be it.
To re-iterate – this is a good, very good indeed. It is a PARADIGM SHIFT it is a GAME CHANGER like a SELF DRIVING TESLA ELECTRIC CAR owned by UBER with ONE MIILLION TONS OF BANANAS in its’ boot (trunk). I reckon this will end up in standard SAP in the same way ZMOCKA became the ABAP Test Double Framework.
Goat 002
19:00 Evening of Empathy
Many people say this is the best bit of SAP TechEd. There is certainly high demand to get into this event on the evening of the Wednesday.
Attendance was quite restricted, by design places were limited, out of four thousand million billion people I think there were only about 20 people who were allowed there, if that, which is just as well given the nature of the exercise.
Bill McDermott amongst others has said that arrogance from a software company leads to death – you have to empathise with your customers. In recent times we hear about “design thinking” where one of the steps is to walk a hundred miles in your end users shoes. That way they cannot chase you if it all goes wrong, as you are a hundred miles away and they have no shoes.
In my company the best bit is when we go on site visits. You really have to look over peoples shoulders as they do their day to day job, you will never ever be able to design proper software for them otherwise. I am speaking as a developer here, some people say that is why outsourcing where the developer is on the other side of the planet to the end user is NEVER going to give you a good result, no matter how cheap it appears to be. The UK term is “penny wise, pounds foolish”.
The facilitator was a gentleman called SLIM which was an acronym from taking various letters from his actual first / middle / last names. He does management consultancy I think. He did not look much like Australian singer Slim Dusty so they cannot be the same person probably.
There was a serious of “experiments” which basically revolved around how human beings interact with each other. Why this has a place in TechEd is that no matter how much technology you have, there are still humans consuming it, and moreover it puts AI in its place – as will become obvious.
It has been said that 90%+ of human communication is non-verbal. This is why people get “crossed wires” when communicating by email, or even by phone, or even by video conferencing.
This is why companies still fly people around the world to talk face to face. You would think in the Skye era there is no point, so why do people still do this?
I could go through all the experiments but there is just one that says it all. You had to pick someone you did not know. My partner then was given a photograph I could not see and she had to explain to me the contents of the photograph – holding herself immobile and using only her eyes.
You might think that is crazy. Nonetheless I got it about 25% right, and amazingly about three quarters of the room got their one 100% right which apparently is the usual result.
The point being that humans communicate an enormous amount of information through body language, and so really if you want to empathise with someone it is best to actually be there with them in the same room.
In conclusion I would recommend to do what my organisation does – send IT people physically to the “coal face”. You would be amazed how much people learn and how many “quick wins” you will get in return quickly outstripping the cost of sending people out.
The next blog will be all about day four … I am well behind, but that is because I have been flying around the world like a madman – I woke up in Dallas this morning, I am in Sydney now, and will be in Germany next week. However I cannot complain it is much better than not having a job!
Cheersy Cheers
Paul