ABAP OBJECTS: aus einer Methode Inhalte einer itab exportier

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

ABAP OBJECTS: aus einer Methode Inhalte einer itab exportier

Beitrag von gse ( / / 0 / 3 ) »
hallo liebe forumgemeinde,

habe mir zum ziel gemacht mittels einer methode einen bestimmten datenbestand zu selektieren. soweit sogut, die methode erfüllt ihren zweck, allein ausserhalb der methode kann ich nicht auf den selektierten inhalt der itab zugreifen. ergo, hab ich mir gedacht, exportier ich die itab samt inhalt.

aber!so leicht war es dann doch nicht! und jetzt bin ich fast am verzweifeln, weil ich innerhalb der PUBLIC SECTION bzw. METHODS
den export-parameter aend_tab nicht definiert kriege (s. Quellcode unten)

Bitte, bitte liebe(r) weihnachtsmannIN, erkläre sie/er mir, ob ich eigentlich total auf dem holzweg wandle, d.h. den inhalt der itab viel leichter zu fassen bekäme, oder wie ich denn die itab (aend_tab) gescheiht definiert bekomme damit ich sie auch vernuenftig exportieren kann. (waere schoen mit einem kleinen Bsp. dann kann ich das ganze ausprobieren und besser nachvollziehen)

im voraus, weihnachtlichen dank!

gse


*Teil der class defintion
CLASS lcl_aenderungen DEFINITION.
PUBLIC SECTION.

DATA: wa_aend_tab TYPE cdpos,
aend_tab LIKE STANDARD TABLE OF wa_aend_tab.

METHODS: constructor,
aend_lesen
IMPORTING l_changenr TYPE cdpos-changenr
-----> EXPORTING aend_tab TYPE standard table of cdpos, <----
aendliste_fuellen.

*Methodenaufruf im hauptprogramm:
DATA: l_aend_tab TYPE STANDARD TABLE OF cdpos.

CALL METHOD aend_ref->aend_lesen
EXPORTING l_changenr = cdpos-changenr
IMPORTING l_aend_tab = l_aend_tab.

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


Beitrag von Azreal (Specialist / 182 / 1 / 0 ) »
Hallo nochmal,
habe mir nochmal dein coding angesehen. Wie schon einmal gesagt, ist das "Type standard Table of" irgendwie nicht erlaubt bei übergaben. Wenn du also bei TAbellenüberagaben innerhalb von Perform oder Methoden diese Anweisung benutzt dann meckert er.
ICh hatte ein ähnliches problem gehabt, und habe es folgender maßen gelößt.
Anstelle zu laufzeit eine Tabelle aus eine strucktur zu erzeugen (was du in deinem coding machst) habe ich mich auf ein transparente Tabelle innerhalb des DDIC´s bezogen. (siehe sflight)
HOffe ich konnte dir weiterhelfen.

Gruß Azreal

PS: Freue mich über weiter Fragen bezüglich Objects!

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Moin.

Leg Dir doch einfach einen Tabellentyp an, den Du dann für die typisierung verwendest:

Code: Alles auswählen.

TYPES: gyt_cdpos TYPE STANDARD TABLE OF cdpos.
Deinen EXPORTING-Parameter typisierst Du dann mit

Code: Alles auswählen.

...EXPORTING aend_tab TYPE gyt_cdpos.
Gruß,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

itab und x-message im sap-programm

Beitrag von gse ( / / 0 / 3 ) »
hallo IHR beiden,

vielen dank fuer EURE tipps. mittlerweile funktioniert die übergabe der internen tabelle. habe das problem so gelöst (vorschlag von azreal), indem ich mir einen tabellentypen mit zeilenstruktur cdpos im ddic angelegt habe. dann passte auch die typisierung mit

Code: Alles auswählen.

 ... exporting aend_tab type y_tabtyp_cdpos 
und der selektierte inhalt der itab ist auch ausserhalb verfügbar.

soweit, so gut. neuerdings kriege ich aber einen x-message dump
(MESSAGE_TYPE_X). *schluck*

Informationen zur Abbruchstelle

"......
Der Abbruch trat im ABAP-Programm "SAPLSLVC " auf, und zwar in
"LINE_OUT_NEW_2".
Das Hauptprogramm war "YRDSDWK1_MWKV_0107 ".

Im Source-Code findet sich die Abbruchstelle in Zeile 2239
(bei Anwahl des Editors: 22390) der ABAP-Source "LSLVCF01 ".
...."

wie man sieht "kracht" es da irgendwo in der sap-anwendung, wahrscheinlich habe ich in meinem coding irgendwo etwas nicht konsistent gehalten. bin aber im moment ratlos, wie ich herr dieses problems werden soll. beim debuggen durch das sABAP-coding verliere ich sehr schnell den überblick.

zum abbruch kommt es beim aufruf der methode

Code: Alles auswählen.

 call method me->refresh_table_display.
weiss jemand rat, wie man in solchen situationen am besten verfaehrt und dem fehler im eigenen coding auf die schliche kommt?

vielen dank im voraus!
gruss gse[/code]

Beitrag von Gast ( / / 0 / 3 ) »
Hallo,

kannst Du mal schauen, ob Du im Dump eine detailiertere Fehlermeldung findest? Schau mal bitte in der ta ST22 nach. Besonders interessant sind die Punkte 'Fehleranalyse', 'Hinweise zur Fehlerbehebung' und 'Ausschnitt Source-Code'. Wenn Du das posten könntest, wäre eine Fehleranalyse besser möglich :-)

Gruß,
Steff

Coding Dump-Analyse

Beitrag von gse ( / / 0 / 3 ) »
*sorry, hab ins falsche forum gepostet*
*ooops


hi,

hier das coding aus dem dump. scheint mir irgendein problem mit dem fieldcat zu geben, aber bisher bin ich da noch nicht durchgestiegen, woran es liegen koennte.

gruss und danke fuer die muehe!

gse

Code: Alles auswählen.

022200     loop at rt_fieldcat assigning <ls_fieldcat> where tech ne 'X' and 
022210                                                       no_out ne 'X'.  
022220                                                                       
022230       if gflg_invisible = 'X'.                                        
022240         if <ls_fieldcat>-do_sum is initial.                           
022250           clear gflg_invisible.                                       
022260           continue.                                                   
022270         else.                                                         
022280           clear g_col_counter.                                        
022290           clear gflg_invisible.                                       
022300         endif.                                                        
022310       endif.                                                          
022320                                                                       
022330       clear gs_lvc_data.                                              
022340       clear g_style.                                                  
022350                                                                       
022360       assign component                                                
022370              <ls_fieldcat>-fieldname of structure rt_data to <g_field>
022380       if sy-subrc ne 0.                                               
     >         message x000(0k).                                             
022400       endif.                                                          
022410                                                                       
022420       g_col_counter = g_col_counter + 1.                              
022430                                                                       
022440       gs_lvc_data-row_pos = r_row_counter.                            
022450       gs_lvc_data-col_pos = g_col_counter.                            



Beitrag von DRABAP (ForumUser / 30 / 0 / 1 ) »
Zu dem Problem mit Message type X kann ich leider keine Lösung beitragen. Prinzipiell sollte der Short-Dump abe alle notwendigen Informationen zur Fehlerbehebung enthalten. In der Regel wird eine deratige Message explizit aus einem Programm heraus ausgelöst (also nicht direkt vom ABAP-Laufzeitsystem).
Zur Parameterübergabe ist folgendes zu sagen: Bei den Anweisungen DATA und TYPES können deutlich komplexere "Typausdrücke" gebildet werden als bei der Parameterübergabe. Im Grunde sind bei der Parameterübergabe nur Bezüge auf bereits definierte Typen erlaubt (wurde ja bereits als Lösung vorgeschagen). Einzig die Typbildung mittels REF TO ist erlaubt. Der Grund für diese Einschränkung bei der Parameter Deklaration liegt darin, dass für jeden Parameter ein (globaler) eindeutiger Typ vereinbart werden sollte (z.B. im Data Dictionary), der sowohl innerhalb der gerufenen Einheit (Programm etc.) als auch innerhalb der rufenden Einheit bekannt ist. Hierdurch werden etwaige Typkonflikte beim Aufruf vermieden.

Seite 1 von 1

Vergleichbare Themen

9
Antw.
21064
Views
iTAB an Methode übergeben
von Diesel83 » 09.03.2011 19:53 • Verfasst in ABAP® für Anfänger
6
Antw.
8812
Views
Umstellung ABAP auf ABAP Objects
von Andreas G » 25.07.2006 12:46 • Verfasst in ABAP Objects®
4
Antw.
4206
Views
ABAP Objects und Tabellen
von schmitzandreas » 31.07.2007 16:08 • Verfasst in ABAP Objects®
11
Antw.
13627
Views
Einführung in ABAP Objects
von jspranz » 01.10.2008 12:36 • Verfasst in ABAP Objects®
1
Antw.
2057
Views
BUch ABAP Objects
von pit850 » 18.01.2016 11:32 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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.