gelöst Feldsymbol mit Objektreferenz -> direkter Zugriff Attribute


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

gelöst Feldsymbol mit Objektreferenz -> direkter Zugriff Attribute

Beitragvon Romaniac » 06.11.2018, 12:00

Hallo zusammen,

eine Frage an die OO Gurus, ich bekomme von einem BADI eine interne Tabelle zurück die nur Referenzen enthält, jetzt möchte ich ein Atribut in der Loop Schleife ohne Umwege auswerten:

Code: Alles auswählen
        LOOP AT lt_attrib_values ASSIGNING FIELD-SYMBOL(<lw_attrib_values>).

        ENDLOOP.


Das Feldsymbol hat folgenden Inhalt:
<LW_ATTRIB_VALUES> -> {O:627*\CLASS=CL_SRM_ATTRIBUTE_VALUE}

Die Referenz:
{O:627*\CLASS=CL_SRM_ATTRIBUTE_VALUE}-IF_SRM_ATTRIBUTE_VALUE~ID -> CASE_TYPE

Ich würde das gerne mit einem CASE auswerten ohne erst eine Referenzvarialbe zuweisen zu müssen, geh sowas in der Art:
Code: Alles auswählen
CASE <LW_ATTRIB_VALUES>-IF_SRM_ATTRIBUTE_VALUE~ID
  WHEN 'CASE_TYPE'.
...
 


Danke und Gruß,

Wolfgang
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 89
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 11 mal
Ich bin: Freiberufler/in

Sponsor

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

Re: Feldsymbol mit Objektreferenz -> direkter Zugriff Attrib

Beitragvon a-dead-trousers » 06.11.2018, 12:07

Die Syntax wäre:
Code: Alles auswählen
CASE <LW_ATTRIB_VALUES>->IF_SRM_ATTRIBUTE_VALUE~ID.
oder
Code: Alles auswählen
CASE <LW_ATTRIB_VALUES>->ID.

Je nachdem von welchem Datentyp "lt_attrib_values" bzw. "<LW_ATTRIB_VALUES>" ist.

Wenn es sich um ein generisches "REF TO OBJECT" handelt oder der Datentyp keine direkte Vererbung bis zum Interface IF_SRM_ATTRIBUTE_VALUE aufweist, muss noch ein CAST dazwischen.
Code: Alles auswählen
CASE CAST IF_SRM_ATTRIBUTE_VALUE( <LW_ATTRIB_VALUES> )->ID.
Alte Syntax:
Code: Alles auswählen
DATA: lr_cast TYPE REF TO IF_SRM_ATTRIBUTE_VALUE.
lr_cast ?= <LW_ATTRIB_VALUES>.
CASE lr_cast->ID.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Für diese Nachricht hat a-dead-trousers einen Dank bekommen :
Romaniac
a-dead-trousers
Top Expert
 
Beiträge: 3055
Registriert: 07.02.2011, 13:40
Dank erhalten: 756 mal
Ich bin: Entwickler/in

Re: Feldsymbol mit Objektreferenz -> direkter Zugriff Attrib

Beitragvon Romaniac » 06.11.2018, 12:27

Hallo adt,

bevor ich das gepostet habe habe ich natürlich selber rumprobiert im Debugger und da hat es seltsamerweise nicht funktioniert. Jetzt funktioniert es genau so wie in meinem Beispiel mit
Code: Alles auswählen
    CASE <LW_ATTRIB_VALUES>->IF_SRM_ATTRIBUTE_VALUE~ID.


Danke!

Gruß Wolfgang
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 89
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 11 mal
Ich bin: Freiberufler/in

Re: Feldsymbol mit Objektreferenz -> direkter Zugriff Attrib

Beitragvon a-dead-trousers » 06.11.2018, 12:45

In deinem ersten Post hat ein ">" gefehlt. Ich hab es für einen Flüchtigkeitsfehler beim Kopieren gehalten.
Da du sonst keine "Fehlermeldung" angefügt hast, dachte ich daher du hast Probleme mit dem korrekten casten der Quellvariable.
Der Wert im Debugger ist dabei oft nicht so aussagekräftig. Wichtig ist auch welchen Typ die Variable im Programmcode syntaktisch hat. Erst dann weiß man wie man am besten auf die Inhalte zugreifen kann.
Zuletzt geändert von a-dead-trousers am 06.11.2018, 12:49, insgesamt 1-mal geändert.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 3055
Registriert: 07.02.2011, 13:40
Dank erhalten: 756 mal
Ich bin: Entwickler/in

Re: Feldsymbol mit Objektreferenz -> direkter Zugriff Attrib

Beitragvon Romaniac » 06.11.2018, 12:49

a-dead-trousers hat geschrieben:In deinem ersten Post hat ein ">" gefehlt. Ich hab es für einen Flüchtigkeitsfehler beim Kopieren gehalten.
Da du sonst keine "Fehlermeldung" angefügt hast, dachte ich daher du hast Probleme mit dem korrekten casten der Quellvariable.


jetzt habe ich es auch gesehen, ich sollte jetzt essen gehen...
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 89
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 11 mal
Ich bin: Freiberufler/in

Re: Feldsymbol mit Objektreferenz -> direkter Zugriff Attrib

Beitragvon a-dead-trousers » 06.11.2018, 12:50

Romaniac hat geschrieben:ich sollte jetzt essen gehen...

Mahlzeit :P
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 3055
Registriert: 07.02.2011, 13:40
Dank erhalten: 756 mal
Ich bin: Entwickler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
Java & Bildbearbeitung
vor 13 Stunden von Madredure 0 Antw.
Call Transaction WE20 mit Werteübergabe
vor 12 Stunden von ewx 1 Antw.
Vergleich Customizing Tabellen auf zwei Systemen
vor 13 Stunden von ewx 2 Antw.
Empfehlung Antiviren-Programm?
vor 14 Stunden von Madredure 2 Antw.
BADI im Customizing finden
Gestern von Romaniac 0 Antw.

  Ähnliche Beiträge beta
Attribute einer Klasse auslesen
14.10.2003, 11:45 von Troopy 2 Antw.
Feldsymbol auf RANGE-Tabelle
07.06.2007, 12:14 von ralf.wenzel 5 Antw.
Feldsymbol ist noch nicht zugewiesen.
25.06.2008, 15:45 von kirmuh 27 Antw.
gelöst Architektur von Abap-Klassen (Klassen Attribute)
13.04.2005, 09:30 von Gast 8 Antw.
Feldsymbol - Strucktur einer internen Tabelle
21.07.2008, 15:37 von uh 2 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder