Knobelaufgabe - Advent 2021

Alles Rund um SAP®.
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

Knobelaufgabe - Advent 2021

Beitrag von black_adept (Top Expert / 3701 / 78 / 771 ) »
Gestern war der 1. Advent. Was für ein Tag….
Am Morgen bekam ich einen Anruf, und sie sagten, dass wir ein „kleines Problem“ hätten, welches ich bitte schnell beheben müsste. Ein „kleines Problem“? Die Untertreibung des Jahrhunderts.
„Sie waren unvorsichtig und ich habe sie gestern Nacht erwischt. Aber ich glaube, sie wissen, dass ich es weiß und sind hinter mir her. Schon letzte Woche hatte ich an der Ampel einen Stich im Oberschenkel verspürt und seitdem geht es mir schlechter und schlechter. Selbst die Vitaminspritze, die mir Dr. Hyde verabreicht hat, verbessert nichts. Ich kann am Telefon nicht reden, aber ich hatte es ja schon geahnt und habe die wesentliche Information in einem ABAP-Programm schon vor einem halben Jahr an deinem Arbeitsplatz hinterlegt. Leider bin ich nicht dazu gekommen es zu testen – aber du musste es nur zum Laufen bringen und weißt wovon ich rede. Sie sind schon viel weiter als wir es jemals vermutet haben! Und nicht erst seit heute. Zwei Pixel verraten es dir. Nur zwei Pixel, manchmal sogar 4. Mach einen Screenshot der Ausgabe und schicke es an die Gruppe. Sie werden wissen was zu tun ist. Das geheime Projekt ist AAAARRGHHHH“
Meine geballte Faust knallte auf die Tischplatte – so knapp. Langsam öffnete ich meine Hand und mir wurde klar, dass die Locke, die ich in ihr gehalten hatte das letzte war, was mir von Jack geblieben war.
Ich versuchte so schnell an die Stelle zu gelangen, wo Jack gestorben war, aber ein Team der örtlichen Crime-Scene-Unit war schneller und hatte ihn schon eingesammelt und die Forensiker machten ihren Job. Während ich auf das Untersuchungsergebnis der neuen Pathologin, der ein ziemlicher Ruf vorauseilte, wartete, machte ich mich an die Programmanalyse. Kein Wunder, dass ich angefordert worden war. Nahezu niemand kennt sich mit so okkulten Programmiersprachen wie ABAP aus. Und Jack mag zwar eine unglaubliche Intuition gehabt haben, dass er so eine bahnbrechende Entdeckung machen konnte, aber bei der Analyse des Quellcodes fragte ich mich, wie er als Programmierer überlebt hatte. Das war der so ziemlich schlimmste Spaghetticode, den ich seit langem gesehen hatte. Und die Anzahl der Fehler was so groß, dass man jeden Tag im Advent einen davon hätte lösen müssen, um zu Weihnachten die Ausgabe des Programms vor sich zu haben.
Als ich das Programm endlich zum Laufen gebracht hatte und die Ausgabe vor mir sah, wusste ich, dass Jack richtig gelegen hatte. Just in diesem Moment kam dann auch der Obduktionsbericht herein. Und das Ergebnis übertraf alle Erwartungen. Die neue Pathologin war nicht nur schnell, sondern auch extrem genau. Neben den allgemeinen Informationen stachen mir folgende Punkte im Obduktionsbericht ins Auge:
• „Im Oberschenkel eine mit Rizin gefüllte Platin-Iridium-Kugel … „
• „Mikrochip im Oberarm, beschriftet mit „MBGF““
• „unerklärliche Quetschungen an multiplen inneren Organen, die ursächlich für den Tod sind“

Damit war meine Aufgabe klar. Ich konnte das Programm wegen der Versionshistorienverwaltung nicht löschen, aber wenn ich ein paar Programmzeilen einfüge um die verdächtigen Pixel zu eliminieren, kann Jacks Kollege morgen früh nichts Verdächtiges mehr finden. Danach nur noch schnell den Beutel, der den Regenschirm, die Puppe mit Jacks Haarlocke und den Ausweis von Dr. Hyde enthält vernichten. Und ich sollte die Pathologin aufsuchen und ihr den Neuralyzer vorführen.


Eure Aufgabe diesmal: Schickt mir einen Screenshot von der Ausgabe und markiert die eliminierten Pixel – ich werde diese Information dann an die Gruppe weiterleiten. Und damit ich weiß, dass ich euch trauen kann, benötige ich ein paar Nagelreste von eurer letzten Maniküre.
Der Screenshot müsste etwas folgendermaßen aussehen – nur deutlich schärfer.
Unbenannt.png
Viel Spaß beim Knobeln.


Anlage: Jacks Programmcode

P.S. Wer mir eine korrekte Analyse zuschickt inkl. der gemachten Enthüllung bekommt eine korrekte Version des Programms mit meiner kommentierten Fehlerliste.

P.P.S. Ihr könnt gerne in diesem Thread Anmerkungen zu Jacks Programmierstil machen und euren Lieblingsfehlern. Aber bitte nur Andeutungen und nicht verraten wo im Code die Fehler stecken. Und ganz wichtig - die Enthüllung nur sehr vage andeuten hier im Forum. Ist besser für alle....

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ewx

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de


Re: Knobelaufgabe - Advent 2021

Beitrag von ewx (Top Expert / 4472 / 236 / 505 ) »
Uiuiui, da hast du ja echt ein "Meisterwerk" übernommen!
Klassiker: PERFORM-Aufrufe aus Methoden heraus. Etliche SAP-Demoprogramme machen es ja vor...

Bei den ganzen Unzulänglichkeiten fragt man sich wirklich, wie Jack überhaupt so weit gekommen ist.

Ich habe nun immerhin die ganzen Syntaxfehler und Shortdumps eliminiert. War echt ein hartes Stück Arbeit.

Mal sehen, ob ich jetzt noch die Logiklücken finde...
Vielleicht hat jemand einen Tipp?

Re: Knobelaufgabe - Advent 2021

Beitrag von ewx (Top Expert / 4472 / 236 / 505 ) »
Mein "Weihnachtsbaum" sieht noch ein bisschen unförmig aus und ich finde nicht, wo der Fehler sein könnte...
SNAG-0225.png

Re: Knobelaufgabe - Advent 2021

Beitrag von black_adept (Top Expert / 3701 / 78 / 771 ) »
Kleiner Nachtrag, da ich - bis auf Ennos Posting hier - keine Rückmeldungen erhalten habe.

Jack hat in das Programm 24 Fehler eingebaut für euren persönlichen ABAP-Debug-Weihnachtskalender.
Knapp die Hälfte davon sind reine Syntaxfehler - aber einige davon sind schon gemein und die meisten davon können im täglichen Gebrauch auftauchen und ich bin bestimmt in jeden dieser Fehler schon mehrfach reingetappt.
Die nächste Hälfte sind kleine Denkfehler die dummerweise zu einem Dump beim Ablauf des Programms führen. Auch hier gilt: Die Absturzursache ist i.A. sehr nahe der Absturzstelle zu finden. Meist ein paar Zeilen vor dem Dump oder im Aufruf der vorherigen Modularisierungseinheit. Es gibt m.E. nur eine Ausnahme, wo die Ursache deutlich früher liegt. Und hier gebe ich mal einen Tipp: " X sollte immer positiv sein: Negative Werte und 0 führen zum Dump und hier muss die Methode/FORM gefunden werden, in der die falschen Werte erzeugt werden und dann der Grund warum der scheinbar korrekte Code sich doch falsch verhält ).
Der dritte Teil sind dann kleine Denk- und Schreibfehler, die die Ausgabe verunstalten. Wenn ihr euch z.B. Ennos Ausgabe anschaut ( er hat es scheinbar geschafft die Syntaxfehler und Dumps zu entsorgen ) sieht man dort viele orange Doppelpunkte und ein paar grüne Punkte. Orange = Stamm, Grün = Nadeln ( ich glaube das gibt einen Hinweis was wohl die Ausgabe sein könnte ) - aber die Anordnung ist sehr komisch und der Stamm sollte nur 3 Zeichen breit sein und nicht über die volle Breite des Bildes gehen.

Der Sinn dieser Knobelaufgabe ist die eigenen Debuggingsinne zu schärfen - und ich glaube, dass ihr hier viele Standardfehler und einfach unglaublich schlechte Programmierung und die daraus resultierenden Fehler sehen könnt.
Und wenn hier über die Aufgabe diskutiert würde, könnte ich endlich mitbekommen, wer zur "Gruppe" gehört.... Und ich tippe mindestens Enno könnte einen Tipp geben, wenn ihr einfach nicht an einem der Dumps oder Syntaxfehler vorbeikommt...

P.S.: Die "2 Pixel" von denen Jack spricht müssen auch nicht mit der Lupe gesucht werden. Wenn ihr die Ausgabe vor euch habt, sind die sehr! sichtbar - ihr müsst nur wissen warum genau diese Pixel "mein Problem" sind.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelaufgabe - Advent 2021

Beitrag von Thomas R. (Expert / 723 / 58 / 30 ) »
Hallo Stefan,
wir sind hier mit einem Wechsel vom lokalen SAP-System zum Konzern-SAP-System völlig ausgelastet. Die dafür notwendige Arbeit lässt keine Zeit für diese interessante Aufgabe ;-(.
Gesegnete Weihnachten!
Thomas R.

Re: Knobelaufgabe - Advent 2021

Beitrag von black_adept (Top Expert / 3701 / 78 / 771 ) »
Moin Thomas,
das Geheimprojekt kann auch später noch gefunden werden, wenn mal wieder mehr Zeit ist.
Das Ganze sollte auf jeden Fall Spaß machen....
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelaufgabe - Advent 2021

Beitrag von IHe (ForumUser / 95 / 26 / 29 ) »
Moin Stefan,

vielen Dank für die Knobelaufgabe und fühle dich nicht entmutigt wegen fehlender Rückmeldungen. Mir geht es ähnlich wie Thomas - nur dass es bei uns als Dienstleister eher um dem Wettlauf geht, was noch an Projekten im aktuellen Jahr fertiggestellt werden kann. Ab Mitte nächster Woche wird es dann wieder ruhiger :)
Ingo Hoffmann

ECC|S/4HANA|BTP
dbh SAP Solutions

Re: Knobelaufgabe - Advent 2021

Beitrag von black_adept (Top Expert / 3701 / 78 / 771 ) »
Ich werde hier von Zeit zu Zeit noch mal darauf hinweisen, dass bisher noch niemand die 24 Fehler gefunden und dann das Geheimprojekt entlarvt hat.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Knobelaufgabe - Advent 2021

Beitrag von Murdock (ForumUser / 94 / 39 / 1 ) »
Meine vergangene und zukünftige Weihnacht sieht so aus, wie sie aussehen sollen, würde ich mal sagen. Leider kommt bei der gegenwärtigen Weihnacht nichts raus. Über einen kleiner Tipp würde ich mich freuen ;-)
EDIT: Hat sich erledigt. Stundenlang gucke ich mir den Code an und probiere alles Mögliche aus. Dann schreibe ich hier die Bitte nach einem Tipp und 10 Minuten später sehe ich "es" plötzlich.
Danke.

Re: Knobelaufgabe - Advent 2021

Beitrag von Murdock (ForumUser / 94 / 39 / 1 ) »
Sorry, @black_adept, ich will nicht nerven, aber ist meine PN angekommen (ich sehe sie nämlich nur im "Postausgang" und nicht bei "Gesendet")?

Re: Knobelaufgabe - Advent 2021

Beitrag von black_adept (Top Expert / 3701 / 78 / 771 ) »
Glücklicherweise haben sehr seltene Umstände dazu geführt, dass Murdock zwar Jacks Ausgabe reproduzieren konnte, aber er konnte heute das Geheimprojekt noch nicht enttarnen. Aber ich fürchte, dass er in ein paar Tagen darauf kommen wird - vielleicht mit eurer Hilfe.

Auf jeden Fall kann er Hinweise geben, falls jemand an einem oder mehreren der eingebauten Fehler hängen bleibt....
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

TABLES: Stern-Struktur
vor 4 Stunden von ralf.wenzel 4 / 307
Texte im Rechnungskopf
vor 2 Tagen von JHM 7 / 74

Vergleichbare Themen

Knobelaufgabe ( Oktober 2021 )
von black_adept » 19.10.2021 12:19
Knobelaufgabe ( August 2021 )
von black_adept » 13.08.2021 14:17
Knobelaufgabe zum Wochenbeginn ( Mai 2021 )
von black_adept » 11.05.2021 16:21
Knobelaufgabe zum Wochenbeginn ( Juni 2021 )
von black_adept » 21.06.2021 16:29