Skip to Content
Personal Insights

The Rappy Horror abapGiture Show – Part Eight

NARRATOR: As you will probably be aware by now, the two biggest things happening in the SAP world are the introduction of the Cloud RAP (Restful ABAP Programming Model) and abapGit for version management, hence the title of this blog series, which narrates a horror story concerning both new concepts.

The night before the publication of the “ABAP to the Future 3” book two horrible things were happening simultaneously. First of all the author was writing the book in the first place, and if that was not bad enough in and off itself……

https://blogs.sap.com/2019/02/26/the-rappy-horror-abapgit-ture-show/

https://blogs.sap.com/2019/03/05/the-rappy-horror-abapgiture-show-part-two/

https://blogs.sap.com/2019/03/12/the-rappy-horror-abapgiture-show-part-three/

https://blogs.sap.com/2019/03/19/the-rappy-horror-abapgiture-show-part-four/

https://blogs.sap.com/2019/03/26/the-rappy-horror-abapgiture-show-part-five/

https://blogs.sap.com/2019/04/02/the-rappy-horror-abapgiture-show-part-six/

https://blogs.sap.com/2019/04/09/the-rappy-horror-abapgitture-show-part-seven/

NARRATOR: When we last left things on that – fateful – night (which is now the morning of the day on which the SAP Press Gala party will be held in the evening). The author was five sixths of the way through preparing the downloadable code of the book, and had actually entered Castle Frankenstein, as had Professor Hasso Plattner. The Baron had turned everyone into statues in preparation for the “Floorplan Manager Show” whatever that might be. Here we go with the final episode of the waking nightmare which is the “Rappy Horror abapGiture Show”…..

BARON FRANKENSTEIN: I get to go first this week! That’s because I have turned everyone else into statues so they cannot say anything! My monsters have prepared the stage for the “Floorplan Manager Show” which is the epic finale to the whole series of blog posts about “ABAP to the Future Part 3: Fifty Shades of ABAP”. That book is all about ME with some passing references to SAP technology.

My monsters have moved all the statues onto the stage, and I will bring them back to life as needed. Eventually we can all go to the SAP Press Gala Party (I love such parties and have bought a new frock specifically for it) in the self-driving autonomous private jet which is currently parked in the courtyard of Castle Frankenstein, but not before everybody has SUNG AND DANCED!

OK, first off I will bring PDH back to life so he can spout the obligatory SAP based nonsense without which the blog cannot exist, and then afterwards we can get back to the serious business of singing and dancing.

(Points gun at statue of PDH. Fires – ZAP! – he comes back to life)

PDH: Thanks for that – I think. I’ve already picked my song, it is the song I sung in a blog the day before SAP Press first contacted me in 2014, updated to incorporate recent technological developments. Amazingly it is just like my day job, our CIO in Australia insists everybody sings Karaoke at every one of our company events. He rarely turns employees into statues however.

Die Another WDA

Step thirty one is to “Create WDA versions of applications”. As mentioned last week, for all three applications – Monster Atrocity Due List, Missing Monster List & Monster Atrocity Monitor – the application model is the exact same one as was used for the ALV version of the application, but the controller and view are different because the user interface technology is different. The WDA framework has views and controllers, though just to be awkward it calls everything a controller, but does not really have a proper place for the model to live, but I ram the model down it’s throat anyway.

I generally aim to have as little “smarts” in the view as I possibly can, and in addition I do not want the model and view to know anything about each other at all. That is by no means a universal view – a large number of diagrams of the MVC pattern have arrows going directly between the model and the view. Maybe I am barking at the moon, free energy crazy, but my idea is that if the view is 100% decoupled from the model then it is easier to switch out the view when a new UI technology comes along. Naturally, you might arrange things so the view sends data to the model via events, thus not having to know about the model, but then the model would have to subscribe to such events, it would need to know there was a view sending such events, need to know something about the view, so I don’t like that much. I am sure someone (if not any people) will have a contrary view and tell me I am an idiot, which is fine, just use the comments to tell me a better way to do things, and why it is better. I have made 180 degree pivots before, based on new information.

Get Smartphone

In real life, the Hunchbacks that use these business applications do not want to use the SAP GUI as it means sitting at a desk rather than their preferred alternative of doing their job whilst surfing or jumping out of a plane or on a secret space mission to explore the invisible planet beyond Pluto, and they don’t want to use WDA because it looks hideous and has a horrible response time and makes me want to scream ad scream and scream until I make myself sick (I can you know) so what they actually want is a UI5 application on their smartphones.

That is why SAP invented UI5 – they were sick of Hunchbacks moaning to them all the time. Oracle has a similar problem with Werewolves, Microsoft Dynamics was designed based on the needs of Vampires. Salesforce is trying to muscle in on the action by trying to cater to the needs of Zombies, but the problem is all their best developers get their brains eaten whilst doing end user research.

So step thirty two is to “Create UI5 versions of applications”. In the past the programs which did the CRUD operations for Business Objects were DYNPROS and the programs which displayed a list of data which you could interact with to carry out a business process were ALV lists. That is a bit of a simplification but essentially true. That is also why not giving CL_SALV_TABLE the edit ability feature (though its predecessor had it) was utter madness as that lack renders it not fit for purpose.

In the new world UI5 can be used for both types of applications – object maintenance, and interactive lists to carry out business processes. It is just a question of picking a different sort of template in the SAP Web IDE when you are creating the user interface.

Swimming the Channel

We now have our ALV reports. They are all links in the chain that is the monster business process. When a new sales order is created and there is no available monster then you would want the new order popping up on the missing monster report without the user having to refresh. In the same way when a delivery is created from the monster atrocity due list you would want it to pop up automatically on the monster atrocity monitor again without the user having to refresh. In other words you want the applications to act like the apps on your smartphone where new emails or news articles pop up when they are created and without you having to manually press a button to update the display.

This is where “ABAP Channels” come into play. They don’t fit neatly into the various SAP programming models. I suppose in theory either the model or the controller can send a message via an ABAP channel to another application..

Step thirty three and a third is “Enable messaging between ALV Reports”. ABAP Channels use a publish and subscribe mechanism, where the receiving report subscribes to changes to data it is interested in, and the sending report publishes the updates and does not care who is interested.

Now the thing is, this works in the SAP GUI i.e. you can send messages between ALV reports and have the target auto-refresh, up to version 7.52 of ABAP at least, but you are not supposed to use it, it is just a prototype and SAP swear they will take the functionality away from the Kernel someday. I can only presume the logic is that they don’t want you using the SAP GUI and anything that makes the user experience on the GUI better is therefore a Bad Thing and must be deprecated. Never mind that people will most likely be using the GUI for the next ten years, if not twenty, it seems to be the principle of the thing, just like the editable SALV not existing.

Channel Hopping

Where you are supposed to be using ABAP Channel is in UI5 applications. You can send a message from any running application inside SAP and a UI5 application on the web can subscribe to get updates. Moreover two different UI5 applications can send messages to each other. Thus step thirty four is “Enable messaging between UI5 Reports” which the same type of messages the ALV reports send to each other in their highly illegal fashion.

What is amazing about all of this is how little code you need – both on the ABAP side, and on the JavaScript side for UI5 applications. There is also some configuration needed, but nothing that takes more than a few minutes to set up. Thus the ABAP Channel concept can be described as “elegant” in that it is the simplest thing (in terms of implementation effort needed) that can do the job.

At this point we also need to mention “ABAP Daemons” which are indestructible work process that send and receive messages using a similar mechanism. As far as I can see they are a solution looking for a problem. I have asked on the internet for realistic examples of possible use cases and have got several answers but the use cases seem to be a bit obscure to me. The only one that made any sort of sense was logging – in this case you send a message to a Daemon which writes to the application log. As this is done in a separate work process there is no COMMIT WORK in the calling program, thus bypassing the ”gotcha” problem many programmers find the first time they try and write to the application log half way through a LUW. We have found that writing to the application log can sometimes also cause a DEQUEUE_ALL which is most unexpected though I am sure there is a logical reason why this happens.

The Rappy Horror Show

When I started writing the book the RESTful ABAP programming Model did not exist. It came out about a month before the deadline for the book, but luckily as an SAP Mentor I got access to a Cloud ABAP System, so I was able to write about some code which I had actually written in real life and actually worked, rather than having to guess based upon documentation.

So step thirty five is to “Create Monster List using the RAP” where once again I create an application to list monsters with buttons to create, update and delete individual monsters, but this time using the RAP which is bit of a radical departure from anything us ABAP programmers have seen before. The basic concepts are identical to the “ABAP Programming Model for SAP Fiori” which a CDS Views, a business logic object, and a service that gets consumed by UI5, but the mechanism for each is very different.

Moreover this is a work in progress. New versions of ABAP are coming out every three months (or less) now, but luckily as I have a Cloud ABAP system I don’t need to do anything, the ABAP version just updates itself. One day SAP wants all ABAP developers to be in this enviable position.

I think the below diagram says it all … I use this diagram in my talks on the future of ABAP programming at SIT events:-

I am also lucky enough to get invited to SAP HQ every so often to see the latest version of ABAP and give my feedback and suggestions. I cannot talk too much about that as I am under a non-disclosure agreement, as are all Mentors, but it is great fun.

Suffice it to say this is an amazing period in the evolution of the ABAP language, it has never changed as much and as frequently as this year, and the pace of change only seems to pick up. One thing that is not a secret is that near the end of 2018 SAP hired 100 developers to work solely upon enhancing the ABAP language.

Cloud RAP to the Future

The final step, number thirty six is, “Replicate everything else in the book using the RAP” and I have not done any of that yet, I only created the monster list application.

Some things simply do not exists in the RAP e.g. BOPF, SEGW and you can only use a very restricted list of standard SAP objects (classes, data elements and the like). The SAP team started with the bare minimum and are rapidly adding new things each release.

Over the course of 2019 I will see how many of the objects that I created in ABAP 7.52 for the ABAP to the Future 3 book I can replicate in the latest release of ABAP. That might puzzle you as up to now ABAP has always been 100% downward compatible, but that is no longer the case, at least in the cloud environment. I am really glad they are forcing the issue otherwise some nonsense things like logical databases would have stayed with us forever.

Anyway that is my plan going forward. The more I play with the latest version of ABAP the more problems and gaps I will find, and I will gleefully report them directly to SAP. After all, if I can’t get something simple and obvious like the Monster Business Process to work, then what chance does anyone else have with their more complicated requirements?

At this point I am done, and I will hand over to the Baron.

BARON FRANKENSTEIN: Thank goodness that’s over! Now you have finished talking nonsense we can get on with the serious business, which is of course singing and dancing! So here it comes – the Grand Finale! I’ll go first!

*——————————————————————————————————————–*

FINALE – FLOORPLAN MANAGER SHOW

NARRATOR: The United Federation of Planets recommends that for an optimal experience of this show, you listen to the YouTube link whilst reading the SAP based lyrics, due to the advanced age of all of the songs (30 years +). As such the fashion in the videos may be surprising to some of our younger viewers, but maybe not, as fashion tends to have a 30 year cycle e.g. ripped jeans were fashionable in 1986 and now are again after a thirty year gap.

*——————————————————————————————————————–*

  1. BARON FRANKENSTEIN

Song – I’m Too Sexy

https://www.youtube.com/watch?v=P5mtclwloEQ

I’m too sexy for my monsters

Too sexy for my monsters

Too sexy – it drives me bonkers!

I am Sexy As A Service (SAAS)

Too sexy as a service (Monsters: Wiggle that SAAS!)

Does that make you nervous?

And I’m too sexy for Big Data

Too sexy for Big Data

Big Data – see you later!

I’m too sexy for IOT

Too sexy for IOT

Tee hee hee, tee hee hee

‘Cause I’m a Restful ABAP Programming Model, you know what I mean

And I do my little turn on the SAP Cloud Platform

Yeah, on the SAP Cloud Platform

On the SAP Cloud Platform, yeah

I shake my little SAAS on the SAP Cloud Platform

I’m too sexy for my self-driving car

Too sexy for my self-driving car

Too sexy by far

And I’m too sexy for AI

Too sexy for AI

What do you think – it’s all pie in the sky?

‘Cause I’m a RESTful ABAP Programming Model, you know what I mean

And I do my little turn on the SAP Cloud Platform

Yeah, on the SAP Cloud Platform

On the SAP Cloud Platform, yeah

I shake my little SAAS on the SAP Cloud Platform

Too sexy for my

Too sexy for my

Too sexy for my

‘Cause I’m a RESTful ABAP Programming Model, you know what I mean

And I do my little turn on the SAP Cloud Platform

Yeah, on the SAP Cloud Platform

On the SAP Cloud Platform

Yeah, I shake my little SAAS on the SAP Cloud Platform

Too sexy for ABAP

Too sexy for ABAP

Poor language

Poor language – it’s … not very good

I’m too sexy for my monsters

Too sexy for my monsters

Too sexy – it drives me bonkers!

And I’m too sexy for this song (EXIT)

(RICEF points the Ray Gun at SAP and ABAP and fires. They come back to life)

  1. SAP and ABAP –

Song – The Frankenstein of my Life

https://www.youtube.com/watch?v=4BQLE_RrTSU

SAP: Now I’ve had the Frankenstein of my life

No I never programmed like this before

Yes I swear it’s the truth

And I OO my code, Whoop! Whoop!

ABAP: ‘Cause I’ve had the Frankenstein of my life

And I OO my code, Whoop! Whoop!

SAP: I’ve been programing for so long

Now I’ve finally found someone

To correct me

ABAP: We saw the blogs upon the net

As we programmed this magical fantasy

BOTH: Now with bugs throughout our code

There’s no way we could offload it secretly

So we peer review each other’s code

‘Cause we seem to understand the R-A-P (model)

SAP: Just remember

ABAP: You’re the one thing

SAP: I can’t seem to resist

ABAP: So I’ll tell you something

BOTH: This could be a paradigm shift – because

(CHORUS)

BOTH: I’ve had the Frankenstein of my life

No I never programmed this way before

Yes I swear it’s the truth

And I OO my code, Whoop! Whoop!

ABAP: With my body and soul

I want a distributed version management system more than you’ll ever know

SAP: So we’ll just let it go

Don’t be afraid of change control

ABAP: Yes I know what’s on your mind

When you say:

“Keep the Core Clean” (SAP: Keep the Core Clean, baby!)

SAP: Just remember

You’re the one thing

ABAP: I can’t seem to resist

SAP: So I’ll tell you something

BOTH: This could be a paradigm shift …. because

(CHORUS)

BOTH: I had the Frankenstein of my life

No I’ve never programmed this way before

Yes I swear it’s the truth

And I OO my code, Whoop! Whoop!

‘Cause I’ve had the Frankenstein of my life

And I’ve searched through every open floor (plan manager)

Till I found the truth

And I OO my code, Whoop! Whoop!

VARIOUS MONSTERS: *Instrumental*

SAP: Now I’ve had the Frankenstein of my life

No I never programmed this way before

(ABAP: Never Programmed this way)

SAP: Yes I swear it’s the truth

And I OO my code, Whoop! Whoop!

BOTH: ‘Cause I’ve had the Frankenstein of my life

No I’ve never programmed this way before

Yes I swear it’s the truth

And I OO my code, Whoop! Whoop!

BOTH: ‘Cause I had the Frankenstein of my life

And I’ve searched through every open floor (plan manager)

Till I’ve found the truth

And I OO my code, Whoop! Whoop!

 

  1. PDH

NARRATOR: Here we have three versions of the song – the first from the European Song Contest many years ago, then an improved version from the south of England, an lastly the SAP version.

Song – OO Just an abapGit

https://www.youtube.com/watch?v=KiLw45oAuD0

https://www.youtube.com/watch?v=b_gZ3eCFnaE

Wurp idle didle do,

Wurp idle didle do,

You’re my code
You’re the sweetest thing
Don’t rot away
Don’t rot away

Every change makes me hate the users
Don’t Call Us
We’ll Call You

Am I wrong, to encapsulate
All my methods,

Is that pathetic?
I can’t hide all these patterns of state
(Oink!)
All my principles are open and closed

SHEEP: Baa!

CHORUS:

O! O!
I use abapGit
O! O!
A little bit more
O! O!
I use abapGit
Patterns by they Gang of Four

O! O!
I use abapGit
O! O!
Be just the job
O! O!
I use abapGit
Read they books by Uncle Bob

COW: Moo!
Working out
With code that’s legacy
Inheritance

It makes me dance

But tonight that guy Feathers say
Let me refactor, whilst on me tractor
How can I prove my love for U(ML)

Baby please, the subclass that I need
Is the Liskov substitution from hell

DONKEY: Ee-aww!

CHORUS:

O! O!
I use abapGit
O! O!
I feels the force
O! O!
I use abapGit
I loves that girl called Polly Morph
O! O!
I use abapGit
O! O!
A little bit more
O! O!
I use abapGit
Patterns by they Gang of Four

O! O!

O! O!

There is no need to laugh.

(Enter BARON FRANKENSTEIN. He uses his Ray Gun to restore everyone to life. At this point all characters are on the stage, except RDMS, who is dead)

(ENTER RAP-STUS)

RAP-STUS: Sorry I am late, have I missed anything?

ALL: Nothing Important.

RAP-STUS: OK then, let’s SING AND DANCE!

  1. ALL

Song: We Built These Monsters

https://www.youtube.com/watch?v=K1b8AhIsSYQ

ALL:

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

SAP:

Diddly Diddly Diddly

Diddly Doo

Diddly Diddly Diddly

MONSTERS:

BANG BANG!

RICEF:

Say you don’t know me

Or recognize my code

Say you don’t care too much

For code that’s OO

MDG:

Knee deep in the HANA

Digging in the cemetery

Too many runaway processes

Eating up the memory

ALL:

The Baron plays with HANA

Listen to SAP

Don’t you remember?

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

C/4 HANA:

Someone always making

Overstated claims

Who cares they’re always changing

SAP Product names

RAPPY:

We just want to dance here

On the Floorplan stage

They call us Enterprise Irregulars

WRITE statements are all the rage

ALL:

The Baron plays with HANA

Listen to SAP

Don’t you remember?

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

RAP-STUS:

It’s just another Tuesday

In Rimini Street

We just want install, oh oh ooooooooooooooooooooooooooo,

HANA on Business Suite……………………….

SAP:

Diddly Diddly Diddly

Diddly Doo

Diddly Diddly Diddly

MONSTERS:

BANG BANG!

PROFESSOR HASSO PLATTNER:

Who counts the Monsters

Underneath the bed?

Who writes the stupid books

For SAP Press?

ABAP:

Don’t tell us you need us

We’re a ship of Business Rules

Looking for Transylvania

Using SAP tools

NARRATOR: I’m looking out over the castle drawbridge

Out on a gorgeous rainy Tuesday 3AM (on the day of the SAP Press Gala Party)

I’ve seen those bumper-to-bumper monsters

(Monsters: Don’t you remember, remember)

Here’s your favourite Monster Maker

In your favourite Evil Castle

The castle by the forest, the castle that makes you weep

The castle where no one ever sleeps (if they want to wake up again)

ALL: (Doing the Can-Can) The Baron plays with HANA

Listen to SAP

Don’t you remember?

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

We built these Monsters

We built these Monsters with R-A-P

THE END – All the actors take bows, with RAP-STUS taking centre stage.

ROLL CREDITS

Cast – in order of appearance:-

PAUL HARDY                                     An SAP Mentor                       Himself

NARRATOR                                       An SAP Expert                       Trevor McDoughnut

WILLIAM “SAP” PITT                         A Hero                                     Rick Moranis

ABAP WEISS                                     A Heroine                                Susan Boyle

RICEF                                                 A Handyman                           Richard O’Brien

MDG                                                   A Domestic                             Morticia Addams

C/4 HANA                                           A Groupie                                Bonnie Langford

BARON FRANKENSTIEN                 A Scientist                               Freddie Mercury

RAPPY HORROR                             A Silly Creation                       Arnold Schwarzenegger

RDMS                                                 A Database                             Meat Loaf

PROFESSOR HASSO PLATTNER  A Rival Scientist                      Meat Loaf

RAP-STUS                                         A Relative                               Lionel Richie

MMXIX

Baron Frankenstein will return circa 2022 in “ABAP to the Future Part Four – I can see ABAP Moon Rising”

4 Comments
You must be Logged on to comment or reply to a post.
  • hi Paul,

    If I have a SAP on AWS installation model(Infrastructure-as-a-service, the SAP system is managed by our Basis team) will the Cloud RAP model be available there or is it available only in the SAP Cloud Platform(Platform-as-a-Service)?

     

    Thanks, Joe.

     

    • In the past if I wanted to play with a HANA database and use the latest ABAP version I would use the so called CAL from SAP which runs on AWS and then I got an ABAP only system just for me which cost a dollar an hour to run.

      The Cloud RAP does not have a trial version. In addition 7.52 was the last ABAP version where you could have standalone system on-premise. The only way to get it (RAP) s to pay quite a large amount of money. That is apparently because it consumes a gigantic amount of resources.

      The only reason I was able to play around with the Cloud RAP is I am lucky enough to be an SAP Mentor and so get access to a shared trial system.

      Cheersy Cheers

      Paul

       

  • …near the end of 2018 SAP hired 100 developers to work solely upon enhancing the ABAP language.

    It is first time I read about it. Good news. Looks like no worries ABAP will get deprecated 🙂