Best practice: BADI im Loop

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Best practice: BADI im Loop

Beitrag von ZF_SAPler (Specialist / 100 / 14 / 2 ) »
Hallo,
allgemeine Frage:

Was ist der best Practice, wenn man in einem Loop einen BADI implementieren muss?
Im Badi sollen neue Felder gelesen werden und geändert werden. Das heißt, man hätte einen bzw mehere Selects in einem LOOP.

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


Re: Best practice: BADI im Loop

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
Ich persönlich würde ein BADI mit zwei Methoden anlegen.
Die erste wird vor dem eigentlichen LOOP aufgerufen und bekommt die Tabelle des LOOPs übergeben.
Die zweite wird im LOOP aufgerufen und bekomment die aktuelle Zeile des LOOPs übergeben.

Jeder der das BADI implementiert kann dann aufgrund der Datenmenge des LOOPs entscheiden ob eine Vorselektion erfolgen muss oder nicht.

Natürlich sollte das BADI mehrfach implementierbar sein, damit man die einzelnen Modifikationsanforderungen besser unterscheiden sowie und ein- und ausschalten kann.

EDIT:
Optional vielleicht auch noch eine dritte BADI-Methode um nach dem LOOP etwaige Puffer löschen zu können.
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: Best practice: BADI im Loop

Beitrag von ZF_SAPler (Specialist / 100 / 14 / 2 ) »
a-dead-trousers hat geschrieben:
20.12.2022 15:00
Ich persönlich würde ein BADI mit zwei Methoden anlegen.
Die erste wird vor dem eigentlichen LOOP aufgerufen und bekommt die Tabelle des LOOPs übergeben.
Die zweite wird im LOOP aufgerufen und bekomment die aktuelle Zeile des LOOPs übergeben.

Jeder der das BADI implementiert kann dann aufgrund der Datenmenge des LOOPs entscheiden ob eine Vorselektion erfolgen muss oder nicht.

Natürlich sollte das BADI mehrfach implementierbar sein, damit man die einzelnen Modifikationsanforderungen besser unterscheiden sowie und ein- und ausschalten kann.

EDIT:
Optional vielleicht auch noch eine dritte BADI-Methode um nach dem LOOP etwaige Puffer löschen zu können.

Ich rede hier von einem StandardBADI, den der Kunde (also ich) dann ausimplementieren muss. Der BADI wird nur im LOOP aufgerufen .

Hier hat man bei großen Tabellen leider Performanceprobleme

Re: Best practice: BADI im Loop

Beitrag von jocoder (Specialist / 343 / 3 / 102 ) »
Performanceoptimierung in BADIs funktioniert genau so wie in anderen ABAP-Programmen. Man kann sich den Umstand zunutze machen, dass BADIs Singletons sind. SELECT-Statements, die unabhängig von dem Schleifendurchlauf sind, lassen sich beispielsweise in den Klassenconstructor packen oder eine vorgelagerte Methode wie a-dead-trousers meinte, sofern es sie gibt.

Sonst gelten die üblichen Regeln der Performanceoptimierung:
- anstatt SELECT * nur die Spalten selektieren, die wirklich gebraucht werden
- nur so wenig wie möglich, so viel wie nötig Zeilen selektieren (eventuell auf JOINs, SUBSELECTS oder SELECT-FOR ALL ENTRIES zugreifen, um nicht unötig viele Zeilen zu selektieren)
- Prüfen, ob der Zugriff über einen Datenbankindex erfolgt oder die Datenbank einen Full-Scan macht -> bei einem Full-Scan Datenbankindex anlegen
- bei CDS-Views keine Felder in der WHERE-Bedingung verwenden, für die eine Aggregatsfunktion, eine Fallunterscheidung oder eine SQL-Funktion zugrunde liegt

Falls mit diesen Methoden keine zufriedenstellende Performance erreicht werden kann, ist die letzte Möglichkeit die Erstellung einer Buffertabelle, die über einen perdiodischen Job oder bei der Verbuchung aus den Grundtabellen gefüllt wird.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1423
Views
0
Antw.
1428
Views
Best Practice zur Fremdfirmenverwaltung SAP HCM PA und OM
von tikemyson » 21.04.2017 15:48 • Verfasst in Human Resources
0
Antw.
1646
Views
Best Practice zur Fremdfirmenverwaltung SAP HCM PA und OM
von tikemyson » 21.04.2017 15:49 • Verfasst in Human Resources
1
Antw.
690
Views
NAST Druckprogramm Best Practice
von rob_abc » 25.04.2023 08:37 • Verfasst in ABAP® Core
0
Antw.
2815
Views
Best Practice IDOC Typen
von Basler84 » 13.07.2020 19:49 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1517
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8130