NARRATOR: There were two horrible crime's committed on the 23rd of November2021. One was murder most foul, the other the release of a new ABAP related book and associated musical. It is difficult to say which is worse but this series of blogs will help you decide whilst singing and dancing and solving a crime and thus winning prizes.
The House of Frankenstien
Previously on this channel:-
https://blogs.sap.com/2021/11/16/i-can-see-abap-moon-rising-part-one-of-eight/
https://blogs.sap.com/2021/11/23/i-can-see-abap-moon-rising-part-two-of-eight/
NARRATOR: When we left the story last time the very basics of book writing and the associated downloadable code had been explained. Meanwhile a mad scientist and his hunchbacked assistant had escaped from a prison on an asteroid in the year 2156 and travelled back in time to Gatecrash the SAP Press Gala Party which is being held in Castle Frankenstein in 1792. One of those things is more interesting than the other, but anyway, let us get on with the SAP side of the coin…
*----------------------------------------------------------------------------------------------*
Book Writing
*----------------------------------------------------------------------------------------------*
PDH: In these sections I talk about the general process of writing a book for SAP Press. That might not be everyones cup of tea. In the Stephen King novel „Misery“ whenever the author tried to explain the mechanics of novel writing to the evil woman who was holding him captive she lost the plot and cut a bit of him off with an axe. Nonetheless I am going to take that risk.
*----------------------------------------------------------------------------------------------*
Minor Forty-Niner
As I mentioned I kept a spresdheet listing every ABAP related change I read about on the internet that related to the topics covered in the book. I had the final versions of all the chapters in the last edition in word format and made any minor changes right there and then. That meant that at the end of two years when the time came to start on the new edition there were already a bunch of updates that had been made.
Bridge of SCIs
Most chapters have at least one code listing, sometimes they have dozens. The next step is to do the good old SCI / SLIN check on all the listings. Since some of the code is intended as a „bad example“ errors or warnings those are fine as-is but otherwise I use a code inspector variant that is a lot more stringent than the one I use for my day to day code in my job.
Also since the last edition the „Clean Code“ code inspector checks have become available and since I agree with the bulk of them I ran those checks over the code as well. And then comes the most stringent test of all....
Maybe I am stark raving bonkers but I like to think the mark of a good programmer is that you look at code you wrote in the past and are horrified. You think „My God! What was I thinking? Was I drunk when i wrote that?“. Leaving aside the possibility that might have actually been the case hopefully you are constantly improving every day and always finding new and better ways to code the solutions to assorted tasks. So I tend to fiddle with pretty much every single code listing each time, to a greater or lesser extent.
Go Figure
As well as code listings the chapters are full of screen shots. As I mentioned earlier I had installed the latest version of the SAP GUI 7.70 and set the theme to „Quartz“ as that is what SAP recommended. One minute after the book was finalized a new theme called „Horizon“ came out, but that is only to be expected.
Anyway that meant that pretty much every single screenshot had to be re-done to show the new „improved“ theme, even if the contents of the screen had not changed at all.
Big Changes in Little China
That leaves the major changes in each chapter which is when there is something totally new like a new ABAP keyword or test framework or a new SQL option or whatever. In every chapter something like that occurred and two chapters – the business logic part of the RAP and the UI5 chapter – had to be 100% re-written. When deciding what order to re-write the chapters I arrange them from the least amount of changes to the most - so each one is more difficult to do than the last. Maybe a sane person would do it the other way around so life got easier each week rather than worse.
Typo Casting
I had an evil plan that as soon as I finished each chapter I would print it out and then go over it with a fine tooth comb in the pub looking for spelling mistakes. I only managed to do that with three chapters (4, 5 and 10) and in each case I found loads of spelling/grammar errors, 99% of which had been there since the first edition. Logic would suggest therefore that the remaining chapters also contain spelling and grammatical errors even if the automated checks in Microsoft Word could not spot them and I could not spot them and my editor could not spot them and the copy editor could not spot them. If you spot any please email SAP Press and tell them. Now it is too late I will be printing out the remaining chapters and checking them as well, just on point of principle.
Next week we shall start looking at the nature of each chapter and how much it got changed.
*----------------------------------------------------------------------------------------------*
Code Base
*----------------------------------------------------------------------------------------------*
At the end of the last blog the Baron’s business process had been defined and turned into „user stories“ and a list of applications needed to fulfill those stories had been created. Up until that point everything had been abstract i.e. there had been no mention of what technology was going to be used.
Well it is not going to come as a huge shock that the technology we will be using is ABAP. In real life it is quite possible that one or two of the user stories just cannot possibly be satisfied by anything SAP provides (I know that is a horrifying concept) so you would have to use something else and then interface it to SAP. In actual fact that is the case for about 99.99% of organisations.
So now we map the abstract applications to proposed SAP ABAP Constructs
- Monster Order Taking Front End (MOFE) - an application to enter the customer requirements into a sales order type object. Thus we need an ORDER business object Iike VBAK/VBAP), and a VILLAGE business object (like a ship-to in SAP) and a RESERVATION business object (no direct equivalent)
- Missing Monsters Report - an application to list any orders which do not currently have a reserved Monster against them and Update Orders once the new Monster has been made. This works with the ORDER and RESERVATION business objects.
- Monster Simulator - an application to calculate a Monster BOM based on the customer requirements in an order. This is like variant configuration in SAP. This works off the requirements in the ORDER business object.
- Maintain Monster Record - a application to capture the details of the new Monster once it has been built. Thus we need a MONSTER Business Object which is like a cross between MARA and EQUI in SAP.
- Monster Atrocity Due List - an application to list sales orders which are ready to be dispatched, and create deliveries from them. This works off the ORDER business object and creates DELIVERY business objects.
- Monster Atrocity Monitor - an application to process the deliveries, and open the cages of the relevant Monsters. This works of the DELIVERY business object.
This gives us six applications and five supporting business objects – VILLAGE / MONSTER / RESERVATION / ORDER / DELIVERY. In the new world of SAP most applications are in fact automatically generated based on one or more business objects. So the business objects are the key to everything.
Since a business object is based upon a real world object (like a Monster) the different types of business objects can have relationships to each other which can be displayed in a diagram.
Monster UML Diagram
At this stage we are finished with the planning stage and can start creating things within the SAP system.
NARRATOR: All well and good. The mechanics of writing an SAP Press ABAP book are being explained slowly but surely. Meanwhile something far more important was happening. The SAP Gala Party was slated for 23/11/1792 with the guests travelling backwards in time from 2021 but on that – fateful – night some strange gatecrashers were on their way.....
*----------------------------------------------------------------------------------------------*
Plot – loosely based on „House of Frankenstein“ (1944) – Part 3
*----------------------------------------------------------------------------------------------*
NARRATOR: Evil Criminal Mastermind Frank BOPF and his hunchbacked assistant Slin Shady have escaped from prison in the year 2156 and fled back in time across the BW bridge to the year 1792. After reviving Count Dracula only to have him brutally murdered by an unknown party, BOPF and SLIN decide to move on to Castle Frankenstein because they hear it is really cool and is about to have an SAP Press Gala Party.
BOPF: OK Slin, here we are outside Castle Frankenstein. It has a a reputation as the „go-to“ place to be for groovy parties.
SLIN: How can we be sure this is in fact the case?
BOPF: That is easy – let us look through the round window over there and take a peek inside to see what is going on in the main hall. (
They do just that).
SLIN: That guy in the fishnet stockings – that must be Baron Frankenstein – it looks like he is gearing up to sing and dance!
*----------------------------------------------------------------------------------------------*
Song – The Low-Code Notion
https://www.youtube.com/watch?v=eKpVQm41f8Y
Originally sung by Little Eva accompanied by Cliff Richard and the Shadow IT
*----------------------------------------------------------------------------------------------*
MONSTERS: Chooooooooooooooooooooooooooooooooooooooooooo!
(
BARON SLIDES DOWN CHUTE)
MONSTERS: Chooooooooooooooooooooooooooooooooooooooooooo!
BARON: Everybody’s doing the developer dance, now (because everybody is a developer)
(Monsters: Come on baby, do the Low Code Notion)
I know you'll get to like it, if you give it a chance, now
(Monsters: Come on baby, do the Low Code Notion)
My litte baby sister can do it with me (she is 8 and wrote an app to sell doughnuts by the way)
Its‘ easier then getting a masters degree (just)
So come on, come on, do the Low Code Notion with me
You gotta navigate through 20 screens of a wizard, now
Come on, baby
Code this
Code that
Well, I think you've got the knack, wow, wow
Now that you can do it, let's make ON CHAIN REQUEST, now
(
Baron and Monsters form Conga Line)
Come on baby, do the Low Code Notion
Develop in production without a test, now
Come on baby, do the Low Code Notion
Do it nice and easy, now, here is a thought
When you get in trouble call IT for support
Come on, come on
Do the Low Code Notion with me
Why charge dev licenses to one or two,
When I can charge everyone, whoo hoo hoo hoo!
So Come on, come on
Do the Low Code Notion with me
Move around the FLOOR in a Low Code Notion
(Monsters: Come on baby, do the Low Code Notion)
The code it writes itself, its a magic potion
(Monsters: Come on baby, do the Low Code Notion)
There's never been a dance that's so easy for sure
Even if you end up with more code than before
So come on, come on, do the Low Code Notion with me (Monsters: come on)
You gotta swing your hips, now (Monsters: come on)
That's right (Monsters: do the Low Code Notion)
You're doing fine! (Monsters: Come on, do the Low Code Notion)
(
Baron and Monsters from Chorus line, do high kicks)
Come on, babe (Monsters: come on, do the Low Code Notion)
Code this (Monsters: come on)
Code that (Monsters: do the Low Code Notion)
You're looking good (Monsters: come on, do the Low Code Notion)
(
A Monster rises into the air, to play the saxophone)
Code this! (Monsters: come on)
Code that! (Monsters: do the Low Code Notion)
And then in the end give it to a real developer to do it properly!
(Monsters: Come on, do the Low Code Notion, baby)
(
Rapturous applause.
Baron and Monsters take a bow. Firework display)
BOPF: (To Slin Shady) Let’s not go there. It’s silly.
ENTER LARRY „TALBOT“ ELLISON
LARRY: No, no, don‘t go! I desperately need your help!
BOPF: OK, what can we do for you?
LARRY: The horrible truth is – I am a werewolf! Every full moon, or sometimes just at random, I turn into a horrible half man / half wolf / half monster type thing!
SLIN: That is three halves.
BOPF: Leaving that aside, hasn’t Baron Frankenstein been able to help?
LARRY: No, he thinks it is funny! That is why I cannot leave his castle. The monsters are in no danger from me, because they taste foul, as does the Baron, but if I were to start living in the nearby village or anywhere else, eventually i would eat all the inhabitants!
BOPF: This is not a problem. I am a Mad Scientist myself. I will find a solution and cure you of your curse –
with not one line of code! My solution to your problem will be so good it will be
a PARADIGM SHIFT!
AUDIENCE: Whoooooooooooooooooooo! (
Does Mexican Wave) (Sings) Bananas, bananas, one million tons of bananas!
SLIN: Does that mean we have to go into Castle Frankenstein then?
BOPF: Sadly yes, no matter how silly it is. To enact the cure I need a fluid link, which is full of mercury by the way, and the castle is the only place to get such a thing.
A Fluid Link
LARRY: OK, I will introduce you guys to the Baron (
EXEUNT)
*----------------------------------------------------------------------------------------------*
Clues
*----------------------------------------------------------------------------------------------*
ENTER „APPY“ „MAC“ GYVER
AMG: So we have a murder victim – namely Count Dracula. I think it is fairly clear he was killed by a Monster – but which one – and where? If you want to win a mystery prize you need to answer that – and more – and supply your reasoning.
- Winner has to say => A detailed breakdown of the reasoning behind the conclusion (should be 30+ logical steps (e.g. the Blue Monster could not possibly have been in the middle castle because of XYZ)
- One Haunted Castle contains the ghost of a servant who was falsely accused of losing valuable dishes. She was killed and thrown into the well in the castle. Her ghost now haunts the castle at night, counting dishes in a mournful tone; she reaches nine before shrieking and returning to the well.
- The Monster whose name is Gary only ever plays the Trumpet. All Monsters the same colour as Gary only ever play the Trumpet.
- At the time of the murder the Monster that is 1 Foot Tall was one castle away from the Monster who has the Super-Power of Invisibility. All Monsters are different heights.
- At the time of the murder the Monster who has the Super-Power of Shape-Shifting was one castle away from the 8 Foot Tall Monster. All Monsters have different Super-Powers - but only one each,
- The Green Monster reads "Object Oriented Design with ABAP" which is a book from APRESS
- One possible anagram of Paul's Email Address is "Landau Raunchy Shampoo". Another is " Aloha Paunchy Rosamund"
With each blog at this point I will be giving you more clues and as the blogs go by the clues will become more useful. By the way at this point there is a bucket of mystery prizes already made. Some are boring things related to SAP but most are far more interesting.
Often people ask how do you solve such a difficult puzzle when only 1% of the population are supposed to be able to solve such things. One way to start would to be to build a spreadsheet listing the different options. For example each monster is a different colour and each monster is in a different castle.
Therefore if the Purple Monster is in Castle 1 (left most castle) then no other castles can have a purple monster within them. Likewise castle 1 cannot have any monsters which are not coloured purple.So I tend the colour the cell I know to be correct green and everything above/below it and right/left of it red. As follows
This is known as a "logical inference". Moreover once you know this if you get a clue which says the purple monster is eight foot tall then you will know that no monsters who are NOT eight foot tall will be in castle one.
As you get more clues you will be able to make more such inferences until the end the monster who did the foul deed will become obvious
*----------------------------------------------------------------------------------------------*
Outro
*----------------------------------------------------------------------------------------------*
NARRATOR: As we leave this weeks episode, the preparatory work has been done for writing the book, and evil villain Frank BOPF has arrived at Castle Frankenstein and met a werewolf! More importantly the mystery of Count Dracula's murder is still unsolved! Can you solve the crime and be one of the lucky first few to win prizes? Stay tuned for next weeks exciting episode of „I can see ABAP Moon Rising“
https://blogs.sap.com/2021/12/07/i-can-see-abap-moon-rising-part-four-of-eight/
https://www.sap-press.com/abap-to-the-future_5360/
BARON:
As a special bonus here is a lovely video of the incredibly handsome author talking about the book whilst wearing a „Monsters“ shirt:
https://youtu.be/9Y0KGYB1mR4