Direktzugriff auf Variablen fremder Funktionsbausteine

Hinweise, Tips und Tricks, FAQs - keine Anfragen!!
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Direktzugriff auf Variablen fremder Funktionsbausteine

Beitrag von Norbert (ForumUser / 52 / 0 / 0 ) »
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.
...........
Just do it !

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


Beitrag von Gast ( / / 0 / 3 ) »
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

Recht hast Du

Beitrag von Gast Norbert ( / / 0 / 3 ) »
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

Seite 1 von 1

Vergleichbare Themen

2
Antw.
1097
Views
Tips + Tricks & FAQs: Direktzugriff fremde Variablen
von comi_3 » 14.09.2007 11:42 • Verfasst in ABAP® Core
0
Antw.
670
Views
Funktionsbausteine für HR
von gmsdd » 29.03.2007 15:32 • Verfasst in ABAP® Core
12
Antw.
4732
Views
Funktionsbausteine
von Yixx » 05.01.2015 13:44 • Verfasst in ABAP® für Anfänger
1
Antw.
1457
Views
Funktionsbausteine
von jharris » 22.10.2009 16:45 • Verfasst in ABAP® für Anfänger
3
Antw.
1784
Views
Funktionsbausteine
von KleinerEisbaer » 14.09.2007 14:03 • 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.