Übergabe einer Tabelle an Unterprogramm

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Übergabe einer Tabelle an Unterprogramm

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
Hallo zusammen,

ich hab folgendes Problem. Ich rufe ein Unterprogramm auf und möchte eine itab übergeben.
Problem ich will eine itab dynamisch übergeben. Also ich kenn die Struktur dieser itab nicht.
Wie kann ich aber das unterprogramm anlegen wenn ich die Struktur nicht kenne.

Sowas wie

Code: Alles auswählen.

Form Test tables itab type standard table.
endform.
funktioniert ja nicht. hab es auch schon mit dem Changing - Parameter versucht aber auch leider kein Glück gehabt.

Achso nochwas ich rufe ein Unterprogramm aus einen anderen Report auf.

BITTE BITTE hilft mir einer weiter.

Gruß Steffi

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


Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
Hi,

du mußt using nehmen nicht tables:

Code: Alles auswählen.

Form Test using itab type standard table. 

Andreas
a s
s oon
a s
p ossible
h elp
http://www.clv.de/

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
danke aber das hab ich auch schon ausprobiert.
funktioniert aber auch nicht.
Dabei hab ich etwas festgestellt:

Aufruf eines unterprogramms im eigenen Report funktioniert so aber Aufruf eines Unterprogramms aus anderen Report funktioniert nicht.

Aufruf Unterprogramm eigener Report

Code: Alles auswählen.

Report Test_Report
Types: Begin of struc_it_test,
          name(20) type c,
          vorname(20) type c,
          alter type i,
        end of struc_it_test.

  data: it_test type standard table of struc_it_test,
        wa_test like line of it_test.

  wa_test-name = 'Ki'.
  wa_test-vorname = 'Steffi'.
  wa_test-alter = 20.
  append wa_test to it_test.

* Testen ob interner Form-Aufruf funzt
Perform test using it_test.

form Test using itab_test type any table.

 write: / 'so funzt es.'.

endform.

Mein Aufruf aus einer Methode heraus sieht so aus.

Code: Alles auswählen.

method SHIT_TEST .

  Data: code type table of rssource-line,
        str_help type string,
        var_u type string.

  Types: Begin of struc_it_test,
          name(20) type c,
          vorname(20) type c,
          alter type i,
        end of struc_it_test.

  data: it_test type standard table of struc_it_test,
        wa_test like line of it_test.

field-symbols: <wa_it> type standard table.

  wa_test-name = 'Ki'.
  wa_test-vorname = 'Steffi'.
  wa_test-alter = 20.
  append wa_test to it_test.

append 'Report YEGR_TEST_TEST.' to code.

move 'Form Test using itab_test type any table.' to str_help.

 append str_help to code.

  append 'data: wa_test like line of itab_test.' to code.
  append 'Write: / ''Es funzt immer noch.''.' to code.

  append 'endform.' to code.

  insert Report 'YEGR_TEST_TEST' from code.

  perform Test in program YEGR_TEST_TEST using it_test.

endmethod.

Brauch dringend HILFE. Warum krieg ich einen Laufzeitfehler. Sonst funktioniert doch die übergabe auch.

HILFE.

Gruß Steffi

Beitrag von ewx (Top Expert / 4849 / 313 / 642 ) »
Hi Steffi,

was kriegst du denn für einen Laufzeitfehler?
Vielleicht solltest du vor dem externen Perform noch einen GENERATE YEGR_TEST_TEST machen...

Gruß, Enno

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
die Fehlermeldung ist:

"Das unter LIKE angegebene Feld "itab_test" besitzten einen oder keinen generischen Typ."

Komisch ist, dass wenn ich nur den Report abändere und nicht das unterprogramm aufrufe der Report verändert wird.
Aber sobald ich das Unterprogramm aufrufe bekomme ich den oben genannten Laufzeitfehler.

Generate verwende ich doch nur wenn der Report noch nicht vorhanden ist oder? also habs jetzt auch mit Generate versucht und funktioniert auch nicht.

Gruß Steffi

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
ach ne hab den fehler...naja eigene doofheit...

Code: Alles auswählen.

Form Test using itab_test type any table.
data: wa_test like line of itab_test.
itab_test wurde ja als generischer Typ angegeben deshalb funktioniert die DATA-Anweisung nicht.
und ich dachte immer das liegt an der Form-Anweisung (da dort ja auch itab_test steht) :oops:

mhh nächstes kleineres problem wie kann ich dann eine Zeile dieser Tabelle ansprechen?

Beitrag von Asaph (Expert / 580 / 6 / 1 ) »
hi,


ansprechen kannst du die Tabelle mit :

assign component



Andreas

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

nur mal so für mich und meine Seele:
Was macht ein Unterprogramm mit einer Tabelle, deren Struktur es nicht kennt :roll: ??

Gruß
babap

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
Hi babap

die antwort auf deine Frage hab ich zwar schon mal geschrieben aber naja...
Also ich möcht dynamisch programmieren besser gesagt dynamisch Native SQL ausführen... Ist klar das dann meine Tabelle immer anders aussehen kann.

Ich übergeb ne tabelle dessen Struktur schon feststeht ich aber nich kenne. von dieser Strucktur kann man dann mittels assigen den Arbeitsbereich definieren.

Hoffe ich hab deine Frage beantwortet....

Gruß Steffi

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

ich bin immer auf der Lauer, noch was dazuzulernen.

Verrätst Du mir mehr??

Was machst Du mit einem variablen Tabellenzugriff in Native SQL??

Wo sind die Grenzen des SAP-Open-SQL-Ansatzes, die Du damit zu überwinden suchst???
Geht es um Performance, Inkompatibiltät zu einer Datenbank oder ähnliches??

Wenn's keine zu großen Geheimnisse sind kannst Du ja noch ein paar Andeutungen machen.

Gruß
babap

Beitrag von Steffi221185 (Specialist / 132 / 0 / 0 ) »
hi,

ich benutze Native SQl weil ich die Daten von einer Oracle DB benötige.

dynamsich soll es sein..weil das alles über eine Klasse gesteuert wird, die Open und Native SQl können soll. Und ich weiß ja immer nicht wie meine Ausgabetabelle aussehen soll.

Wenn du noch mehr wissen willst, dann guck mal nach meinen anderen Beträgen dann siehste auch was ich so für probleme hatte. ist alles ein programm.

Gruß Steffi

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

ich habe schon gesehen, daß Du hier in einigen Beiträgen aktiv bist. Alle zu dem nämlichen Thema.

Aber, mal ganz blöd gefragt: 80% aller SAP-Systeme laufen mit Oracle. Fast 99,9% aller Zugriffe am Tag laufen weltweit über SAP-OPEN-SQL.

Warum braucht gerade Du so einen Firlefanz mit Open SQL :?:

Willst Du den Nobellpreis gewinnen für einen selbst prgrammierten SELECT-Befehl, der schneller, besser, schöner ist, als der von SAP????

Gibt es betriebswirtschaftliche oder technische Fragestellung die mit Standardmitteln nicht gelöst werden kannr?

Was für ein Geschäftsprozeß steckt dahinter??

Oder willst Du das bloß mal ausprobieren??

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

14
Antw.
4706
Views
interne Tabelle zugreifen im Unterprogramm
von meliz » 25.05.2008 15:17 • Verfasst in ABAP® Core
1
Antw.
1183
Views
Changing interne Tabelle Unterprogramm in einem Fuba
von kbit100 » 12.02.2016 10:15 • Verfasst in ABAP® für Anfänger
2
Antw.
224
Views
Interne Tabelle BAdi Übergabe
von Maggonski » 05.04.2023 10:36 • Verfasst in ABAP® für Anfänger
2
Antw.
1414
Views
Übergabe SELECT an Struktur/Tabelle
von m4nu » 04.09.2014 12:08 • Verfasst in ABAP® für Anfänger
3
Antw.
6772
Views
Übergabe einer SELECT-OPTIONS Tabelle an FORM Routine
von m4rkusr » 20.09.2006 09:04 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 13 Stunden von tar 8 / 317
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1597
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 245
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 486

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.

Aktuelle Forenbeiträge

Regex in where
vor 13 Stunden von tar 8 / 317
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1597
Programm anlegen mit Vorlage
vor 2 Tagen von DeathAndPain 2 / 245
IT0024 Qualifikationen CP-ID
vor 2 Tagen von DeathAndPain 2 / 486

Unbeantwortete Forenbeiträge

BUSOBJEKT zu CMIS PHIO ermitteln
vor 2 Tagen von snooga87 1 / 184
aRFC im OO-Kontext
letzen Monat von ralf.wenzel 1 / 3364
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9916