ABAP IPSUM

Zum Wochenende mal ein Beitrag, der nichts mit ABAP zu tun hat und dann aber doch irgendwie…

ABAP IPSUM

Jeder kennt wahrscheinlich lorem ipsum, den Blindtext für Layouter.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Lorem ipsum sieht wie Latein aus, ist aber nur zufällig zusammengewürfeltes Kauderwelsch. Der Lorem ipsum Generator kommt immer dann zum Einsatz, wenn man – meistens für ein Layout – sehen möchte, wie das Layout mit Text aussieht.

Alternativen

Inzwischen haben sich viele Leute einen Spaß daraus gemacht, Alternativen zu lorem ipsum zu programmieren:

  • Samuel L. Ipsum
  • Cupcake Ipsum
  • Zombie Ipsum
  • Bacon Ipsum
  • Veggie Ipsum
  • und viele mehr

Programmierausflug

Aus unerfindlichen Gründen hatte ich die Idee, einen ABAP ipsum-Generator zu schreiben. Dank open source war das ziemlich einfach:

Auf github habe ich einen programmer ipsum Generator gefunden. Mein Dank geht an josh961, der diesen in Javascript geschrieben und auf github veröffentlicht hat.

Ich habe diesen einfach geklaut und anstelle der von josh961 verwendeten Sätze eigene, ABAP-typische Fragmente eingebaut. Die einzelnen Phrasen, Sätze oder Befehls-Teilstücke können sicherlich noch um einige ergänzt werden. Das Ergebnis ist aber schon mal nicht schlecht und für nix zu gebrauchen:

COLLECT itab ENDIF. LIKE TYPE REF TO DATA go_grid TYPE REF TO cl_gui_alv_grid. DELETE ADJACENT DUPLICATES DELETE ADJACENT DUPLICATES WHERE cl_gui_custom_container. OF OF cl_gui_custom_container. DATA go_grid TYPE REF TO cl_gui_alv_grid. TYPE REF TO IF DATA cl_gui_frontend_services. ENDIF. SELECT GET TIME. ASSIGNING FIELD-SYMBOLS() PERFORM sy-subrc = 0.

https://tricktresor.com/abapipsum/

ABAP ipsum 2.0

Als ich die ersten Absätze gesehen habe, kam gleich die Idee, dass ich eigentlich ein verschachteltes ABAP ipsum programmieren müsste, also z.B. SELECT (irgendeine zufällige Anzahl {1-4} von Felder FROM einer Standardtabelle (MARA, VBAK, T100, etc) INTO  eine von ein paar zufälligen internen Tabellen.

Genau so auch ein COLLECT gefolgt von einer zufälligen Tabelle oder new {irgendeine Klasse} ({irgendwelche Parameter}).

So viel Lust und Zeit habe ich dann allerdings auch nicht und so bleibt es bei der Idee.

Allerdings:

ABAP lint

Lars Hvam, der Programmierer, der im Alleingang die ABAP-Welt in den letzten zwei Jahren auf den Kopf gestellt hat, hat ABAP lint programmiert. Ein linter ist ein Programm zur statischen Codeanalyse. Hier kannst du ausprobieren, wie du einen Syntaxcheck für ein ABAP-Programm durchführen kannst, ohne dass ein ABAP System in der Nähe ist:

https://larshp.github.io/abaplint/

Nun könnte man vielleicht auf die Idee kommen, mit Hilfe von ABAP lint ein vollkommen sinnloses, aber syntaktisch korrektes ABAP Programm zu erzeugen, indem man sich durch zufällig ausgewählte Befehle den Syntaxbaum entlang hangelt… 🙂

REPORT.
SELECT abgru FROM vbap INTO TABLE @DATA(itab) WHERE uepos = '387444'.
CHECK sy-fdpos = 33.
LOOP AT VALUE string_table( ( 'Hanna' ) ( 'Egon' ) ( 'Hugo' ) ) INTO DATA(hurz).
  IF hurz = 'Egon'.
    BREAK-POINT.
  ELSE.
    GET TIME.
  ENDIF.
ENDLOOP.

Aber auf so schwachsinnige Ideen kommt höchstwahrscheinlich niemand…

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)