Direktzugriff auf Variablen fremder Funktionsbausteine

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!

Direktzugriff auf Variablen fremder Funktionsbausteine

Postby Franka3524 » Mon Nov 15, 2004 2:44 pm

Es ist möglich per Pointer auf globale Variablen eines anderen Programmes bzw. einer Funktionsgruppe direkt zuzugreifen.

Damit ist es möglich, SAP-FB´s gezielt mit Daten zu versorgen, ohne den gesamten Kontext verstehen zu müssen.

Das Programm/die Funktionsgruppe muss vor dem Zugriff mindestens einmal aufgerufen worden sein (z.B. durch Dummy-Aufruf eines zugeordneten Funktionsbausteins).

Der Zugriff erfolgt dann über Pointer:
(Coding)

* Definieren einer lokalen Struktur mit Typ auf Wunschstruktur des Fremdprogrammes
data: ls_data type ext_prog_struc.

* Pointer zum Zugriff auf externe Daten
field-symbols: <pointer_2_foreign_prog_struc>.
...

* Eventuell ist hier ein (Dummy-)Aufruf eines Funktionsbausteines bzw. eine Transaktion oder eines Programmes aus der betroffenen Funktionsgruppe/Kontext nötig, damit die externe Variable im Rollbereich angelegt wird und somit zugegriffen werden kann.
...

* Zuweisung der Variablen ?VARIABLE? des Fremdprogrammes ?SAPLXXXX? zu Pointer
assign (?(SAPLXXXX)VARIABLE?) TO <pointer_2_foreign_prog_struc>.

* Zugriff auf Inhalt der Fremdvariable über Pointer
ls_data = <pointer_2_foreign_prog_struc>.
write:/ ls_data-number.



Viel Spass damit.
N.
Franka3524
..
..
 
Posts: 52
Joined: Mon Nov 15, 2004 2:44 pm

Postby Alva1590 » Tue Jan 04, 2005 6:05 pm

Hallo,

ja, so oder so ähnlich geht es.

Aber ein Tip an alle: Bitte nichts REINSCHREIBEN!!!

Schon das Auslesen von Variablen auf diese Art und Weise ist nur das allerletzte Nothilfsmittel um 5 nach 12. (Meist braucht man das im SD, denn es geht auch bei Programmen und sogar bei Abap-OO ...).

Aber einem Programm zwischen zwei Aufrufen was "unterzujubeln" ist schon ziemlich "harakiri".
Wenn Du das machst, und das gilt nicht nur für meine Programme, zerstörst du den Kontextzusammenhang, der im Programm zwischen mehreren Variablen, Tabellen etc. besteht.

Von daher ist die Anmerkung "... ohne den gesamten Kontext verstehen zu müssen ..." völlig falsch.

Wenn man so etwas macht (hineinschreiben) muß man den Kontext noch besser verstanden haben, als der Programmierer.

Fast immer bekommt man das was man will mit Standardmitteln oder "Standardhilfsmitteln" hin.

Gruß
babap
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Recht hast Du

Postby Allegra1585 » Tue Jan 04, 2005 6:13 pm

Hi,

stimmt, die Aussage
"... ohne den gesamten Kontext verstehen zu müssen ..." ist tatsächlich nicht ganz richtig.

Es sollte heissen: Ohne sämtliche Prozess-schritte, die der gewünschten Funktion vorangehen, kennen zu müssen.
Natürlich muss man die Funktionalität verstanden haben - aber ohne dieses Verständnis wird man hier auch kein sinnvolles Ergebnis erzielen können.

Natürlich ist die reine Lehre immer schöner - nur
muss der Aufwand i.d.R. begrenzt sein und die SAP-
Doku ist leider auch nicht immer ganz vollständig :lol:

und schliesslich bewegen wir uns hier in der Rubrik
Tipps & Tricks :D

Viele Grüsse
Norbert
Allegra1585
.
.
 
Posts: 2
Joined: Tue Jan 04, 2005 6:13 pm


Return to Tips + Tricks & FAQs

Who is online

Users browsing this forum: No registered users and 10 guests

cron