Neu Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung "FK_dbo_tEigenschaftKombiWert_kEigenschaftWert"

FermanCO

Aktives Mitglied
30. Januar 2023
10
0
Guten Tag,
seit dem Update heute auf die neuste JTL Version habe ich das Problem beim Abgleich eines Kanals in Shopify.

Ein Ticket über die JTL Seite kann ich grad nicht auf machen komischerweise. Er lässt mich nicht das Paket auswählen. Ich hab nur die Basic. Das ging sonst auch immer..

Screenshot 2025-05-19 173530.png


Code:
Unbehandelte Ausnahme #959190594F6282F vom Typ System.Exception in
System.Exception: Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der JTL-Wawi notwendig sind!
Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung "FK_dbo_tEigenschaftKombiWert_kEigenschaftWert". Der Konflikt trat in der eazybusiness-Datenbank, Tabelle "dbo.teigenschaftwert", column 'kEigenschaftWert' auf.
Die Anweisung wurde beendet.
   bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   bei JTL.Database.DbCommandHelpers.ExecuteNonQuery(IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.DbConnectionExtensions.<>c__DisplayClass1_0.<ExecuteNonQuery>b__0()
   bei JTL.Database.DbConnectionHelpers.Execute[T](IDbConnection connection, Func`1 func, Boolean keepAlive)
   bei JTL.Database.DbConnectionExtensions.ExecuteNonQuery(IDbConnection connection, IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.Commands.Entities.KeylessCreateCommand.ExecuteChunk(IDatabaseConnection connection, Int32 startOfLastChunk, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.Commands.Entities.CreateCommandBase.Execute(IDatabaseConnection connection, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObjectRepositoryBase.CreateGroup(IEnumerable`1 items, Type type, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObjectRepositoryBase.<>c__DisplayClass5_0.<Create>b__1(IGrouping`2 group)
   bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   bei System.Linq.Enumerable.Sum(IEnumerable`1 source)
   bei jtlDatabase.jtlObjectRepositoryBase.Create(IEnumerable`1 items, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObject.insertInDB()
   bei jtlDatabase.jtlObject.Save()
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.ProductSaver.qlWnMUCGAbA(IEnumerable`1  , IEnumerable`1  , Int32  )
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.ProductSaver.Save(List`1 products, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.Saver.Save(IEnumerable`1 items, jtlShop shop, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.Funktionen.ConnectorPuller.Pull[TEntity](Int64 quantity)




2025-05-19T17:20:14 DEBUG - Dauer: 0ms, 1 Zeilen
2025-05-19T17:20:14 DEBUG - UPDATE [dbo].[tArtikel] SET dMod = @dMod_0, dNeuImSortiment = @dNeuImSortiment_0, kDefinition = @kDefinition_0 WHERE kArtikel = @kArtikel_0;

@dMod_0 = '2025-05-19 05:20:14'
@dNeuImSortiment_0 = '2025-05-19 05:20:14'
@kDefinition_0 = NULL
@kArtikel_0 = 4215
2025-05-19T17:20:14 DEBUG - Dauer: 6ms, AffectedRows: 1
2025-05-19T17:20:14 DEBUG - SELECT * FROM [tArtikelSonderpreis] WHERE [kArtikel] = @kArtikel
@kArtikel = 4215
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, (bis zum Reader)
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, 1 Zeilen
2025-05-19T17:20:14 DEBUG - SELECT * FROM [tArtikelBeschreibung] WHERE [kArtikel] = @kArtikel
@kArtikel = 4215
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, (bis zum Reader)
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, 2 Zeilen
2025-05-19T17:20:14 DEBUG - SELECT * FROM [tArtikelBeschreibung] WHERE [kArtikel] = @kArtikel
@kArtikel = 4215
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, (bis zum Reader)
2025-05-19T17:20:14 DEBUG - Dauer: 0ms, 2 Zeilen
2025-05-19T17:20:14 DEBUG - EXEC spGetAndUpdatePK @param1
@param1 = 'tEigenschaftKombi'
2025-05-19T17:20:14 DEBUG - Dauer: 9ms, Result: 3146
2025-05-19T17:20:14 DEBUG - INSERT INTO [dbo].[tEigenschaftKombiWert] ([kEigenschaftKombi], [kEigenschaft], [kEigenschaftWert]) VALUES (@kEigenschaftKombi, @kEigenschaft, @kEigenschaftWert);

@kEigenschaftKombi = 3146
@kEigenschaft = 1304
@kEigenschaftWert = 0
2025-05-19T17:20:14 WARN - Dauer: 5ms, Error: Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung "FK_dbo_tEigenschaftKombiWert_kEigenschaftWert". Der Konflikt trat in der eazybusiness-Datenbank, Tabelle "dbo.teigenschaftwert", column 'kEigenschaftWert' auf.
Die Anweisung wurde beendet.
2025-05-19T17:20:14 ERROR - Artikel-Empfangen-Fehler: Bitte beachten Sie, dass zur Fehler-Diagnose ebenfalls die Log-Datei des Servers und das Abgleich-Log der JTL-Wawi notwendig sind!
Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung "FK_dbo_tEigenschaftKombiWert_kEigenschaftWert". Der Konflikt trat in der eazybusiness-Datenbank, Tabelle "dbo.teigenschaftwert", column 'kEigenschaftWert' auf.
Die Anweisung wurde beendet.
   bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
   bei System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
   bei System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
   bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
   bei JTL.Database.DbCommandHelpers.ExecuteNonQuery(IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.DbConnectionExtensions.<>c__DisplayClass1_0.<ExecuteNonQuery>b__0()
   bei JTL.Database.DbConnectionHelpers.Execute[T](IDbConnection connection, Func`1 func, Boolean keepAlive)
   bei JTL.Database.DbConnectionExtensions.ExecuteNonQuery(IDbConnection connection, IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.Commands.Entities.KeylessCreateCommand.ExecuteChunk(IDatabaseConnection connection, Int32 startOfLastChunk, Int32 timeout, DbLoggingOptions logging)
   bei JTL.Database.Commands.Entities.CreateCommandBase.Execute(IDatabaseConnection connection, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObjectRepositoryBase.CreateGroup(IEnumerable`1 items, Type type, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObjectRepositoryBase.<>c__DisplayClass5_0.<Create>b__1(IGrouping`2 group)
   bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   bei System.Linq.Enumerable.Sum(IEnumerable`1 source)
   bei jtlDatabase.jtlObjectRepositoryBase.Create(IEnumerable`1 items, Int32 timeout, DbLoggingOptions logging)
   bei jtlDatabase.jtlObject.insertInDB()
   bei jtlDatabase.jtlObject.Save()
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.ProductSaver.qlWnMUCGAbA(IEnumerable`1  , IEnumerable`1  , Int32  )
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.ProductSaver.Save(List`1 products, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.SaveClasses.Saver.Save(IEnumerable`1 items, jtlShop shop, List`1& exceptions)
   bei jtlCore.ControllerClasses.Connector.Abgleich.Funktionen.ConnectorPuller.Pull[TEntity](Int64 quantity)



2025-05-19T17:20:14 WARN - Abgleich abgebrochen.
2025-05-19T17:20:14 WARN - Abgleich abgebrochen.
2025-05-19T17:20:14 WARN - Abgleich abgebrochen.
2025-05-19T17:20:14 DEBUG -
DELETE FROM dbo.tUniqueSession WHERE cContext = @cContext
@cContext = 'ConnectorAbgleich'
2025-05-19T17:20:14 DEBUG - Dauer: 2ms, AffectedRows: 1
2025-05-19T17:20:14 INFO - Onlineshop-Abgleich beendet für 'B2B - JTL - SHOPIFY'.


2025-05-19T17:20:14 DEBUG - Dauer: 14 ms, 11 Zeilen
2025-05-19T17:20:31 INFO - Force Flush
Zeitstempel: 2025-05-19T17:20:44
Locale: German (Germany)
Locale: German (Germany)
Version: 1.10.10.4
Plattform: Wawi
WawiSeed: 8.1.14028.59301
Prozessname: JTL-Wawi
Physikalischer Speicher: 582086656 / Peak: 582107136
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:18,390625
CPU-Zeit (System): 0:00:06,71875
Page-Size (Sytem): 2558040 / Peak: 550641664
Page-Size: 550019072 / Peak: 550641664
Offene Handles: 2175
Database:
Build: 2505061209 fd098c5005fbf83098d8a910fac651d1f062b904
 
Zuletzt bearbeitet:

frankell

Sehr aktives Mitglied
9. September 2019
2.685
840
Flensburg
Hallo @FermanCO,

das sieht mir nach einem Fehler im Connector aus. Hier wird versucht, einen 0-Wert in eine Tabelle zu schreiben, was aber daran scheitert, dass dieser in einer anderen Tabelle (bzw. Spalte) nicht vorhanden ist. Diese ForeignKey-Einschränkung ist neu in der 1.10. Diese Einschränkung ist gar nicht verkehrt, vielmehr ist es ein Problem, dass @kEigenschaftWert überhaupt gleich 0 ist. Untechnisch ausgedrückt: Hier wird versucht, die Variationskombination eines Kindartikels zu schreiben, ohne dass für die Variation mit der internen ID 1304 auch ein Variationswert existiert.

Mit dem Supportlevel Basic kannst Du nur noch Anfragen ins Forum stellen, in der Hoffnung, dass iwer von JTL das sieht, als Fehler identifiziert und entsprechend weitergibt, so dass sich jemand drum kümmert.
 

FermanCO

Aktives Mitglied
30. Januar 2023
10
0
Hallo @FermanCO,

das sieht mir nach einem Fehler im Connector aus. Hier wird versucht, einen 0-Wert in eine Tabelle zu schreiben, was aber daran scheitert, dass dieser in einer anderen Tabelle (bzw. Spalte) nicht vorhanden ist. Diese ForeignKey-Einschränkung ist neu in der 1.10. Diese Einschränkung ist gar nicht verkehrt, vielmehr ist es ein Problem, dass @kEigenschaftWert überhaupt gleich 0 ist. Untechnisch ausgedrückt: Hier wird versucht, die Variationskombination eines Kindartikels zu schreiben, ohne dass für die Variation mit der internen ID 1304 auch ein Variationswert existiert.

Mit dem Supportlevel Basic kannst Du nur noch Anfragen ins Forum stellen, in der Hoffnung, dass iwer von JTL das sieht, als Fehler identifiziert und entsprechend weitergibt, so dass sich jemand drum kümmert.
Wow. Das mit dem Basic muss neu sein.
vor nichtmal einem Monat hatte ich noch 1 Ticket auf machen können.
Ich muss jetzt also das nächste Paket nehmen für 100€ um Support zu bekommen bei Störungen ?
Oh schade!
 

frankell

Sehr aktives Mitglied
9. September 2019
2.685
840
Flensburg
Ich muss jetzt also das nächste Paket nehmen für 100€ um Support zu bekommen bei Störungen ?

Es könnte sich um Fehler des Benutzers handeln, und dann hätte man ja Zeit investiert für Leute, die selbst nichts zahlen. Und das geht nun wirklich. 😀
Der Gedanke ist wahrscheinlich, dass ein jeder Fehler auch iwann mal bei jemandem aufploppt, der mindestens JTL-Advanced hat und der den dann auch ganz brav meldet. Ob das zutreffend ist, steht auf einem anderen Blatt Papier. Und ob die kostenlosen Nutzer mit Fehlermeldungen nicht auch zu einer (früheren) Fehlerbeseitigung beitragen könnten, da kann man sicher auch anderer Auffassung sein. Ich glaube auch nicht, dass die reine Entgegennahme von Fehlermeldungen wirklich schon als "Support" bezeichnet werden kann. Aber es is, wie es is.
 

Ähnliche Themen