Dump bei Methode ADD_FUNCTION

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).
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Dump bei Methode ADD_FUNCTION

Beitrag von mareikemei92 (ForumUser / 49 / 18 / 0 ) »
Hallo zusammen,

Ich habe aktuell ein seltsames Verhalten beim Aufruf der Methode add_function der Klasse cl_ctmenu.
Ich übergebe als Text für das Kontextmenu einen Textbaustein text-059, der die maximale Länge auf 40 eingestellt hat.
Im Debugger sehe ich, dass der technische Typ für die Textvariable ein CHAR 50 ist und daher bricht die Methode mit einem Dump ab, weil der Importparameter text vom Typ gui_text (type c length 40) ist.
Was noch seltsamer ist, das passiert nur, wenn ich auf Englisch am System angemeldet bin. Das heißt es hat vielleicht etwas mit der englischen Übersetzung der Textvariable zu tun. Diese ist ja aber auch auf Länge 40 eingestellt.

Meine Frage ist nun: Wieso wird die Textvariable, obwohl ich sie auf 40 Zeichen beschränke, auf CHAR 50 gesetzt und im Debugger auch so angezeigt?

Ich hoffe, jemand hat eine Erklärung dafür...

VG, Mareike

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


Re: Dump bei Methode ADD_FUNCTION

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Hi.

Unter Basis ab 7.40 kannst du die Funktion CONV verwenden:

Code: Alles auswählen.

ADD_FUNCTION( TEXT = CONV #( text-059 ) ).
In früheren Releases wirst du in den sauren Apfel beißen müssen und für die Konvertierung eine Hilfsvariable anlegen müssen:

Code: Alles auswählen.

DATA: ld_text TYPE gui_text.
ld_text = text-059.
ADD_FUNCTION( TEXT = ld_text ).
Warum das bei dir nur auf dem englischen System auftritt, dürfte an der Textlänge liegen. Vermutlich dürfte der deutsche Text in den "Textelementen" mit genau 50 Zeichen definiert sein.

lg ADT

EDIT: Alternativ könntest du noch probieren, die Textlänge des englischen Textes auch auf 50 Zeichen zu setzen. Aber davon würde ich eher abraten, weil, wenn jemand anderes mal den Text ändern sollte und nicht weiß, dass die Textlänge auswirkungen auf die Funktionsweise hat, kann man dadurch ziemliche Probleme hervorrufen.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mareikemei92

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.18
Basis: 7.50

Re: Dump bei Methode ADD_FUNCTION

Beitrag von mareikemei92 (ForumUser / 49 / 18 / 0 ) »
a-dead-trousers hat geschrieben:Hi.

Unter Basis ab 7.40 kannst du die Funktion CONV verwenden:

Code: Alles auswählen.

ADD_FUNCTION( TEXT = CONV #( text-059 ) ).
In früheren Releases wirst du in den sauren Apfel beißen müssen und für die Konvertierung eine Hilfsvariable anlegen müssen:

Code: Alles auswählen.

DATA: ld_text TYPE gui_text.
ld_text = text-059.
ADD_FUNCTION( TEXT = ld_text ).
Warum das bei dir nur auf dem englischen System auftritt, dürfte an der Textlänge liegen. Vermutlich dürfte der deutsche Text in den "Textelementen" mit genau 50 Zeichen definiert sein.

lg ADT

EDIT: Alternativ könntest du noch probieren, die Textlänge des englischen Textes auch auf 50 Zeichen zu setzen. Aber davon würde ich eher abraten, weil, wenn jemand anderes mal den Text ändern sollte und nicht weiß, dass die Textlänge auswirkungen auf die Funktionsweise hat, kann man dadurch ziemliche Probleme hervorrufen.
Hi ADT,

Das ist ja das seltsame, ich hab den Text in den Textelementen mit maximaler Länge 40 drin gehabt.
Ich hab jetzt ein neues Element mit einer neuen ID und exakt den gleichen Werten angelegt und es ausgetauscht. Dann ging es.
Dann habe ich das alte Textelement wieder eingesetzt und jetzt geht es auf einmal auch mit diesem wieder..
Kurioses Problem auf jeden Fall, das jetzt aber gelöst ist.
Danke für den Tipp mit der Funktion CONV :up:

VG Mareike

Seite 1 von 1

Vergleichbare Themen

9
Antw.
5353
Views
CALL FUNCTION '...' STARTING NEW TASK in RECEIVE-Methode
von nickname8 » 12.02.2019 09:58 • Verfasst in ABAP® Core
2
Antw.
5957
Views
select sum( (var) ) --> dump
von freeze » 29.07.2008 10:51 • Verfasst in ABAP® für Anfänger
11
Antw.
2694
Views
Dump bei SUSR_USER_BUFFERS_TO_DB
von Suta_K » 21.08.2017 14:18 • Verfasst in ABAP® für Anfänger
0
Antw.
1040
Views
DUMP-Analyse
von Tellerchen58 » 20.01.2011 10:16 • Verfasst in ABAP® Core
4
Antw.
4240
Views
Kurz dump
von zhamama » 01.09.2004 13:26 • Verfasst in Dialogprogrammierung

Ü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

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140