Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

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

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

Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von Romaniac (Specialist / 221 / 65 / 27 ) »
Hallo zusammen,

bei der Übernahme eines Programmes aus Release 750 nach S4 bekomme ich folgenden Fehler beim Syntaxcheck:
Syntaxcheck.jpg

Definition Zielstruktur für SUM:

Code: Alles auswählen.

DATA: BEGIN OF ls_cosp,
        objnr             TYPE cosp-objnr,
        wrttp             TYPE cosp-wrttp,
        last_cosp_jahr(4),
*        last_cosp_mon(2),
        summe             TYPE cosp-wkg001,
      END OF ls_cosp,
      lt_cosp LIKE HASHED TABLE OF ls_cosp WITH UNIQUE KEY objnr wrttp,

Datenstruktur COSP in S4:
SE11 COSP.jpg

Datenstruktur COSP 750:
SE11 COSP 750.jpg

Was passt dem Compiler hier nicht, die Anweisung SUM müsste doch die gleiche Definition wie die Tabellenfelder annehmen?

Danke und Gruß,

Wolfgang
Geht nicht gibts nicht

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


Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Nur so ins Blaue hineingeraten:
summe TYPE cosp-wkg001 ==> WTG001 in den Screenshots

Andere Theorie:
Von der Summen Mechanik her würden 16 Felder in der Länge 23 eine Gesamtlänge von maximal 38 Stellen bewirken (23 + (16 - 1) = 38).
Soweit ich weiß ist die Berechnung von Gleitkommazahln in SAP aber auf max. 31 Stellen beschränkt.
Im "alten" System war das kein Problem, weil die Gesamtlänge dort nur 30 Stellen waren (15 + (16 -1) = 30).
Das heißt jetzt nicht, dass die Summe immer diese Länge erreichen wird, aber SAP scheint hier eine Sicherheitsprüfung eingebaut zu haben, damit es bei SQL-Abfragen zu keinem Overflow kommt.
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: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von Romaniac (Specialist / 221 / 65 / 27 ) »
Guten Morgen adt,

Die Domänen sind bei allen Feldern gleich:
COSP_DDIC.jpg

Zu Deiner Theorie:
Das heisst ich müsste für das Zielfeld einfach eine größere Domäne verwenden?

Ich teste das mal...

Danke und Gruß,

Wolfgang
Geht nicht gibts nicht

Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Ne, 31 Stellen ist, soweit ich weiß, eine SAP Limitierung.
Sonst hätte das Coding auf dem Altsystem ja auch nicht funktioniert, da dort theoretisch 30 Stellen waren bei einem Datenfeld mit 15 Stellen.

EDIT:
Hier ein Link zur Hilfe wo die 31 Stellen für "gepackte Zahlen" beschrieben sind:
https://help.sap.com/doc/abapdocu_751_i ... _types.htm
Wenn ich das richtig lese, müsstest du deine Felder zuerst irgendwie in eine Gleitpunktzahl umwandeln bzw. casten damit du ein längeres Ergebnis errechnen kannst.

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

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: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Moin Wolfgang,

der Trick mit dem Casten geht hervorragend.
Statt SUM( WKG001 + ... + WKG016 )
nimm SUM( CAST ( WKG001 + ... + WKG016 AS DEC( 23, 2 ) ) )
oder SUM( CAST ( WKG001 + ... + WKG016 AS FLTP ) ) um SAP zu zwingen intern mit Floatzahlen zu rechnen.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
a-dead-trousersedwin

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von Romaniac (Specialist / 221 / 65 / 27 ) »
Hi Stefan,

vielen Dank, was da alles geht in ABAP :-)

Muss ich nachher gleich mal ausprobieren.

Gruß Wolfgang
Geht nicht gibts nicht

Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »
Nachtrag zu a-d-ts "ins Blaue geratene".
Eine 23,2-Zahl hat vor dem Komma 23 Stellen. Theoretisch könnten das alles 9en sein, so dass eine Addition eine Zahl mit 24 Stellen vor dem Komma ergibt.
Nun wertet SAP den Ausdruck (Summe) sukzessive aus. Alle beteiligten Komponenten haben eine Länge von 23 Stellen. Nach der ersten Summe ergibt sich eine Zahl, die (theoretisch) 24 Stellen haben könnten. Daraus folgert SAP, dass WKG001 + WKG002 eine 24-stellige Zahl sein könnte.
Eine 24-stellige Zahl könnte nur aus 9en bestehen, so dass eine Addition ein Zahl mit 25 Stellen vor dem Komma ergibt. Déjà VU bzw. Murmeltiertag...

D.h. mit jeder Addition glaubt der Syntaxchecker, dass sich die theoretisch mögliche Stellenzahl um 1 erhöht, so dass du nach 15 Additionen bei 23+15 = 38 Stellen bist.

Durch den CAST-Operator teilt man SAP nun mit, dass das Zielfeld hinreichend klein sein wird und ABAP ist glücklich und zufrieden.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 2):
Romaniaca-dead-trousers

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von Romaniac (Specialist / 221 / 65 / 27 ) »
Hallo zusammen,

das Testsystem war jetzt eine Woche weg so dass ich das erst heute ausprobieren konnte. AS FLTP hat der Compiler nicht genommen:
Syntaxcheck2.jpg

AS DEC ( 23, 2 ) dagegen hat funktioniert.

Gruß Wolfgang
Geht nicht gibts nicht

Re: Syntaxcheck: maximal mögliche Gesamstellenzahl... SUM( WKG001 + ...) S4, Tabelle COSP ist DDL SQL View

Beitrag von a-dead-trousers (Top Expert / 4399 / 223 / 1182 ) »
Weil das Ergebnisfeld in deiner Zieltabelle natürlich auch ein FLTP sein muss 😉

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

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

Seite 1 von 1

Vergleichbare Themen

0
Antw.
854
Views
Eclipse: ABAP-Syntaxcheck dreht am Zeiger
von DeathAndPain » 03.06.2020 18:32 • Verfasst in ABAP® Core
5
Antw.
2576
Views
neue Abwesenheitsart mit maximal 5 Tagen pro Jahr
von ArjenR » 04.03.2020 09:20 • Verfasst in Human Resources
1
Antw.
4226
Views
CO: COSS/COSP-Sätze in COEP auflösen
von ralf.wenzel » 27.05.2011 12:05 • Verfasst in ABAP® Core
2
Antw.
1659
Views
Kosten aus COSS und COSP nach Quartal
von dblack » 28.09.2018 12:14 • Verfasst in ABAP® Core
4
Antw.
2744
Views
Tabelle/View gesucht
von Alexandra » 22.08.2006 09:24 • 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

Aktuelle Forenbeiträge

Regex in where
vor 9 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

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

Regex in where
vor 9 Stunden von edwin 7 / 166
Daten an Tabelle binden
vor 22 Stunden von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822