interne Tabellen

Alles Rund um SAP®.
18 Beiträge • Seite 1 von 2 (current) Nächste
18 Beiträge Seite 1 von 2 (current) Nächste

interne Tabellen

Beitrag von siegenthalere (ForumUser / 2 / 0 / 0 ) »
Ist es möglich, aus einem Report heraus eine interne Tabelle eines zweiten Reportes zu lesen?

Is there a way to read an internal table from report B from within a report A?

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


Beitrag von qman ( / / 0 / 3 ) »
Gruezi :-),

nein, das ist so ohne weiters nicht möglich. Das geht nur, wenn der Report entsprechende 'Schnittstellen' zur Verfügung stellt, so dass die interne Tabelle übergeben werden kann, z.B. mit einem entsprechenden perform in dem report, in dem die Tabelle ausgelesen werden soll. Unter Umständen muss man dann halt eine form-routine in report B einbauen (u.U. modifizieren), die dann die interne Tabelle übergibt. Die Form routine wird dann von Report A aus aufgerufen.

qman

2 Reports??

Beitrag von Micha_AB (ForumUser / 10 / 0 / 0 ) »
Hallo,

ich versteh hier etwas nicht ganz.... Verwechselst du vielleicht Funktionbaustein mit Report? Oder rufst du von einem Report mittels SUBMIT einen anderen Report auf?
Falls ersteres zutrifft, so kann man mit Hilfe eines Feldsymbols globale Daten aus einer anderen Funktionsgruppe auslesen.

Gruss

Michael

ABAP-Memory

Beitrag von Angelika ( / / 0 / 3 ) »
Wenn Du das andere Programm modifizieren darfst, kannst Du via EXPORT und IMPORT Daten im transaktionsgebundenen ABAP-Memory ablegen (Details siehe SAP-Doku).

Beispiel:
Exportierendes Programm, das die einzulesenden Daten beinhaltet:
DATA: itab1 TYPE STANDARD TABLE OF vbak.

EXPORT itab1 TO MEMORY ID 'NAME'.

Importierendes Programm, das Daten einlesen soll:
DATA: itab2 TYPE STANDARD TABLE OF vbak.

IMPORT itab1 TO itab2 FROM MEMORY ID 'NAME'.

Es grüsst Dich
Angelika

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Hi,

schau mal unter
http://www.tricktresor.de/?navID=106&aID=56

Zusätzlicher Hinweis:
Um auf den gesamten Tabelleninhalt zugreifen zu können, muss hinter dem Tabellennamen [] stehen.

Bsp:
itab1[] = itab2[].

Enno.

Beitrag von Gast ( / / 0 / 3 ) »
Der Link funktioniert nicht, man muss registriert sein. :roll:

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Da steht aber auch, dass man sich kostenlos registrieren kann...
Besitzen Sie noch keine Zugangsdaten?
Hier können Sie sich für die Nutzung kostenlos und unverbindlich registrieren. Selbstverständlich werden wir Ihre Daten NUR für interne Zwecke benutzen
und NICHT and Dritte weitergeben.
Gruß, Enno. :wink:

Beitrag von Gast ( / / 0 / 3 ) »
Besitzen Sie noch keine Zugangsdaten?
Hier können Sie sich für die Nutzung kostenlos und unverbindlich registrieren. Selbstverständlich werden wir Ihre Daten NUR für interne Zwecke benutzen und NICHT and Dritte weitergeben.
...und an das fettgedruckte kann ich nicht glauben. :roll:

Jeder schreibt es, nur woher bekommen bestimmte "Firmen" meine E-Mail-Adresse her?

Klar, kann ich auch eine "anonyme" e-Mail-Adresse angeben mit der niemand was anfangen kann, ausser die Spammailer.

ABER wozu muss ich mich denn dann überhaupt registrieren???

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Hallo Gast!

Das ist eigentlich nicht der richtige Ort, das zu diskutieren, da mir die Verantwortlichen von ABAPFORUM.COM noch keine Rückmeldung über eine Zusammenarbeit gegeben haben...

Trotzdem:
Woher einige Leute meine E-Mail-Adresse haben, frage ich mich allerdings auch...
Es gibt zwei Gründe, warum wir uns entschlossen haben, die Inhalte nur für registrierte User zugänglich zu machen:
1. Es gibt noch kein vergleichbares System zum Thema R/3, in dem die Hinweise und Hilfen redaktionell aufbereitet werden. Deswegen möchten wir gerne Informationen darüber erhalten, wie viele User sich denn tatsächlich dafür interessieren.
2. Dies ist eigentlich der wichtigere Grund: Im Tricktresor gibt es die Funktion "Artikel empfehlen" auf jeder Seite. Hierfür benötigen wir eine gültige E-Mail-Adresse, damit niemand unter falscher E-Mail-Adresse, die von unserer Domain versendet wurde, beleidigende E-Mails verschickt werden können.

Natürlich kann man sich auch mit einer getürkten E-Mail-Adresse anmelden und dann das System trotzdem missbrauchen, aber es ist zumindest eine kleine Hemmschwelle.
Auch die Funktion "Artikel empfehlen" könnte man nur für registrierte User zugänglich machen. Haben wir aber nicht.
Und man kann auch in einem Forum einen bereits registrierten User mit Kennwort bekannt geben. Das finde ich natürlich unfair und hoffe, dass die meisten Leute ehrlich sind, unsere Arbeit unterstützen, Gefallen am Tricktresor haben und vor allen Dingen Hilfe finden.

Ich versichere hier noch einmal, dass wir die Registrierungs-Daten nicht verteilen werden!!! :!:

Wenn uns jemand nicht traut: Es ist ja keine Pflicht, sich anzumelden und tolle Tricks anzusehen!

Enno.

Damit aber auch skeptische User erfahren, wie das mit dem Zugriff funktioniert:
Mit einem "Dirty Assign" kann man auf Daten zugreifen, auf die man eigentlich keinen Zugriff hat...

Mit dem "Dirty Assign" haben Sie die Möglichkeit, auf Variablen und Strukturen von rufenden Programmen zuzugreifen, die nicht zur Verfügung stehen.

Dies macht eventuell dann Sinn, wenn Sie einen Funktionsbaustein aufrufen und innerhalb dieses Funktionsbausteins eine Variable verwendet wird, die aber nicht als Exporting-Parameter zurückgegeben wird.

Sie können so auch in einem per externem PERFORM aufgerufenen Routine auf Variablen des gerufenen Programms zugreifen.

Das folgende Beispiel soll dies verdeutlichen.

Als erstes wird ein Funktionsbaustein ausgeführt, der lediglich eine nur in der Funktionsgruppe bekannte Variable setzt. Diese wird durch den Dirty Assign ermittelt.
Danach wird eine externe Routine aufgerufen, die auch nur eine -- nur in diesem Programm bekannte -- Variable setzt.
Funktionsbaustein ZTEST

FUNCTION ZTEST.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"----------------------------------------------------------------------

fb_testvar = 'Trick17'.

ENDFUNCTION.



Programm ZZENNO13

*&---------------------------------------------------------------------*
*& Report ZZENNO13 *
*& *
*&---------------------------------------------------------------------*
REPORT zzenno13.

DATA testvar(12).

START-OF-SELECTION.

PERFORM test.
WRITE: / testvar.

*---------------------------------------------------------------------*
* FORM test *
*---------------------------------------------------------------------*
FORM test.
testvar = 'Tricktresor'.
ENDFORM.



Der Dirty Assign

REPORT zzenno12 NO STANDARD PAGE HEADING.

*-- Das Feldsymbol, dem der Wert zugewiesen wird
FIELD-SYMBOLS: <ptr>.

START-OF-SELECTION.

*-- Aufruf des Funktionsbausteins
*-- Hier wird die Variable FB_VARIABLE_GLOBAL gesetzt
CALL FUNCTION 'ZTEST'.
*-- Den Wert zuweisen
ASSIGN ('(SAPLZSTRUC)FB_TESTVAR') TO <ptr>.
*-- und ausgeben
WRITE: / 'Wert der Funktionsbaustein-Variablen FB_TESTVAR:',
AT 50 <ptr>.

*-- Aufruf eines externen Programms:
*-- Hier wird die Variable TESTVAR verwendet.
PERFORM test(zzenno13).
*-- Nun die Feldwerte ermitteln:
ASSIGN ('(ZZENNO13)TESTVAR') TO <ptr>.
*-- und ausgeben
WRITE: / 'Wert der Submit-Variablen TESTVAR:', AT 50 <ptr>.

Ausgabe

Wert der Funktionsbaustein-Variablen FB_TESTVAR: Trick17
Wert der Submit-Variablen TESTVAR: Tricktresor

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

irgendwie muß ich doch noch mal fragen: Wozu brauchst Du das?

Wenn Du das Folgeprogramm aufrufst, könnte es etwas zurückgeben, oder irgendwo abstellen (s.o.).

Wenn Du aufgerufen wirst, sollte das Caller-Programm dir gefälligst die Daten übergeben.

Mental ist es wirklich interessant, welche Möglickeiten es hinter den Kulissen von ABAP gibt ...

Ich hätte aber große Bedenken solch eine "tricky" Lösung in den Produktivbetrieb zu übernehmen.

mfg.
babap

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
Tja babab,

manchmal muss eben einfach eine Lösung her... Und dieser Dirty Assign hat mir schon mindestens zweimal weitergeholfen.

Enno

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hi ewx,

ok, ok. Brauchst keine Geheimnisse auszuplaudern.

So richtig geheim ist diese Form des ASSIGN nicht. Sie steht sogar in der Dokumentation zum dynamischen Assign in der Online-Hilfe.

mfg.
babap

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
babap hat geschrieben:Hallo,

irgendwie muß ich doch noch mal fragen: Wozu brauchst Du das?

Wenn Du das Folgeprogramm aufrufst, könnte es etwas zurückgeben, oder irgendwo abstellen (s.o.).

Wenn Du aufgerufen wirst, sollte das Caller-Programm dir gefälligst die Daten übergeben.

Mental ist es wirklich interessant, welche Möglickeiten es hinter den Kulissen von ABAP gibt ...

Ich hätte aber große Bedenken solch eine "tricky" Lösung in den Produktivbetrieb zu übernehmen.

mfg.
babap
die einfachste Form der Anwendung ist er Fall, dass Du Standardbausteine nicht modifizieren willst oder darfst, die Daten aber nicht über eine Schnittstelle zur Verfügung stehen.

Man sollte aber sehr restriktiv mit dieser Form des Zugriffs arbeiten und beim schreibenden Zugriff sich sehr sicher über die Konsequenzen sein.

Weiterhin funktioniert dieser Trick m.W. nur bei globalen Variablen.

Beitrag von Gast ( / / 0 / 3 ) »
ereglam hat geschrieben:die einfachste Form der Anwendung ist er Fall, dass Du Standardbausteine nicht modifizieren willst oder darfst, die Daten aber nicht über eine Schnittstelle zur Verfügung stehen.

Man sollte aber sehr restriktiv mit dieser Form des Zugriffs arbeiten und beim schreibenden Zugriff sich sehr sicher über die Konsequenzen sein.

Weiterhin funktioniert dieser Trick m.W. nur bei globalen Variablen.
Dann soll man gefälligst den Standaerd modifizieren.
Dann wird man wenigstens nach einem Upgrade mit der Nase darauf gestoßen, dass man vielleicht mal prüfen muss, ob das bisherige Vorgehen noch funktioniert.
(Das Ändern von globalen Variablen, deren Änderung vom SAP-Standard an der Stelle nicht erwartet wird, ist oft eine geeignete Art, sich ins Knie zu schießen.
Ideal v.a., wenn man erst nach Monaten merkt, dass inkonsistente Daten die Folge sind.)

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
Anonymous hat geschrieben:
ereglam hat geschrieben:die einfachste Form der Anwendung ist er Fall, dass Du Standardbausteine nicht modifizieren willst oder darfst, die Daten aber nicht über eine Schnittstelle zur Verfügung stehen.

Man sollte aber sehr restriktiv mit dieser Form des Zugriffs arbeiten und beim schreibenden Zugriff sich sehr sicher über die Konsequenzen sein.

Weiterhin funktioniert dieser Trick m.W. nur bei globalen Variablen.
Dann soll man gefälligst den Standaerd modifizieren.
Dann wird man wenigstens nach einem Upgrade mit der Nase darauf gestoßen, dass man vielleicht mal prüfen muss, ob das bisherige Vorgehen noch funktioniert.
(Das Ändern von globalen Variablen, deren Änderung vom SAP-Standard an der Stelle nicht erwartet wird, ist oft eine geeignete Art, sich ins Knie zu schießen.
Ideal v.a., wenn man erst nach Monaten merkt, dass inkonsistente Daten die Folge sind.)
es gibt aber Kunden, die sich lieber ins Bein schießen lassen, als Modifikationen zu dulden... :roll:

PS: ich hoffe, aus meinem Posting geht hervor, dass ich ein solches Vorgehen zum Ändern von Daten nur als absolut letzte Notlösung angehen würde... :x
Lesend könnte ich mir schon vorstellen, es mal zu benutzen... :roll:

Vergleichbare Themen

3
Antw.
420
Views
4
Antw.
3415
Views
Interne Tabellen
von Fools » 19.01.2005 16:04 • Verfasst in ABAP® für Anfänger
8
Antw.
3554
Views
interne Tabellen
von niermaj » 20.07.2005 10:15 • Verfasst in ABAP® für Anfänger
1
Antw.
1171
Views
RFC und interne Tabellen
von Mr.Black » 23.01.2007 18:22 • Verfasst in ABAP® Core
4
Antw.
3391
Views
Interne Tabellen mit Key
von Nicole » 13.10.2004 11:04 • Verfasst in ABAP® für Anfänger

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.