ABAP Clean Code

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
68 Beiträge • Vorherige Seite 5 von 5 (current)
68 Beiträge Vorherige Seite 5 von 5 (current)

Re: ABAP Clean Code

Beitrag von deejey (Specialist / 422 / 129 / 45 ) »
ralf.wenzel hat geschrieben:
26.05.2019 07:53
Ich verstehe die Frage nicht. Satz einlesen, XML zurück transformieren und mit dem so erhaltenen Datenobjekt arbeiten.
Es war gemeint wie wertest du das z.B. mit SQL/Query aus? Und wieso erinnert mich das an Satzarten vor 30 Jahren?

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


Re: ABAP Clean Code

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Das werte ich gar nicht mit SQL/Query aus. Ich hab doch gesagt, was für Daten da drinstehen.

Sieh einen solchen Satz als Container für beliebige Datenobjekte.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: ABAP Clean Code

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
black_adept hat geschrieben:
22.05.2019 09:50
Wann hat denn SAP irgendwann mal so etwas gemacht, dass ich auf die MARA ( oder irgend eine andere Standardtabelle ) nicht mehr lesend so zugreifen kann wie bisher.
[...]
Die Wahrscheinlichkeit, dass SAP die MARA so ändert, dass ich jemals meine Selects anpassen müsste halte ich für mehr als unwahrscheinlich.
Das passiert gerade mit S4/HANA...
Du darfst z.B. nicht mehr direkt auf die Preisfindungstabellen zugreifen, sondern musst eine API benutzen. Das sieht dann z.B. so aus:

Code: Alles auswählen.

TRY.
 cl_prc_result_factory=>get_instance( )->get_prc_result( )-
 >get_price_element_db_by_key(
 EXPORTING
 iv_knumv = komk-knumv
 IMPORTING
 et_prc_element_classic_format = hkomv ).
 CATCH cx_prc_result ##NO_HANDLER. "implement suitable error handling
ENDTRY.
In der Cloud (SAP Cloud Platform ABAP Environment) kannst du so gut wie gar nicht mehr auf irgendwelche SAP Tabellen zugreifen (Released Objects).

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 4):
ralf.wenzelIHeIcke0801moo_jo


Re: ABAP Clean Code

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Damit passiert endlich mal, was mich schon lange stört: Dass jeder Hinz und Kunz mit wirklich schlechten DB-Zugriffen überall drauf zugreifen darf. Diese API verbirgt übrigens nichts anderes als eine *tadaaaaa* generische Persistenzschicht ;)


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: ABAP Clean Code

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
ewx hat geschrieben:
05.06.2019 08:36
Das passiert gerade mit S4/HANA...
Du darfst z.B. nicht mehr direkt auf die Preisfindungstabellen zugreifen, sondern musst eine

In der Cloud (SAP Cloud Platform ABAP Environment) kannst du so gut wie gar nicht mehr auf irgendwelche SAP Tabellen zugreifen (Released Objects).
Bei S4 Cloud weiss ich es nicht, aber bei S4 On Premise kannst Du Dir ja in der ABAP Cloud Platform relativ einfach Deine eigene API bauen, in der Du dann natürlich Deine eigenen Selects basteln kannst.

https://blogs.sap.com/2019/03/01/how-to ... n-modules/

Viele Grüße, Tapio
...entwickelnder Berater...beratender Entwickler

Re: ABAP Clean Code

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Naja, das ist nichts anderes als ein Persistenzlayer.....


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: ABAP Clean Code

Beitrag von Icke0801 (Specialist / 126 / 97 / 7 ) »
Hallo Ralf,

vielen Dank für diese ausführliche Erklärung. Generell ja ein sehr spannendes und wichtiges Thema:

ralf.wenzel hat geschrieben:
20.05.2019 18:32
Sowas wie die WHERE-Bedingung wird dann aus den Inhalten von selkrit generiert.

Mich würde ja mal interessieren, wie selkrit deklariert ist, insbesondere um FOR ALL ENTRIES mitzugeben. Da hänge ich irgendwie.

Vielen Dank im voraus
--
Grüße aus der Endlosschleife
-= Icke =-
abapTools

Re: ABAP Clean Code

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
FOR ALL ENTRIES bedarf einiger Kniffe, weil wir auf die Notwendigkeit erst später kamen.

Lösen kann man das z. B. durch einen optionalen Parameter, der die Tabelle enthält oder eine zweite Methode read4all( ) die beide Parameter in der Schnittstelle hat, die Tabelle in einem Attribut speichert und dann die übliche read( ) aufruft.

selkrit ist vom Typ any. Dann muss man in der read-Methode erstmal folgende Schritte durchführen:

Ist es eine Struktur oder eine Tabelle? Wenn Tabelle: Von welcher Struktur?

Egal ob man eine oder mehrere Zeilen hat, muss man sodann für jedes Feld der Zeilenstruktur ermitteln, ob es ein Feld ist oder eine SelOpt-Struktur oder eine Selopt-Tabelle.

Je nachdem, was dabei rauskommt, ermittelt man die WHERE-Clause bzw. füllt die WHERE-Tabelle.

Da man das ja vererbt, kann man das hochgenerisch machen, dann schreibt man das Coding nur einmal für alle Tabellen.

Will man etwas anderes (weil man leere Selektionen zulassen will oder eine Clustertsbelle hat oder eine Stringtabelle mit GUID und XML, oder....), kann man redefinieren.


Ralf

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
Icke0801

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

3
Antw.
2297
Views
Diskussionsthema: Clean Code
von c oco » 19.07.2017 14:19 • Verfasst in SAP - Allgemeines
4
Antw.
3348
Views
PAP aus ABAP-Code
von BesenWesen » 21.06.2006 09:49 • Verfasst in ABAP® Core
1
Antw.
5023
Views
ABAP CODE ANALYSE
von Paradoxon5 » 22.12.2015 08:54 • Verfasst in ABAP® Core
1
Antw.
1799
Views
Testen von ABAP Code
von DavidHenn » 07.07.2011 10:27 • Verfasst in ABAP® Core
0
Antw.
1693
Views
RSA-Algorithmus im ABAP-Code
von stefan76 » 05.10.2006 17:31 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 768
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2390
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8975