gelöst Select Options und Range Tabellen


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

gelöst Select Options und Range Tabellen

Beitragvon gs3rr4 » 29.12.2016, 14:12

Hey!

Ich möchte eine Methode einer globalen Klasse nutzen, die eine Range-Tabelle als Import-Parameter verwendet.
Im Selection-Screen meines Programms habe ich daher eine Select-Option definiert, welche das gleiche Datenelement verwendet, wie die Range-Tabelle.

Bei der Syntaxprüfung bekommen ich nun den Fehler: "Feld 'p_select_option' unbekannt."

Ich kann ich auch nicht über die Select-Options loopen.. da kommt der gleiche Fehler.
Hatte erst gedacht, dass ich mir die Range-Tabelle nochmal lokal hole und die Select-Options übertrage, aber hne Loop wird das nichts.

Kann mir jemand sagen woran das liegt bzw. wie ich an der Stelle weiter komme?
Wenn ich den Debugger anschmeiße, dann ist 'p_select_option' ganz normal gefüllt.
Auch für Select Statements kann ich sie ganz normal verwenden (... IN p_select_option ...).

Vielen Dank für die Hilfe!
gs3rr4
ForumUser
 
Beiträge: 51
Registriert: 17.12.2013, 14:06
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Select Options und Range Tabellen

Beitragvon Thomas R. » 30.12.2016, 07:16

Der Quelltext ist auch hier vonnöten,
Nur dann kann man die Fehler töten.

MfG
Thomas R.

Für diese Nachricht hat Thomas R. einen Dank bekommen :
gs3rr4
Thomas R.
Expert
 
Beiträge: 644
Registriert: 11.12.2002, 08:04
Dank erhalten: 21 mal

Re: Select Options und Range Tabellen

Beitragvon gs3rr4 » 30.12.2016, 09:51

Hehe, aber ich bin nicht sicher, was genau ich posten soll.

Top Include:
...
Data: g_bukrs type bukrs.
...

Selection-Screen Include:
...
Select-Options p_bukrs for g_bukrs.
...

Include für Implementierung einer Klasse:
...
CALL METHOD zcl_clas=>method
EXPORTING
it_bukrs = p_bukrs
RECEIVING
rt_table = lt_table.
...

it_bukrs ist eine im DDIC definierte Range-Table vom Datenelement bukrs. Ich würde es ja noch akzeptieren, wenn p_bukrs nicht zum Typen von it_bukrs passt.. immerhin ist das eine ne Range-Rable ausm DDIC und das andere einfach ne Select-Option ausm Selection-Screen.. aber ich kann ja nicht einmal drüber loopen, obwohl die Tabelle im Debugger ganz normal gefüllt ist.

Folgendes funktioniert:

SELECT *
FROM dtab
APPENDING CORRESPONDING FIELDS OF TABLE lt_table
WHERE bukrs IN p_bukrs.

Vielleicht übersehe ich einfach ne Kleinigkeit oder so.. ich hoffe die Schnipsel helfen etwas dabei, mein Problem zu verstehen.
gs3rr4
ForumUser
 
Beiträge: 51
Registriert: 17.12.2013, 14:06
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Select Options und Range Tabellen

Beitragvon Thomas R. » 30.12.2016, 09:57

Hallo,

in Deinem Coding finde ich nirgends p_select_option.

MfG
Thomas R.
Thomas R.
Expert
 
Beiträge: 644
Registriert: 11.12.2002, 08:04
Dank erhalten: 21 mal

Re: Select Options und Range Tabellen

Beitragvon gs3rr4 » 30.12.2016, 10:36

Sorry, ich habe einen anderen Namen für den Parameter gewählt, damit es besser verständlich ist. Aus verschiedenen Gründen kann ich nicht das richtige Coding posten...

Der Fehler in diesem Fall wäre dann also: Feld "p_bukrs" unbekannt. Es existiert aber ein Feld mit ähnlichem Namen: "g_bukrs".
gs3rr4
ForumUser
 
Beiträge: 51
Registriert: 17.12.2013, 14:06
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Select Options und Range Tabellen

Beitragvon Thomas R. » 30.12.2016, 10:40

Hallo,
dann empfehle ich Dir Deinen Code soweit einzudampfen, bis er für die Veröffentlichung geeignet ist (und möglichst kurz ist).
Ich bin ziemlich sicher, dass Du dabei bereits den Fehler finden wirst. Wenn nicht kannst Du ihn ja veröffentlichen.

MfG
Thomas R.
Thomas R.
Expert
 
Beiträge: 644
Registriert: 11.12.2002, 08:04
Dank erhalten: 21 mal

Re: Select Options und Range Tabellen

Beitragvon ralf.wenzel » 30.12.2016, 19:31

Wenn du eine SelOpt p_select_option an eine Methode übergeben willst, musst du p_select_option[] übergeben. Grund: Eine SelOpt ist eine Range-Tabelle mit impliziter Kopfzeile. Die Kopfzeile zu übergeben, bringt nichts, du musst den Tabellenkörper übergeben. Daher das [].
Bild Ralf WenzelHeuristika
SAP-Development • Datenschutzberatung
PublikationenUngarische NotationXing
ralf.wenzel
Top Expert
 
Beiträge: 2618
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 115 mal
Ich bin: Freiberufler/in

Re: Select Options und Range Tabellen

Beitragvon gs3rr4 » 02.01.2017, 10:59

Danke für die Hinweise!

Ich konnte das Problem mittlerweile lösen. Es lag an einer falschen Reihenfolge der Includes im Rahmenprogramm.
Ich habe jetzt die Implementierungs-Icludes der Klassen ganz oben ins TOP-Iclude geschrieben und das Selection-Screen Include ganz ans Ende.

Jetzt funktioniert es :)
gs3rr4
ForumUser
 
Beiträge: 51
Registriert: 17.12.2013, 14:06
Dank erhalten: 0 mal
Ich bin: Entwickler/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Anwendungstabelle nur im Entw.system pflegbar
vor 5 Stunden von ralf.wenzel 4 Antw.
VBA // RFC-Baustein mit Tabelle als Import Parameter abrufen
vor 12 Stunden von Tron 3 Antw.
parallele Hintergrundjobs mit gleichem Endezeitpunkt
vor 2 Tagen von Timoniac 0 Antw.
Cluster-Tabelle ist JOIN nicht erlaubt
vor 2 Tagen von DeathAndPain 1 Antw.
AlphaGo Zero
vor 2 Tagen von black_adept 0 Antw.

  Ähnliche Beiträge beta
Größenbeschränkung bei Range Tabellen
07.11.2007, 18:44 von Krueger 6 Antw.
Select Range
21.08.2007, 09:50 von Senshi 11 Antw.
Select mit dynamischer Range
15.08.2009, 12:44 von ralf.wenzel 3 Antw.
Select nach Parameter & Select-Options
11.07.2012, 15:38 von Unit605 4 Antw.
SELECT - Options & SELECT Abfrage
15.05.2007, 07:13 von Mavrix 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!