Dynamisierung (Experten gefragt!!!)

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Dynamisierung (Experten gefragt!!!)

Beitrag von Beni (ForumUser / 39 / 0 / 0 ) »
Hallo Zusammen,

ich möchte folgendes realisieren.

Ich habe eine Klasse, die eine Tabelle auswertet und so entscheidet, welche Verarbeitung anzustoßen ist. Dies kann entweder eine XSL-Transformation sein oder eine beliebige Methode einer beliebigen Klasse.

Ich habe für den zweiten Fall dann nur den Klassen- und den Methodennamen. Wie man die Klasse dynamisch instanziiert und die Methode aufruft habe ich schon herausgefunden. Mein Problem liegt bei den Parametern. Auch diese müssen natürlich dynamisch aufgebaut werden, da diese von Methode zu Methode differieren können. In der Tabelle 'SEOSUBCODF' stehen alle Parameter zu einer Methode.

Wie kann ich den Methodenaufruf aufbauen, das er mir aus den Tabelleneinträgen die Paramter generiert. Wie lege ich entsprechende "Empänger" in der Methode, welche die zur Laufzeit ermittelte Methode aufruft an?

Ich hoffe Ihr habt mein Problem verstanden!

Gruß und vielen Dank im vorraus,
Beni

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


Beitrag von ewx (Top Expert / 4843 / 311 / 638 ) »
Hi Beni,

schau dir mal das Kapitel "Dynamische Programmgenerierung" an:
http://help.sap.com/saphelp_46c/helpdat ... ontent.htm

Das ist nicht sehr elegant, aber ich denke, anders ist da keine Dynamisierung hinzubekommen...
kmwifl (korrigiert mich, wenn ich falsch liege!)

Gruß, Enno.

Schon versucht

Beitrag von Beni (ForumUser / 39 / 0 / 0 ) »
Hallo Enno,

mit dem GENERATE habe ich es schon versucht. Das Problem ist, dass ich dann die Parameter nur im Dynamischen Programm zur Verfügung habe. Ich benötige sie aber ja in der aufrufenden Methode. Oder lässt sich da was drehen?

Gruß
Beni

Beitrag von Gast ( / / 0 / 3 ) »
Hi Beni!
Beni hat geschrieben:Ich benötige sie aber ja in der aufrufenden Methode.
Aber den Aufruf der Methode kannst du dir doch in eine Form-Routine basteln und dann diese aufrufen...
Also in etwa:

Code: Alles auswählen.

case type.
when 'A1'.
  klasse  = 'CL_klasse1'
  instanz = 'inst1'.
  methode = 'Method_abc'.
when 'A2'.
  klasse  = 'CL_klasse2'
  instanz = 'inst2'.
  methode = 'Method_123'.
when ....
endcase

Parameter aus SEOSUBCODF lesen
concatenate 'Call Method' 
            instanz '=>' methode into coding_tab.
append coding_tab.
append 'Exporting' to coding_tab.
...Parameter bestücken.

Subroutine generieren
Subroutine aufrufen
     
Oder habe ich dein Problem falsch verstanden?

Gruß, Enno

Beitrag von Gast ( / / 0 / 3 ) »
Ist man jetzt schon Experte, wenn man die F1-Taste findet?
Der Zusatz PARAMETER-TABLE itab scheint genau das zu sein, was Du suchst.

Dynamic

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
Nicht ganz verstanden.
Eigentlich hast Du doch alles, was Du brauchst.
Klassenname, Methodenname und kennst hierzu alle
Parameter aus der Tabelle SEOSUBCODF.

Dann nur noch die Parameter analog zur Hilfe aufbauen und fertig !?

DATA number TYPE i VALUE 5.
DATA f(3) TYPE c VALUE 'MOVE_NODE'.
DATA: ptab TYPE abap_parmbind_tab,
ptab_line LIKE LINE OF ptab.

* Aufbau Parameterrabelle zur Methode
ptab_line-name = 'P1'.
ptab_line-kind = CL_ABAP_OBJECTDESCR=>EXPORTING.

*Für den Wert des Aktualparameters muß die Referenz *VALUE der Tabellenzeile auf ein Datenobjekt zeigen, *das den gewünschten Wert enthält. Hierfür kann der *Befehl GET REFERENCE OF f INTO g verwendet werden.

GET REFERENCE OF number INTO ptab_line-value.
INSERT ptab_line INTO TABLE ptab.

CREATE OBJECT r TYPE c1.
CALL METHOD r->(f) PARAMETER-TABLE ptab.

Norbert
...........
Just do it !

Seite 1 von 1

Vergleichbare Themen

1
Antw.
1478
Views
Dynamisierung von Schleife
von dvdh1979 » 05.06.2015 12:07 • 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

Daten an Tabelle binden
vor 4 Stunden von Bright4.5 1 / 96
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1740
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8345