From the 7
th to the 9
th of November ASUG (American SAP Users Group) did their equivalent of TECHED in New Orleans, due to the fact SAP itself was not doing a TECHED in the USA this year, only India.
Beer 01
Beer 02
I had never been to New Orleans, so I added a few days before and afterwards for tourist things.
The very first thing I did, in order to soak up the local culture, was to go to a German beer place, because I lived in Germany for so long. The second thing was to go to a big casino (I do not gamble but I do drink at casino bars) so I would think I was at TECHED Las Vegas.
The rest of my tourist things, when I was not doing conference related events, was going up and down Bourbon Street, which is just as good as advertised, if not better. And I do not mean naughty women (I always went out in the daytime), I mean 80 odd bars, all with live music in different styles.
There is also a “Coyote Ugly” bar (not in Bourbon Street) so I had to go in that as well.
Anyway, none of that has got anything to do with an SAP conference, so let us get on with the important SAP related things.
Dustbins
There were loads of them, all over the convention centre and the exhibitor hall. If someone wanted to give me a brochure or something it was the work of seconds to get rid of it.
Food Review
America is America so at conferences you always get half a ton of food, and it is always good, no exception here. Also, the hotel I was staying at, Hilton Riverside, did charbroiled oysters, which were great. Plus, beer was rolled out on the show floor on both the first and second days of the conference. On the third day there was a closing party at “The House of Blues” which was great. The party should always be on the last day in my opinion to stop people leaving early. TECHED Las Vegas ran for four days, and the last day was always very depressing, like a ghost town, and I felt really sorry for anyone doing a presentation from 4:00 to 5:00 on the last day. Not a problem at the New Orleans event.
So, on the Monday I had a speaker beer event, on Tuesday there was “Cheers with Peers” which involved beers, plus a vendor sponsored diner, on the Wednesday they rolled out beers on the show floor, and then about 20 million vendors gave out invites to beer events in the evening. And then the House of Blues on the last night. Not that I am interested in drinking of course, it is the highly important networking as in “I Network Like a Fish!” though in fact lots of people ask me technical SAP based questions at these drinking things and I do answer them. I even ended up holding a sort of “SAP Surgery” in the House of Blues.
Stevie Winwood
I did not spot him anywhere, but that is maybe because I was not looking very hard. He could have been hiding in a dustbin somewhere.
Day 1 – Tuesday 07 November 2023
Keynote
The keynote speakers for the first day were the chairman of ASUG, Juergen Mueller the CTO of SAP and a high-ranking Microsoft executive. Juergen had gone to New Orleans straight from TECHED India, a 34-hour trip. I had just done something very similar myself, if anything mine was even longer with all the messing about at various airports en-route.
As you may be aware the 10
th incarnation of Doctor Who was played by Scottish actor David Tennant. His costume comprised a suit, but with trainers on his feet. This has obviously caught on as I keep seeing top executives involved with IT dressing exactly the same way, even within my own organization.
In any event I hear that TECHED in Bangalore was pretty much one huge sales pitch for BTP all event long. SAP are betting the farm on BTP being the way forward. At ASUG things were pretty much the same, I have to admit I even mentioned BTP in my presentation.
Anyway, from an ASUG survey it looks like the sales pitch is working. They found that 40% of SAP customers are already using BTP, and a further 40% are actively considering using it in the near future. They say that auto-ignition tends to happen for new products once they get a 5% adoption rate (the current example is electric cars which have just passed that point in the USA and Australia). So, 80% is well above that threshold. I have to say that when I was asked at work if we should be using BTP for something or other integration related I came back with an unequivocal YES. There is no point fighting this. My prediction is that SAP will find a way to make this compulsory sooner or later, like they did with Solution Manager (which will not exist in a few years (2027) apparently, somehow, I had missed that news).
You probably have seen the “burger” slide from SAP many dozens of times by now. The base is BTP, the burger itself is Cloud ERP, with three toppings – CRM, SRM and HCM. They all have different names now of course, but that is what I still call them. Now we have a new arc like a rainbow covering the entire burger, and that arc is the AI layer. It is like putting sprinkles all over the burger. This, by the way, is how I describe the diagram, I am sure SAP employees would not describe it exactly thus.
Next there was a recap of the three main Chinese Takeaways from SAP TECHED in Bangalore.
- SAP BUILD CODE. Every new SAP product now has BUILD in the name, in the same way that once every new product had CLOUD in the new, and before that HANA, and back in the year 2000 every new product had an “E” appended to the front as in “The Best Run E-Businesses Run SAP” (actual slogan). Anyway, SAP BUILD CODE is a pro-cod product unlike all the existing BUILD products which are Low Cod / No Cod products. Nothing fishy about any of this. This one is all to do with Java and JavaScript and more on this later.
- Generative AI here / Generative AI here, Generate AI everywhere. In the partner pavilion a guy from SAP asked me if I had heard all the latest announcements about Generative AI from TECHED. I replied that whenever I hear the words “Generative AI” I vomit into a bucket. He did not like that response very much. It is not so much there is no valid use cases for it – that is far from the truth – it is just that when someone shoves something down your throat all day every day for months on end eventually you get to breaking point. And it is nowhere near as good as people say it is. I noticed one of the drummers who opened day 2 of the ASUG conference had “Hype Boy” on the back of his football shirt. I am sure he wears that wherever he performs, but it was particularly appropriate in this case.
- HANA Vector Buzzword Bingo Generative AI BUILD ESOA Chocolate Factory – this is a new product, and the idea is that instead of using ChatGPT in which the data is in the public domain you have a “private” ChatGPT which access to all your internal data as well as all the other data in the world and no-one else can use that private ChatGPT. My company had already built one of those. It was not very good, I have no doubt the SAP one is far better, but at least we were both pushing in the same direction.
Next a guy from Microsoft came on the stage. He basically said “A-ha! HA HA HA! A-HA HA HA! You can run, but you cannot hide! AI is everywhere. You can hide under the sofa; it will find you!” This translates to ChatGPT like software being embedded in O365, Excel, Word and so on, and probably by this time next year every single application on the planet. It was mentioned that this time last year there was no ChatGPT, in the same way that mid 2019 there was no COVID-19. They (keynote speakers) did not use that exact analogy.
Then there was a demo. You use the SAP Analytics Cloud or some such to take some data and turn that into a bunch of pretty graphs and pie charts. You open up Outlook, import those graphs into the email and ask ChatGPT to write the email for you, which it does, summarising all the data in the graphs in text. Then you send the email, and take credit for it, the same way people use ChatGPT to do their homework for them at the moment. In the same way you can use the same procedure to turn those graphs into a PowerPoint presentation.
Lastly, apparently if you have a TEAMS meeting where you show that presentation and everyone has a big discussion about it, because that conversation is transcribed, ChatGPT can analyse everything that has been said, and provide you with a quick text summary of the meeting, and the agreed outcomes. Apparently, it is clever enough to say “Bob did not really agree with the proposals, though everyone else did” even if Bob had never explicitly said he had disagreed. Thus, ChatGPT is supposed to be clever enough to read between the lines of what people say, when they say something but mean something else. This happens all the time in the real world (especially in the UK where “with the greatest respect” means “I think you are wrong and a fool”) and most humans cannot pick up this so it is surprising ChatGPT purportedly can.
Hands on Workshop#1 – UI5
It is all very good someone telling you something new is wonderful, but it is far better if they actually train you on the new thing by making you do a series of exercises. They do this at TECHED, one of the best ones I ever did was how to do unit tests in UI5 (so called OPA tests).
These last two hours and you are deliberately given twice as many exercises to do than is even remotely possible in that two-hour period, but the system remains available for a month for you to finish them off at a later date.
It is easy to get really confused with all the SAP terminology, so this is how I view things:
UI5 Web Components – in case you do not want to use the UI5 JavaScript library at all (and 99.9% of the Web Developers I know do not) but REACT or something instead, there is a new one every year and this is never going to stop, this lets you easily still have the Fiori look and feel.
Fiori Elements – this is like the ALV. You have all sorts of things built in, just like the ALV, e.g., sorting and Excel download, and so on, but just like the ALV you cannot change it too drastically.
UI5 Freestyle – this is nothing to do with swimming, but rather you code everything yourself. That means you have to manually add the sorting and Excel download and what have you, but the screen can look and behave however you want, whilst still looking generally like a Fiori app.
This workshop focused on the latter, using SAP BUILD CODE which was only released to the world the previous day I think, or maybe not released at all yet,
The idea, as far as I can tell, is if you just say to someone “code everything yourself” it is a bit of a daunting prospect, especially to an ABAP person So this starts you off by generating the basic tree of files you need for an application. Then the exercises showed you how to manually code (via lots of cut and pasting example code) into the correct places in order to get the persistence and then the Model, Views and Controller working. Most importantly you were told WHY you were doing each task.
This was a very interesting exercise and I enjoyed it a lot. The more I learn about JavaScript the happier I am, which is why I have published so many blogs about the JavaScript books I am reading this year.
I cannot help but think this whole concept is not actually brand new. I am sure you could generate a basic tree structure from a model before using some sort of BTP thing and then manually fill in the missing bits.
Hands on Workshop#2 – RAP
Same principle as before, but this time the UI5 application is going to be created using the RAP (name as of this week is the ABAP Restful Application Programming Model, the initials may stand for something different next week) using “Steampunk” aka “ABAP in the Cloud” aka “BTP, ABAP Edition”.
As an SAP Mentor in 2018 I was allowed to trial the initial version of the RAP, I asked so many questions and made so many comments I got to taken to beer and pizzas in Heidelberg where I lived, and then got to sit it on a workshop about RAP at SAP HQ, and I was the only non-SAP person there. I suppose that means, if the RAP is no good, then I get some of the blame. I did get to go to the kick-off party at SAP HQ when RAP first became available, and the band was called STEAMFUNK and no-one noticed they had changed the “P” to an “F”.
Back then I found the idea fascinating (the RAP, not the band) and wrote about it in the third edition of my book, but I would have said it was not really ready for productive use, as it was changing so fast. This did not stop some early adopters – like LEGO – starting to use it right away.
Two years go by, and I want to update my RAP chapter for the fourth edition of my book. Everything has changed so violently I have to do a complete re-write of my monster application. It takes about six or eight weeks to write that chapter, things changed so fast that code I wrote at the start of that 8 week period had all green lights, by week four the syntax had changed and there were yellow warning lights in that same code, by week 8 the syntax had changed again and in that same code there were hard error red lights in some places. Now, imagine if that was your productive code?
Another three years go by, I am now ready to start edition number five. By doing the exercises in this hands-on session I see things have changed dramatically in that period, as I might have imagined. They have changed for the better I would stress, in fact a great deal for the better. Loads of gaps have been plugged, and a lot of the manual work has been automated. I said that to Thomas Jung who was facilitating i.e that this was far better than before, and he said it is just going to get better. I have no doubt at all this will be the case, this is the future of ABAP programming, what SAP call the “Golden Path” internally.
It all revolves around the separation of concerns. You were always supposed to do that in ABAP but you were never
forced to do this. I always liked the UI5 idea of having the model in ABAP, the controller in JavaScript and the view in XML. If the three components were in
different languages, then that surely enforces the separation of concerns?
The problem with a traditional DYNPRO program was the business logic all mixed up with the controller and view logic. With the RAP you still have all the PBO/PAI stuff but everything is forced to be in the correct place and not mixed up with anything else, and a lot of what was implicit is now explicit (e.g. derivations / validations / actions). That is the idea anyway, again I am sure someone could circumvent the separation of concerns if they tried hard enough but it is more of an uphill battle.
There are still some bits which are
horrifically complicated, like message handling. If you sat twenty people in a room for a year and gave them the task of making message handling as complicated as they could possibly make it, at the end of that year they still would have not come up with anything as complicated as how it currently works in the RAP. My hope is that this will be the next area of focus.
I liked the workshop – I like it a lot. But I am never happy, so here are some notes I made which is not about the workshop but about the RAP / ABAP in the Cloud / ADT / assorted.
- As you know at one stage the ADT had to open the SAP GUI to maintain some objects. For the last four or five TECHED events each time the major announcements was that little gaps had been filled e.g. you could now create data elements in ADT. The idea was that eventually ADT would achieve feature parity with SE80 and not have to open the SAP GUI which is important in the cloud as there is no SAP GUI.
- Sadly, even in the 23/11 version of ABAP BTP there are still some object types in the “released objects” tree which try to open the SAP GUI and of course get an error.
- Some time back I noticed that “number range objects” had been added to ADT, and indeed in this workshop the example did not have the silly GUID primary key (that crazy idea never caught on, whoever was pushing for that inside SAP must have been very drunk) but instead a proper numeric primary key, with the number being assigned from the next value in the number range object, like you get with purchase orders or invoice in standard SAP.
- Good enough for me, good enough for me and GUID. No, it is not good enough for Bobby McGee.
- In any event I looked at the number range object definition in ADT and I saw the domain the number range object pointed to, and some customising settings – e.g., does it use buffering (you switch that off if you require no-gaps, like with invoices) and so om, bit I could not see where you specified the number range itself i.e., NRIV settings .After a while I wondered if I was going mad, and though it was irrelevant to the exercise at hand I called Thomas over to ask him.
- It transpires you make half the settings in ADT, and the other half in some sort of Fiori app. And this seemed logical to someone.
- In the workshop you are generally copying and pasting the example SAP code. Now, when people, especially beginners, see example code from SAP they are going to think this is the way you do things. This becomes especially true if you see the same sort of code in (a) TECHED examples and (b) online documentation and (c) standard SAP code within standard SAP programs.
- Which makes me a bit sad when I see all the Hungarian Notation in all those places. In particular in this example code, you have field symbols starting with “<FS” presumably with the FS standing for “field symbol” when in fact the “<” on its own denotes the fact this a field symbol.
- A “virtual element” is an element you have in a CDS entity which is not persisted in a database table, but rather is calculated at runtime. This is not a radical new concept; in ABAP we have always had internal tables where most fields are read from the database, but some are calculated at runtime. A CDS entity sometimes seems like a half-dog half-cat type of thing, because it looks a bit like a database table, but also contains things which look horrifyingly like business logic. I suppose you would call it a layer of abstraction on top of the database table which is why the ones that just copy fields are “projections” and the ones that do odd things with the data are “consumption” views.
- In any event, in the CDS entity you state the class where the actual business logic is going to be to calculate the virtual entity, and as I recall in the class you have an “IV_ENTITY” parameter coming in. I cannot recall exactly but I have fat fingers so I kept spelling either the class name or the entity name wrong, and at one end the system gave me a syntax error, but at the other it did not, and I kept getting short dumps. You can see those in ADT now, but if the error is raised from the UI5 simulation (from the service binding) then it is almost impossible to work out where the error is coming from.
- Going back to the automatically generated UI5 app simulation, the example was the good old SFLIGHT one where you have a parent/child relationship between flights and bookings or whatever way around it was. What puzzled me was I am used to entering data and then pressing a SAVE button (good old F11, the icon that is supposed to look like a floppy disk).
- So, I am used to the CREATE button being on the initial screen e.g., VA01, and then once you are inside the create transaction you have a SAVE button.
- I had in my notes that during the generated UI5 transaction sometimes the SAVE button said CREATE and sometimes it said SAVE depending on some logic I could not fathom. For a strictly semantic point of view creating a record does save it to the database, but I think we should stick to the traditional VA01 flow, maybe because I am a dinosaur.
It was 3PM by that stage. I could have gone to some more presentations, but at that point they cracked open the beer on the show floor whilst giant clowns started walking in, so that was that. The evening ended (for me at least) with a dinner hosted by a consulting company.
Day 2 – Wednesday 8th of November
Keynote
The theme for the conference was “SAP Superheroes”. Everyone had to take a quiz to see what sort of Superhero you were, and you got a badge to wear to pigeonhole you. So, the keynotes all had titles on this theme – this one was “Hear Your Heroes and Sidekicks' Origin Stories and How They Overcame Challenges”.
I only had three points in my notes about this keynote.
- The business suit and trainers thing was back again.
- That evening I ended up walking back to the hotel with one of the keynote speakers, so we could drop our bags off, before going to all the free drink events. He was not, however, Stevie Winwood. I could tell.
- Everyone agreed by far the biggest topic at the moment was S/4HANA Migration.
I have no doubt that third one is 100% the case but think about this for a minute. S/4HANA came out in 2015. That is almost ten years ago. When SAP 4.6 came out virtually the whole customer base had upgraded to it within five years. Of course going to S/4HANA is not an upgrade, it is a new ERP implementation, and that explains the delay.
I created the below diagram a few years back based on what I was seeing at SAP conferences, and as far as I can see things are progressing exactly as I predicted.
Bell Curve
Round about now we are reaching the peak of the curve, which is why S/4HANA migration is by far the biggest current topic. In about three years most organisations will have made the jump, and there will be something else worrying everyone far more, like AI having taken over the world or some such.
Just as an aside this very day the Thailand branch of my company went live with an upgrade from ECC 6.0 EHP4 to ECC 6.0 EHP8.
11:15 ME! The Future of ABAP Programming
I was given a really big room and I was scared only two or three people would turn up, but luckily it was eighty people, which filled the room up. That may not sound like a lot, but it was more than enough to make me happy, and I got loads of laughs, and afterwards a load of people asked me loads of questions, which is acid test of success. People were still coming up to me asking questions, right up to, and during, the closing party, so I must have piqued a lot of people’s interest.
I think I have blown my own trumpet enough for now. I was making three related points (you are supposed to make a maximum of three in a presentation otherwise peoples brains melt).
Once again, talking about how you structure presentations, it should be
- Problem - Doom and gloom, point out something BAD that exists today
- Vision - Jessie Paints a Picture, Of How it’s Going to Be. A rose-tinted utopian vision of the picture where we have solved that problem and everything in the garden is rosy.
- Solution - A hopefully realistic path to get from A to B. Ideally your organisation has actually done this, and you tell the audience how. Humans relate to stories far better than to facts,
The problem – we want to make tons of changes to programs, and we want to do this really quickly. That comes a shock to nobody. Companies like Amazon can deploy into production every 1.5 seconds with virtually zero risk, and automatically roll back that change in the event of a problem, and yet in ABAP we have quarterly release cycles and the like, and the risk is so high you hide under the sofa. People say that is because ABAP is a special snowflake and the other companies can push changes through in hours, if not minutes, because they use “proper” programming languages.
The vision – what if we could do the same in ABAP? What if we could take the best bits of how other programming languages work whilst still keeping the ABAP language? Put another way “OO OO OO I wanna be like you OO”.
Solution. This is easier said than done but is being addressed by SAP itself but more and more frequently the open-source community. Components include, but are not limited to:
- Test-Driven Development. This is a mindset change -all the tools in ABAP have existed for many years now. That is how errors are caught very early on in other languages (this is of course not compulsory in other languages but caught on a long time ago).
- abapGit – for versioning and branching, and easy reversion to the “golden version” of a program i.e. the last version that worked 100% without losing any work in progress.
- ABAP in the Cloud. The so called “clean core” idea of having a clear barrier between standard SAP code and Z code with stable APIs in between. That ways the standard SAP code and the Z code can evolve at different rates without affecting each other.
- Standalone ABAP. Where you can write ABAP code and even run the unit tests on your local machine without an SAP back-end attached.
I am glossing through all this, but the basic idea is that all these things slot together and you automatically test your code to death on its way to production, and the end result is that the risk is dramatically reduced and in the worst case you can automatically roll back if something goes wrong.
I am sure I will get a load of comments saying this is a utopian pipedream, but the disparate elements certainly are not.
After the event I got some great feedback, boast, boast, 4.75 out of 5 from audience evaluations plus loads of nice comments. Someone said the slides were funny but confusing – but that is intentional. I will try and explain my logic.
Often the presenters put loads of words on a slide. Since a human being can only do one thing at once instead of listening to the presenter, they start reading the slides. So, it does not matter what the presenter is saying – they could be swearing at the audience in the foulest terms, and no-one would notice. Next time you are reading some slides break off and see if the presenter is calling you personally rude names.
I try and turn this on its head. My slides have a three-word title (people will read that but it only takes 0.1 seconds and then they can listen to me, and it takes me longer than 0.1 seconds to draw in breath before speaking) and three or four funny pictures. People wonder what in the world the pictures mean (The Spice Girls, Donald Trump etc) in an SAP context and so they
have to listen to me in order to find out.
Another commentator said I should have added a list of my books. Well, OK, I do not mind blowing my own trumpet. First off, the successful ones:
https://www.sap-press.com/abap-to-the-future_5360/
https://www.sap-press.com/migrating-custom-code-to-sap-s4hana_5131/
https://www.sap-press.com/refactoring-legacy-abap-code_5234/
and the best book I have ever written, is, even though it has only ever sold about three copies:
https://link.springer.com/book/10.1007/978-1-4842-6711-0
I notice they reduced the price of the eBook to seven euros and some beers cost more than that each, and people still will not buy my one. Oh well, at least it is not raining.
1:00 Edge Integration Cell
I have no formal IT training at all, so some terms which are obvious to many are meaningless to me. For example, I could not guess what this did from the name. I could guess it was something to do with integration. This to do with” Edge Computing” apparently but I dolt know what that is – something to do with U2 perhaps? The word “cell” makes sense in this context apparently also. Padded Cell? Many people in IT belong in one.
So – what is this all about? Sending and receiving messages to and from other computer systems, what some people call EDI. SAP has had assorted offerings in this space starting with the” Business Connector” many years ago. My organisation used that for the very first B2B project we did, and then XI came out so we moved to that.
What I do know is that it took a lot of effort to upgrade from XI to PI and even more effort to upgrade from PI to PO. In each case as soon as you finish the marathon and cross the finish line, SAP shakes you by the hand and says “Well Done! Now we have a new product, you have no time to recover from your last marathon, you must start a new one”. In this case the successor to PO is the SIS (SAP Integration Suite) which (shock horror) is a cloud-based product.
Now, incredible as it may seem, not everyone has gone to the S/4HANA Public Cloud. Thus, the ones that did not have what SAP describe as a “Private Landscape” with is either on-premises or S/4HANA Private Cloud.
For such people (which is quite a large majority I would guess) the next step from PI/PO is the “Edge Integration Cell”.
This is an on-premises system which connects to the SIS Cloud via the good old Cloud Connector.
- Development is done in the Cloud and then replicated
- You can monitor the messages via the cloud or if you do not want to do that, hard luck, you must build your own on-premises solution for monitoring
- There is a persistence layer, but it does not use a HANA database, it uses PostgreSQL and Redis, whatever they may be.
2:00 BTP Learnings – Navajo Utilities – Show Floor
Really what people want from these conferences is not sales pitches from SAP or other vendors but “war stories” from people who have already implemented a solution you are considering using, so you can either run away screaming and not touch it, or be reassured everything will be fine, or – most likely – get a big list of the problems you will encounter and how to solve them. And since the biggest elephant in the room at the moment – apart from maybe S/4HANA migration – is BTP, what better war story than a BTP implementation story?
It was a long way from the Edge Integration Cell place to the show floor, but I got there just in time and sat at the front. I could not help but notice one of the other delegates sat a few seats away from me with a bottle of Heineken. Oh! They have cracked open the beer already! Oh well, I am here now. Here are the bullet points I noted down as the lessons learnt.
- There are TWO steep learning curves. The technical side and the licensing side.
- Having a “Customer Success Partner” (from SAP) is a must
- The “Free Tier” is pointless, just an advert
- BTP is constantly changing from hour to hour
- BTP comes bundled with RISE FOR SAP plus you get a CPEA Credit
- What a CPEA credit is, is like a prepaid credit card, so you have money in advance which the BTP then consumes
- Apart from the SAP employee (CSP) dedicated to you, you need at least one internal employee 100% dedicated to BTP
Then I returned to the show floor proper, asking someone drinking from a bottle “Where is the beer?” and he told me, and I found it so that was that. Thereafter I went to two different vendor hosted beer drinking events. Usually “networking” translates to going to an event with three other people from your company and spending the whole evening with them, but the good thing about being there on my own is that I do meet a load of new people and talk to them about SAP type things. Whilst drinking. I get a lot of “Linked-In” requests the next day (fun fact – SAP used to own 25% of Linked-In when it was a start-up) but no requests from Stevie Winwood as yet .I did get one from “Blue Weaver” out of “Mott the Hoople”.
Day 3 – Thursday 9th November
Keynote: Build Your Superteam with the Help of the SAP Ecosystem
This was all about learning, which is important, I have no doubt. There are so many people who get to a certain level and then never look at anything new ever again.
Thomas Jung – Continuous Integration
In other languages what continuous integration means is merging all the changes you code on your local machine into the main central project at least once a day.
Some years back when I said that ABAP developers did not program on their local machines, but instead in a central system, so the term continuous integration had to mean something different in ABAP world. I got a torrent of abuse, saying how dare I say ABAP is better than other languages because of this ridiculous way of doing things. I was not trying to say it was better or worse, just saying it was different. That was about five years ago. Any ABAP developer want to tell me that five years ago they were coding ABAP on their local machine disconnected from any SAP system, and then merging that code with the central system every evening?
So – what does CI mean in an ABAP context? When I heard that Thomas was going to explain this, I was there like a shot. That was not the official title of the session which was:
“Managing Agility: Practical Approaches to Git, CI/CD, and a Three-Tier System Landscape”
I wrote my notes as a series of bullet points. Note this is not what Thomas said. This is my notes which vary considerably from what was actually said, and are viewed through my, possibly bonkers, lens.
- The idea is that the language should be “cloud native”. That is defined as the way all then other languages did things before there was even such a thing as the cloud. Therefore, you can be “cloud native” in an on-premises system.
- Git is at the core of this, as I alluded to in my own talk. VS Code as an IDE likes Git a lot, as does the BAS (because it is based on VS Code). I would also note there is an abapGit plugin for ABAP in Eclipse (ADT)
- The difficulty traditional ABAP people are going to have with Git repositories is that everything works off the proper use of packages. There are packages in ABAP (development classes) but they tend to be random combinations of unrelated objects. Clearly a change is needed so that ABAP programmers start to adopt a clear package structure such as other languages have been forced to do for a long time, but as yet I have found no clear guidelines as to what should go in what package. Maybe everything you need for a unit test? Common things (like UOM handling) go in their own package which is then declared as a dependency in all the other packages which use them.
- If you get this right there is no longer any need for 20 sandbox SAP systems, each with its own licence, for 20 different projects. Not that any organisation would be barking at the moon crazy enough to do such a thing and in effect set fire to the shareholders money.
- A more common approach is – during a major project – to have one development system for all the project changes (maybe during an upgrade) and one for BAU bug fixes. Eventually the two need to be merged, but in the interim you need two systems and thus two licences. Better than 20 licences (plus the two during the upgrade) but still not good.
- With Git you have the merging concept that is two people have worked on the same object and somehow you have to merge the changes e.g merging the bug fixes into the project branch. This concept scares ABAP people but think about it – that is what you do during the SPAU part of an upgrade. You have changed a standard SAP object (naughty you) and so has SAP and so somehow the changes have to be merged. So, this is nothing new, even in ABAP world.
- This is just my observation based on a live demo. The Fiori UI experience is supposed to be (a) delightful and (b) reactive. By the latter I mean if the display appears on a laptop rather than a smartphone then it should be able to display more information. You can use annotations in a CDS view metadata thing to say which fields are the most important.
- However, I have always found the drawback with Fiori is that there is such so much white space around the tiny islands of information displayed. In the demo Thomas did he had to use the magnifier so the audience could see the useful information hiding in the oceans of white space.
- Git has standard features for continuous integration (CI – all to do with merging different versions of an object together) and continuous deployment (CD – all to do with constantly moving things into production, vetting them through a pipeline of tests first) and SAP never likes to take open source things as they are but always wants to “improve” them, that way you need the BTP for the “improved” version and can pay an extra licence as opposed to just using Git as-is.
- You may have heard of the Git enable CTS system, which looks just like the normal CTS but uses Git behind the scenes. Now we have the “Cloud Transportation Management System” CTMS which has “Cloud” in the name. I reckon this time next year we will have the “BUILD AI Transport Management System” BAITMS which will be the master.
DATASPHERE
Once again, these are just my notes, and may bear no resemblance to anything actually said, it is just my impressions of what was said.
- This product has been renamed many times (no shock there). It was the DATA HUB when it was first announced at TECHED some years back and we all got a box of sandwiches for turning up a day early to hear this exciting announcement. Then it was the DATA WAREHOUSE CLOUD and now it is DATASPHERE. I reckon this time next year it will be SAP BUILD AI HANA CLOUD ESOA DATA PYRAMID.
- In order to run DATASPHERE you need SAP partners, and lots of them. At least that is what the slide implied.
- As you probably know the idea here is to keep the data in the system it is recorded in, rather than replicating it like BW does. So, the data access is virtual by default, in case you never need to persist it.
- SAP have invented a radical new idea to track changes to data. It was explained in detail, and I have called this new concept CDHDR / CDPOS
- SAP, as always, presume all organisations are on the very latest version of SAP, because that is what they themselves see every day, when in reality only about 0.1% of companies re on the latest version, and even then, the week after even that early adopter is behind when SAP change versions internally to a new one.
- I remember an SAP person writing an article once many years ago saying “Do you remember when we used to use function modules instead pf methods? Come on, it’s not THAT long ago!”. When that was written 99% of SAP customers did not yet have access to a version of SAP that supported methods. Even now most people still use function modules, but that is a different issue altogether. IT’S A DIFFERENT ISSUE!
- Another slide, which was chock full of adverts for various partners. To be fair, it is good that SAP now admits it cannot be all things to all people, which was the position once upon a time.
- I am looking at various BTP screens. They are so white, and they are so blank.
- And during the live demo there is a huge gap (pause) on every round trip in the BTP. You just watch the three dots bouncing around for a while before the next screen appears. Whatever happened to the hourglass?
- The slides included the usual roadmap one where the idea is to stick as many words on one slide as is humanly possible. That is fine for reading at one’s leisure but it is pointless showing that during a live presentation. No-one could possibly read even a fraction of it in the time it was up, and whilst they are reading what portion they can they are not listening to the presenter.
- BW4HANA is still supported until 2040
- You can still keep using BW4HANA with Datasphere.
- So, SAP certainly don’t want you to stop using BW4HANA and move to DATASPHERE. Absolutely not. Not in a million, billion years. There merest glimmer of such a thought had not even begun to cross their minds.
- In the same way I had written in my notes “This is not ready yet”. I wonder what I meant by that? I am 100% certain the presenter would never have said such a thing, and the slides would never have said such a thing, and that would certainly not be the official SAP position.
Roadmap: Pro-Code Application Development
This was all about BUILD CODE which comes out officially Q1/2024 and I got to have a play with in one of the hands-on sessions.
- This is a pro-code solution, and the aim is to automate writing loads of boilerplate code for every application. This is all to do with Java and JavaScript.
- You probably gathered that a year or so back SAP renamed a raft of disparate products so they now all have BUILD in their name. APPGVYER became BUILD for example. To make it worse there used to be another product called BUILD which was “sunsetted” some years back, and now people get all confused when they hear it is back, but it is not the same product, it just has the same name.
- Presenters: Do Not Read Out Your Slides.
- There was a tacit admission VS Code is more popular than BAS. One consultant told me if the code was just for him or one client, he would use VS Code. If it was more multiple clients, he would use BAS (and pass on the cost by charging them extra).
- I recall in the early days of UI5 there was one library for desktop, one for mobile. Then they sort of got merged together and you always used the “mobile” one but it was supposed to be reactive and expand when used on a tablet or a desktop. Now we seem to be going back to one for mobile, one for desktop, once again. The new desktop one looks horrific though.
- You may have heard of the SAP AI product “Joule” which is named after Jools Holland, the pianist in the UK band “Squeeze” from the nineteen seventies. The idea is that you write a paragraph in natural language describing your application and then the AI creates every single bit of code for you, and all the unit tests, and even puts sample test data in the database tables. That last one seems a bit odd, how does it know what values to use? The example was all about vinyl records, so it somehow locked onto the Beatles and the sample data was all about the names of the Beatles and their album names and so on, but if I asked it to create a monster-based application (and I will) I wonder what data it is going to create for me? Regardless, that is not pro-code, that is no-code, so what is that doing in this presentation?
- With no sense of irony, there was a slide entitled “Use SAP Best Practices”. The slide consisted of a picture of a woman screaming with laughter. If I have to be honest when I hear the phrase “SAP Best Practice” I have a similar reaction.
Keep the Core Clean: Extending your ERP while Maintaining your Agility with SAP BTP
This is an important topic. We would all like to follow the SAP advice to “keep the core clean” and yet we would all like to keep all the Z things we have created over the last twenty years, and to innovate just as fast as we have always done (by creating loads of new Z things and butchering standard SAP code).
- In fact this was not very much to do with a “clean core” it was more of a genetic advert for BTP
- As an example, to a large extent the slides were pretty much the same as in the last presentation (about BUILD CODE) just in a different order.
- I did not notice a sort of implicit bias – when there were slides that referred to non-ABAP and ABAP technologies, the non-ABAP technologies were always in bigger fonts/boxes.
- Going back to the idea of a “clean core” the idea is clear enough. Instead of hacking standard SAP code, or using unreleased function modules, or doing direct database reads (or worse, updates) on standard SAP tables, you need to have your Z code do all these things via released, stable APIs.
- If you get to that stage that you have a clear separation between your Z code and standard SAP code and either can be upgraded independently. All you need is enough APIs to do this, let us say, as a starting point, APIs for all the basic objects like sales orders, deliveries, purchase orders and the like. In circa 25 years did SAP ever provide enough BAPIs for all of these objects? No, they did not, and even when they did the BAPI could not do everything the online GUI transaction could do, which is why even now in 2023 you have BDCs all over the place in Z code. Plus, the BAPI documentation was woeful in most cases and the naming convention was next to non-existent.
- So, this time it is going to be different. After all, SAP would not even dare to suggest that we move to a “clean core” if there were not at least enough APIs to get even 5% of the way there. So, that is all right then. HA HA HA! A-HA HA HA HA! HO HO HO! TEE HE HE! A-HA HA A-HA A-HA HA!
Advice to Presenters
In Toastmasters the ability to give constructive criticism is valued equally as much as the ability to give a good public talk in the first place. You cannot just say “that is rubbish” you have to say why it is rubbish and make a suggestion as to how it could be better. That way everybody wins, the presenter, and all future audiences of the presenter, plus any presenters listening to the advice and so on.
So here we have a list of ideas of how presenters could be better. I am not saying I am perfect – as with all Toastmasters I am on a lifelong journey to get better all the time. Same with my programming. Nonetheless if I do not say anything, no-one will ever know. All of the below I saw at least once during this conference, and in one presentation I saw all of them in one go. As I said, the presenter may be utterly unaware their talk is anything less than perfect, but if I can make future ones better than hooray.
- Presenters: Do Not Read Out Your Slides.
- Presenters: Do Not Have slides with hundreds and hundreds of words on them. The audience will try and read them, and whilst they do, they will not be listening to you.
- Presenters: Do Not do the presentation with both hands in your pockets. I saw several people do this throughout the event, and it is not a good look.
- Presenters: I agree that it is a difficult choice as to how much movement to make during a talk. If you just stand their immobile the whole time you look like a shop window dummy or Syd Little (though he did that deliberately to provide a contrast to Eddie Large). or if you pace backwards and forwards constantly in a circle at a rapid pace you look like a lunatic trying to break out of their cell. In Toastmasters they recommended moving (walking) only there is a change of subject as in when you transition from how it used to be to when you started the project and then move again when you talk about the project going live. You can move your hands as much as you want, provided they are not in your pockets.
- Presenters: You might think that this is a technical conference, and the attendees all have technical jobs, so droning a list of technical facts in an emotionless voice will engage their attention, because they are interested in the content so much. Now, the audience IS interested in the content, otherwise they would not be there, but, amazing as it may seem, even developers are human, and humans respond best to a bit of theatrics and example stories far better than if they are presented with a list of facts they have to absorb. Basically, in the latter case they will fall asleep.
- Presenters: Before giving the presentation look through your slides and check for low-level errors. Do not presume because you are using slides given you by someone else at SAP, they are 100% correct. Examples of low-level errors might be a legend at the bottom of the slide saying everything to do with SAP Fiori is in one colour and everything tod with SAP Fiori Elements is in anther colour, and then in the body of the slide the colours are the wrong way around. Or maybe that legend is copied onto a slide that has nothing to do with either. It only takes a few minutes to make such low-level checks. Maybe it is best to have another person run their eyes over the slides to check for such things, the so called “Four-Eyes” principle.
- Presenters: In the same way, if you are going to have lots of text on the slides, make sure you check that text to make sure it is not nonsense. For example, a sentence like “use efficient and secure operations to contribute to an efficient, secure operational environment” is circular and meaningless. I wrote that one down as fast as I could, because I have never seen a better example, ever.
- Presenters: If you are going to tell people to stop doing something a certain way, make sure you have an alternative to the thing you want them to stop doing. You do not want to have the following situation “Speaker: You must move your user exits from where you currently have them / Audience Member: Where do we move them? / Speaker: I do not know”. Even if you do get to that unfortunate situation and you don’t know the answer, promise to get back to them, have them email you or something.
I Guess that’s why they call it the “House of Blues”
The closing party was at the “House of Blues” and it was great.
Wrap-Up
I was gutted when I learned that SAP was not going to host SAP TECHED in North America this year, as I am sure were a lot of people. Possibly with the rise of online events during the COVID times SAP feels there just is not the demand for in-person events anymore, and maybe SAP makes a loss on such events, even with the high entry fee for delegates plus the money the sponsors and vendors on the show-floor must be paying.
In any event, there might be slightly less people here at the ASUG equivalent, but it is just as good in every respect, maybe even better because it is community (customer) led rather than SAP led.
There is going to be another ASIG TECHCONNECT next year. If I can, I will be going.
Cheersy Cheers
Paul