Problem bei ASSIGN COMPONENT mit dynamischer Typisierung

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

Problem bei ASSIGN COMPONENT mit dynamischer Typisierung

Beitrag von Luca2501 (ForumUser / 1 / 0 / 0 ) » 17.09.2020 11:09
Hallo,
Ich habe das Problem, dass ich bei einem ASSIGN COMPONENT ... CASTING am Ende eine Typisierung und Angabe der Dezimalstellen mitgeben muss, da der Report sonst die Typisierung falsch erkennt. Mein Problem ist nun, dass wenn ich den Typen bei CASTING dynamisch mitgeben will (also laut F1 Hilfe in Klammern), ich anschließend kein DECIMALS Zusatz anhängen kann... kann mir da jemand helfen, wie ich beide Zusätze (dynamisch) angeben kann?

Beispiel, wie es am Ende aussehen soll:
ASSIGN COMPONENT <ls_field_info>-fieldname OF STRUCTURE <ls_struct> TO <lf_comp> CASTING TYPE (<ls_field_info>-type) DECIMALS (<ls_field_info>-decimals).


Re: Problem bei ASSIGN COMPONENT mit dynamischer Typisierung

Beitrag von black_adept (Top Expert / 3420 / 66 / 664 ) » 17.09.2020 18:59
Moin Luca,
das was du willst geht mit dem normalen ASSIGN nicht.
ASSIGN...CASTING sollte man nur im äußersten Notfall machen wenn es anders halt nicht anders geht ( z.b. Von Integer auf RAW (Hex) ) und wenn man genau weiß was man tut. Wenn du jetzt nicht tausende Kombinationen von Typ Decimals hast sondern nur eine begrenzte Auswahl ( 10-20 ) lege dir für jede Möglichkeit ein passend typisierters Feldsymbol an und mach dann das ASSIGN ... CASTING in das passende Feldsymbol.
Ansonsten sollte doch die Quellstruktur immer passend typisiert sein, so dass du mit einem normalen ASSIGN INTO <fs> in ein untypisiertes Feldsymbol doch dafür sorgen können, dass das <fs> nach dem ASSIGN völlig korrekt typisiert ist. Du sagst ja dass das bei dir nicht passt - arbeitest du evtl. mit Währungsfeldern?
Schreib doch mal etwas zum Umfeld wo du das genau brauchst, so dass wir dir besser helfen können.
Ansonsten nur der folgende Weg: Erstelle dir eine passende Datenreferenz - entweder mit CREATE DATA ... TYPE oder mit den RTTI-Klassen und dereferenziere das dann in ein Feldsymbol in welches du dann das ASSIGN CASTING machen kannst.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

Dynamisch - ASSIGN COMPONENT
von 1337 » 26.11.2013 09:33
Field-symbols Assign-Component
von vincent_36 » 01.12.2005 18:28
Fehler bei Dynamische Assign Component
von Anita57 » 19.08.2013 11:54
Fehler bei Dynamische Assign Component
von Anita57 » 19.08.2013 11:54
Problem: Unterprogramm und Parameter(typisierung)
von MacLeod » 25.01.2012 16:31