Entwicklercontest ;) Wer findet das kürzeste Coding?

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin moin,

gegeben sei eine Reihe von Form-Routinen, die alle den gleichen Aufbau haben:

Code: Alles auswählen.

    PERFORM get_bla: USING 'AA01'
                    CHANGING gs_bla_aa01
                             gt_bli_aa01
                             gt_blubb_aa01.
Es gibt mehrere Forms, die jeweils mehrfach aufgerufen werden, so dass die Parameter dann auch mehrfach verwendet werden (was aus der einen FORM rauskommt, muss in die nächste FORM rein). Die FORM get_bla wird also für mehrere Fälle aufgerufen, von denen einer "AA01" ist. Was dar rauskommt, wird dann für eine weitere FORM verwendet (get_plitsch....).

Folge ist eine Folge von Blöcken mit jeweils fast identischen PERFORMs.

Hier entbrennt gerade ein Wettstreit, wer das kürzeste und dynamischste Coding erstellt. Vorschläge sind willkommen ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich bin froh, daß Du nicht meine Entwicklungsanforderungen erstellst.

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Warum?

Hier gehts nicht um eine konkrete Entwicklungsanforderung, sondern um das kürzeste, dynamischste Coding. Lesbarkeit ist hierbei übrigens _kein_ Kriterium (wenngleich man es nicht grundlos unlesbar machen sollte).

Nenn es einfach "Spaß an der Arbeit" ;)
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hmm -- aus den aktuellen Postings werde ich nicht schlau. Gib mal eine Beispiellösung, die das implementiert was du beschrieben hast - vielleicht klärt mich das auf.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
black_adept hat geschrieben:Hmm -- aus den aktuellen Postings werde ich nicht schlau. Gib mal eine Beispiellösung, die das implementiert was du beschrieben hast - vielleicht klärt mich das auf.
Naja, ne schriftliche Beispiellösung in der Form habe ich nicht. Ein Vorschlag war, dass man die Tabellen für USING und CHANGING nicht hart deklariert, sondern dynamisch im Programm deklariert, zusammengesetzt aus einem festen Teil des Namens (GT_BLA) und der Fallnummer (_AA01), weil dieselbe Form-Routine 20 Mal durchlaufen werden soll, wobei sich die Namen der USING/CHANGING-Paramter nur in der Fallnummer unterscheiden.

Ich frag mich gerade, ob man nicht mit Feldsymbolen noch mehr machen kann.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
hi

Meinst du sowas in der Form? Nur die Aufrufe betreffend, ohne die Performs genauer zu kennen?

Code: Alles auswählen.

DEFINE call_perform.
  PERFROM get_&1 USING '&2' CHANGING gs_bla_&2 gt_bli_&2 gt_blubb_&2
END-OF-DEFINITION.

DEFINE call_perform_case.
  call_perform bli &1.
  call_perform bla &1.
  call_perform bl2 &1.
END-OF-DEFINITION.

call_perform_case AA01.
call_perform_case AA02.
Und das ganze soll dann auch so dynamisch wie möglich sein?

lg ADT

EDIT: Verdammtes Markup! Alle & sind natürlich nur als ein & zu sehen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Moin,

so die Richtung. Jetzt noch ein "DO/ENDDO" drumrum, damit wir nur noch einen PERFORM haben ;) Ich persönlich habe ja eine tierische Aversion gegen Makros.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Hallo Ralf,

und wo soll denn da noch ein Contest sein? ,
Feldsymbole drängen sich bei der Aufgabenbeschreibung ja schon fast auf - und eine Lösung mit ihnen wäre gut lesbar ,kurz und makrofrei ( auch wenn ich nichts gegen sinnvoll eingesetzte Makros habe )
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Hätt ja sein können, dass wem noch was Kürzeres einfällt. Ich hab gesagt: Do-Schleife, Feldsymbolnamen zusammenbauen, Feldsymbol auf Parameter zeigen lassen und fertig. Ich kann mir aber nicht vorstellen, dass es nicht nochwas eleganteres gibt.... Insbesondere müsste man ja die ganzen itabs dann doch noch "hart" deklarieren.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Ich hab ja auch was gegen Makros, aber wenn ich dann das fünfte mal das beinahe gleiche Coding schreib und sich nur die Namen der Variablen ändern, dann ist es schon eine schöne Erleichterung.

Aber in deinem Fall finde ich, dass das wirklich die kürzeste Variante ist.

Die Alternative mit Feldsymbolen hat den Hacken, dass für die Zuweisung schon mal mindestens vier Zeilen draufgehen:
- Namen der tatsächlichen Variablen CONCATENATEn oder Anlegen mit CREATE DATA.
- Zuweisen an ein Feldsymbol.
- Prüfen ob alles geklappt hat.

Und wenn du dann noch die Laufbedingung "dynamisch" machen willst, brauchst du zwei Tabellen (Name der Subroutin und Durchzuführender Fall) die gefüllt werden müssen. Also bei einem Fall und einer Subroutine macht das 6 weitere Zeilen.

In Summe kommen so min 19 Zeilen zusammen. (Je nachdem wie lesbar natürlich umso mehr)

In diesem Fall überhaupt etwas dynamisch zu machen halte ich eher für sinnlos, da die Datenfelder ja sowieso statisch angesprochen werden müssen.
Da macht die "halbe" Dynamik das Programm nur unnötig kompliziert.

Außer du machst auch eine Verwaltung der Datenfelder mitrein.
Sprich du speicherst zusätzlich in einer Tabelle alle möglichen Feldnamen mit der jeweiligen Datenrefernz.
Aber das in der verlangten "Kürze" darzustellen würde hier sicherlich den Rahmen sprengen.

Ich hab das nämlich selbst schonmal programmiert:
Ein Ersatz für die SapScript-Verarbeitung in SmartForms und AdobeForms.
Die unterstüzt das volle Spektrum von SapScript, also auch die Performs die man in SapScript-Texten hinterlegen kann.
Die haben eine standartisierte Schnittstellen die vom SapScript-Composer vorgegeben ist.
So an die 5000 Zeilen Coding.
Rein für deine Anforderung würde ich schätzen, dass es mit ca. 100-500 Zeilen lösbar wäre.

Aber ich hab jetzt weder die Zeit noch die Muse das zu machen.
Vor Allem da kein Preis ausgelobt wurde ;)

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
a-dead-trousers hat geschrieben:hat den Hacken
*grusel* Haken. Hacken tut man mit der Hacke in der Hand. Und Hacken sind Teile von Füßen. "Einen Hacken" gibt es nicht.

Sorry, aber soviel Zeit muss sein. Inhaltlich kann ich dir vollumfänglich recht geben.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Entwicklercontest ;) Wer findet das kürzeste Coding?

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Stimmt! Daher gilt für alle meine Posts ab sofort:
wär (rechdschraip-)fälär Fiented Tarf Si Pehalden ;)
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

1
Antw.
428
Views
Datenbankabfrage findet keine Daten
von ABAPIN » 16.09.2021 12:05 • Verfasst in ABAP® für Anfänger
1
Antw.
692
Views
Wie findet man das Rahmenprogramm eines Infosets?
von DeathAndPain » 03.06.2019 12:44 • Verfasst in ABAP® Core
4
Antw.
2041
Views
In welcher Tabelle findet man die Bezeichnung zum ABAP
von Blueshape » 26.02.2008 16:32 • Verfasst in ABAP® Core
2
Antw.
1386
Views
Wie findet man einen einzelnen Buchstaben mit blanks?
von Max » 24.02.2005 14:14 • Verfasst in ABAP® Core
1
Antw.
1489
Views
Erstkundenrabatt vererben - wo findet Update statt?
von Immerlicht » 14.12.2007 09:39 • Verfasst in Sales and Distribution

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.