CONVT_OVERFLOW bei Zahl in HEX konvertieren

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

CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von Oltsch (ForumUser / 4 / 0 / 0 ) »
Hallo zusammen,

ich versuche eine Zahl in ein Hex Format zu bringen. Ich habe dazu einige Beispiele gefunden, die auch prima funktionieren.
Ich laufe aber immer in einen short dump, wenn ich Werte habe, die die integer Grenze "Sprengen".
Ich habe die Tahl 3000000656 als Eingangswert und erwarte die Ausgabe B2D06090.
Die Zahl habe ich zuvor aus einem String separiert, weise sie einer int Variable zu, damit ich danach den Inhalt einer Variable vom Typ x zuweisen kann. So war es in einem Beispiel beschrieben.

Code: Alles auswählen.

DATA lv_serien_nr_hex TYPE x length 4,
        lv_dummy TYPE i.

lv_dummy = lv_serien_nr.
lv_serien_nr_hex = lv_dummy.
Das klappt auch, solang die Zahl nicht größer 2^31-1.

Kann mir jemand einen Schubser in die richtige Richtung geben?

Lieben Gruß
Olli

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


Re: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
Mit einer INTEGER Variable kannst du keine Zahl die größer als 2^31-1 ist speichern.
(Der Dump passiert bei der Zuweisung an die INTEGER Variable)
Schau dir mal die ABAP-Hilfe durch welche eingebauten Datentypen es sonst noch gibt. (DEC schaft glaub ich 32 Stellen oder so)

lg ADT
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: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von Oltsch (ForumUser / 4 / 0 / 0 ) »
Danke für den Hinweis.

Habe es mit DEC20 versucht nur bekomme ich nun BCD_OVERFLOW.

Code: Alles auswählen.

DATA lv_serien_nr_hex TYPE x length 4,
        lv_dummy TYPE DEC20.

lv_dummy = lv_serien_nr.
lv_serien_nr_hex = lv_dummy.
Der größte Wert, den ich da wohl verwenden kann ist decfloat34. Aber da gibts den gleichen Fehler.
1. Das Ergebnisfeld vom Typ P ist zu klein für die Aufnahme
des Resultats.

2. Das Ergebnis oder ein Zwischenergebnis hat mehr als 31
Dezimalstellen.
Außer ich nehme eine Zahl die nicht den Integer Rahmen sprengt. 1000003306 z.B. funktioniert auch mit dec20 oder decfloat34. Da muss dann wohl bei der Umwandlung im SAP Hintergrund immer in INT konvertiert werden, sodass ich da gar keinen Einfluss drauf nehmen kann :(

Vielleicht jemand eine Idee wie ich das sonst angehen könnte?

Re: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Hallo Olli,

wie lang darf denn dein Eingabestring maximal sein?
Der (eingebaute) Datentyp der die längsten Ganzzahlen verarbeiten kann ist übrigens "N" - der kann so um die 30 Dezimalstellen verkraften ( etwas mehr als 2^100 )
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von Oltsch (ForumUser / 4 / 0 / 0 ) »
Hallo Stefan,
10 Zeichen ist die max Länge. Habe es auch schon mit N probiert aber das Problem ist, dass wohl die SAP Logik beim Umwandeln in HEX intern den Zahlenwert in Integer umwandelt. Egal ob ich es mit der einfachen Zuweisung mache oder ein FM mit call aufrufe, der im IMPORTING den eigentlich passenden Datentyp zur Verfügung stellt.

Ich werde das Gefühl nicht los, dass ich da bestimmt was eigenes schreiben muss. Habe zumindest nichts im SAP "Baukasten" gefunden, dass mir weiterhilft.

Vielleicht bin ich aber auch auf einem völlig faschen Weg und muss das garnicht selber entwickeln. Was ich eigentlich will, ist die Umwandlung einer SSCC nach EPC (GS1 Standard). Vielleicht kennt da jemand einen Standard Fuba der das macht? Gefunden habe ich jedenfalls nichts, dass passt :(

Gruß
Olli

Re: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von Oltsch (ForumUser / 4 / 0 / 0 ) »
Habe mir jetzt selber was geschrieben, das die Konvertierung durchführt.
Aber de coed sieht so schlimm aus, dass ich das hier nicht zeigen darf :)
Ich mach das mal hübsch und poste das dann...
Setzte dann auch en Eintrag hier auf gelöst...
P.s. Ich bin immer noch an eine "standard" Funktion interssiert, falls es die in SAP gibt... danke
Olli

Re: CONVT_OVERFLOW bei Zahl in HEX konvertieren

Beitrag von black_adept (Top Expert / 4086 / 126 / 940 ) »
Hast du dir mal die Funktionsbausteine in der Funktiongruppe AIN_EPC_CONVERT angeschaut. Die ist ja recht übersichtlich und vom Namen her scheint mir AIN_EPC_URI_TO_EPC am aussichtsreichsten
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

4
Antw.
6568
Views
Überlauf bei gepackter Zahl
von MasterSAP » 23.12.2007 12:37 • Verfasst in ABAP® für Anfänger
3
Antw.
4377
Views
Zahl und Text zusammenfügen
von ABAP - Programmierer » 20.07.2005 09:35 • Verfasst in ABAP® für Anfänger
1
Antw.
1479
Views
Zähl- und Summationsfunktion in Querys
von Spritty57 » 04.04.2007 17:49 • Verfasst in SAP - Allgemeines
6
Antw.
4082
Views
Gleitkommazahl in Normale Zahl
von Thanatos82 » 09.09.2013 12:17 • Verfasst in ABAP® für Anfänger
7
Antw.
3782
Views
zahl ziffernweise auslesen
von miomio » 16.10.2012 20:48 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 16 Stunden von Bright4.5 1 / 345
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1988
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8587