Doppelte Primärschlüssel in der FAAT_DOC_IT

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

Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von msfox (Specialist / 405 / 61 / 79 ) »
Ich habe beim Kunden das Problem, dass die Transaktion AW01N (Anlagen unter S/4) mit einem Dump abbricht: "Laufzeitfehler ITAB_DUPLICATE_KEY in Programm CL_FINS_ACDOC_FAA_UTIL". In der Klasse gibt es eine interne Tabelle, die mit UNIQUE-Keys definiert ist. Beim SELECT über die CDS-View FAA_LINEITEMS kommen aber bestimmte Schlüssel nicht eindeutig. Die FAA_LINEITEMS Joint dabei auch auf die FAAT_DOC_IT. Die Primärschlüssel dort sind:

Code: Alles auswählen.

MANDT, BUKRS, ANLN1, ANLN2, GJAHR, AWTYP, AWREF, AWORG, AWSYS, SUBTA, AFABE, SLALITTYPE, DRCRK 
Gemäß SE11 sieht es in der Tabelle so aus:
Screenshot 2025-11-27 082316.jpg
Wie kann es sein, dass die Primärschlüssel (1. und 2. Zeile) gleich sind?
Die Werte in KSL sind soager unterschiedlich. Also nicht einfach ein Anzeigefehler mit identischer Zeile.
Zugegeben, via Z-Coding (nicht von mit) wird eine der beiden Zeilen nachträglich manuell hinzugefügt. Aber auch das führt schon nicht zum Fehler. Bei einem INSERT müsste doch ein Duplicate-Key-Error kommen.

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


Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von rob_abc (Specialist / 155 / 42 / 61 ) »
Vielleicht sind die Felder gar nicht gleich auf der DB sondern werden nur in der Ausgabe gleich angezeigt, da Konvertierungsexit? Mal in der SE16N die unkonvertierten Werte ausgegeben? Dann dürfte er aber eigentlich auch nicht bei der ITAB dumpen. :/

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von msfox (Specialist / 405 / 61 / 79 ) »
Ich habe es über die SE16H geprüft.
Screenshot 2025-11-27 105414.jpg
Sieht gleich aus...
Wenn ich in der SE16N die Beträge der zwei Zeilen ändere, findet auch ein Update statt.
Aber normalerweise sind doch in der SE16N beim Editieren die Die Schlüsselfelder inaktiv. Hier nicht:
Screenshot 2025-11-27 105902.jpg
Lässt die Tabelle also Mehrfachschlüssel zu?
Wenn ja, wird das gesetzt?

Code: Alles auswählen.

Dann dürfte er aber eigentlich auch nicht bei der ITAB dumpen.
Jep. Wenn die DB-Tabelle Mehrfachschlüssel erlaubt, darf die SAP nicht im Coding plötzlich diese unterbinden.
--
Wenn ich in der SE11 genau die Primärschlüsselwerte als Selektionskriterium nehme, bekomme die zwei Zeilen.
--
Wenn ich in der SE16N eine der Zeilen kopieren und speichere, kommt die Fehlermeldung: "Es existiert bereits ein Datensatz mit den angegebenen Schlüssel".
Irgendwas macht also die Schlüssel der beiden gleichen Zeilen unterschiedlich.

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von DeathAndPain (Top Expert / 1994 / 270 / 419 ) »
ich habe zwar von CDS-Views keine Ahnung, aber für mich klingt das so, als ob aus irgendeinem Grund eine zweite Zeile mit selbem Primärschlüssel in die Datenbank gerutscht ist. Das ist eine Konsistenzverletzung, die eigentlich von der Datenbank verhindert werden müsste, aber vielleicht aufgrund irgendeiner Softwareschwachstelle reingerutscht ist.
Jep. Wenn die DB-Tabelle Mehrfachschlüssel erlaubt, darf die SAP nicht im Coding plötzlich diese unterbinden.
Der Primärschlüssel der Datenbank und der einer internen ABAP-Tabelle sind zwei völlig verschiedene Paar Schuhe. Es steht Dir aber frei, die ABAP-Tabelle nach Belieben mit der Zeilenstruktur der Datenbanktabelle, aber einem Schlüssel Deiner Wahl zu definieren. Du kannst z.B. eine Standardtabelle draus machen oder einen NON-UNIQUE SORTED KEY verwenden. Dann wirst Du keine Dumps haben. Wenn es sich aber wirklich um eine Inkonsistenz eurer Datenbank und nicht um irgendeine mir unbekannte Spezialität von CDS-Views handelt, dann wird das die Problemursache nicht verbessern.

Ich finde es aber gut und wichtig, dass man als Programmierer bei der Wahl der Schlüssel seiner internen Tabellen frei ist. Es ist durchaus nicht immer sinnvoll, intern den Schlüssel der zugehörigen Datenbanktabelle zu verwenden.

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von msfox (Specialist / 405 / 61 / 79 ) »
Die "FAAT_DOC_IT" ist aber keine CDS-View sondern eine transparente Tabelle. Dort sind die Einträge drin. Die CDS View hatte ich nur erwähnt, um den Context zu erläutern.

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von DeathAndPain (Top Expert / 1994 / 270 / 419 ) »
Dann muss es ja eine Inkonsistenz in der Datenbanktabelle sein. Der Dump in der internen Tabelle ist dann nur ein bedeutungsloser Folgefehler.

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von rob_abc (Specialist / 155 / 42 / 61 ) »
2025-11-28 11_19_13-AWS PROD - Desktop Viewer.png
Mit der Option hast du in der SE16N die beiden PKs verglichen und sie sind identisch?

Re: Doppelte Primärschlüssel in der FAAT_DOC_IT

Beitrag von msfox (Specialist / 405 / 61 / 79 ) »
Kein Unterschied erkennbar. Ich kann sie aber nur visuell vergleichen. Oder kann ich in der SE16N auch einen Deltavergleich wie im Debugger machen?
Screenshot 2025-11-28 131455.jpg
Aber, wenn ich den markierten Wert über SAP_EDIT versuche zu ändern, klappt das nicht. Erste Zeile auf 310€ und zweite Zeile auf 10€. Ergebnis nach einem Refresh: In beiden Zeilen stehen 10€. Wie oben im anderen Beitrag ersichtlich, war es aber via Coding möglich hier unterschiedliche Beträge bei selben Primärschlüssel zu erfassen.
Die SE16N kann diese aber nicht getrennt updaten. D.h. für mich, dass die Primärschlüssel wirklich gleich sind, was eigentlich nicht sein darf.
Darum die Frage anders gestellt: Gibt es unter HANA irgendwelche Besonderheiten, die man nur direkt auf der Datenbank einstellen kann? Oder Möglichkeiten das zu analysieren? Ich habe leider nur Zugriff via SE16 SE11 SE16N SE16H also immer SAP dazwischen. Vermutlich hätte sich eine OrcaleDB unter ERP schon von Haus beschwert, wenn sie doppelt Primärschlüssel bekommt.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
4313
Views
Primärschlüssel herausfinden
von m.schwertle » 31.10.2007 15:49 • Verfasst in ABAP® für Anfänger
4
Antw.
3033
Views
Primärschlüssel bei Tabellen
von rambozola » 06.12.2006 09:24 • Verfasst in Basis
2
Antw.
4203
Views
Primärschlüssel/Fremdschlüssel
von frany*89* » 25.07.2012 14:40 • Verfasst in ABAP® für Anfänger
8
Antw.
4912
Views
DB-Tabelle ohne Primärschlüssel
von janfri » 02.03.2006 16:19 • Verfasst in Basis
4
Antw.
2640
Views
Nicht eindeutiger Primärschlüssel in DB-Tabelle ?
von Bernhard Unglaub » 10.07.2007 11:58 • Verfasst in ABAP® Core

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Export/Import Eclipse-Projekt
vor 3 Tagen von ralf.wenzel gelöst 3 / 896
Forenbeteiligung
vor 4 Tagen von deejey 7 / 1792
CORRESPONDING MAPPING mit Expression
vor einer Woche von Radinator 11 / 6877

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.