Guten Tag allerseits, meine Automatisierten Importe laufen seit update auf 1.8 nicht mehr.
Ich nutze Quicksync zum Bestandesabgleich, leider kommt bei allen importen seit 1.8 immer folgender Crash report:
Unbehandelte Ausnahme #5DDB6A4D3A6CEF25 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Verletzung der UNIQUE KEY-Einschränkung "UQ_dbo_tliefartikel_tArtikel_kArtikel_tLieferant_kLieferant". Ein doppelter Schlüssel kann in das dbo.tliefartikel-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (21, 4).
Die Anweisung wurde beendet.
bei System.Data.SqlClient.SqlConnection.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.SqlDataReader.TrySetMetaData(_SqlMetaDataSet metaData, Boolean moreInfo)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
bei JTL.Database.DbCommandHelpers.ExecuteReader(IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.DbCommandExtensionsType.Query[T](IDbCommand command, IColumnMapper mapper, IResultSetReaderStrategy multipleResultSets, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.DbConnectionExtensionsType.<>c__DisplayClass7_0`1.<Query>b__0()
bei JTL.Database.DbConnectionHelpers.Execute[T](IDbConnection connection, Func`1 func, Boolean keepAlive)
bei JTL.Database.DbConnectionExtensionsType.Query[T](IDbConnection connection, IDbCommand command, DbQueryParameters queryParameters, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.Commands.Entities.IdentityCreateCommand.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.oEpHoAXbna(IEnumerable`1 , Type , Int32 , DbLoggingOptions )
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 ameise.database.jtlObjects.AmeiseLiefartikel.AktualisiereDb()
bei ameise.importer.Importer_ArtikelPreiseBestaende.UpdateLieferantenArtikel(AmeiseLiefartikel dboLiefArtikel, dbwArtikel dboArtikel, jtlLieferant oLieferant, Double& fSteuersatz, String cArtikelnummer, jtlLiefartikelpreisList lLiefartikelpreisList)
bei ameise.importer.Importer_ArtikelPreiseBestaende.doWork()
bei ameise.importer.ImportCaller.DoImport(Import myImport, BackgroundWorker worker)
bei ameise.import_cmd.DoImportOneRow()
ClientConnectionId:cb098b71-e743-49c1-9d37-afe91b978f77
Fehlernummer (Error Number):2627,Status (State):1,Klasse (Class):14
SQL-Fehlerinformationen: [SICORDOSERVER\JTLWAWI .Net SqlClient Data Provider] Fehler #2627 (Klasse 14) in Zeile 2: Verletzung der UNIQUE KEY-Einschränkung "UQ_dbo_tliefartikel_tArtikel_kArtikel_tLieferant_kLieferant". Ein doppelter Schlüssel kann in das dbo.tliefartikel-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (21, 4).
SQL-Fehlerinformationen: [SICORDOSERVER\JTLWAWI .Net SqlClient Data Provider] Fehler #3621 (Klasse 0) in Zeile 2: Die Anweisung wurde beendet.
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.1000
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 2627
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
WasHandled = True
ConnectionString = Data Source=SICORDOSERVER\JTLWAWI;Initial Catalog=eazybusiness;Integrated Security=False;Persist Security Info=True;User ID=sa;Password=********;MultipleActiveResultSets=True;Connect Timeout=120;Application Name="1 - Administrator JTL-Wawi C#";Current Language=German;ConnectRetryCount=15
CommandText = DECLARE @Identities TABLE (Id INT NOT NULL);
INSERT INTO [dbo].[tliefartikel] ([tArtikel_kArtikel], [tLieferant_kLieferant], [fEKBrutto], [fEKNetto], [cLiefArtNr], [cWaehrung], [cLiefFrist], [nLieferbar], [cSonstiges], [nStandard], [nMindestAbnahme], [nAbnahmeIntervall], [fLagerbestand], [nLieferzeit], [nDropShipping], [nDropShippingStandard], [cName], [fDurchschnittlicheLieferzeit], [nLagerBeachten], [dLBGeaendert], [cVPEEinheit], [nVPEMenge], [fMwSt], [nLieferzeitAusLieferant]) OUTPUT INSERTED.[kLiefArtikel] AS [Id] INTO @Identities VALUES (@tArtikel_kArtikel, @tLieferant_kLieferant, @fEKBrutto, @fEKNetto, @cLiefArtNr, @cWaehrung, @cLiefFrist, @nLieferbar, @cSonstiges, @nStandard, @nMindestAbnahme, @nAbnahmeIntervall, @fLagerbestand, @nLieferzeit, @nDropShipping, @nDropShippingStandard, @cName, @fDurchschnittlicheLieferzeit, @nLagerBeachten, @dLBGeaendert, @cVPEEinheit, @nVPEMenge, @fMwSt, @nLieferzeitAusLieferant);
SELECT [Id] FROM @Identities ORDER BY [Id];
Parameter @tArtikel_kArtikel = 21
Parameter @tLieferant_kLieferant = 4
Parameter @fEKBrutto = 5.385
Parameter @fEKNetto = 5
Parameter @cLiefArtNr = ''
Parameter @cWaehrung = ''
Parameter @cLiefFrist = ''
Parameter @nLieferbar = 0
Parameter @cSonstiges = ''
Parameter @nStandard = 0
Parameter @nMindestAbnahme = 1
Parameter @nAbnahmeIntervall = 0
Parameter @fLagerbestand = 99
Parameter @nLieferzeit = 0
Parameter @nDropShipping = 0
Parameter @nDropShippingStandard = 0
Parameter @cName = ''
Parameter @fDurchschnittlicheLieferzeit = 0
Parameter @nLagerBeachten = 0
Parameter @dLBGeaendert = NULL
Parameter @cVPEEinheit = ''
Parameter @nVPEMenge = 0
Parameter @fMwSt = 7.7
Parameter @nLieferzeitAusLieferant = 0
LineNr = 2
Codefragment = INSERT INTO [dbo].[tliefartikel] ([tArtikel_kArtikel], [tLieferant_kLieferant], [fEKBrutto], [fEKNetto], [cLiefArtNr], [cWaehrung], [cLiefFrist], [nLieferbar], [cSonstiges], [nStandard], [nMindestAbnahme], [nAbnahmeIntervall], [fLagerbestand], [nLieferzeit], [nDropShipping], [nDropShippingStandard], [cName], [fDurchschnittlicheLieferzeit], [nLagerBeachten], [dLBGeaendert], [cVPEEinheit], [nVPEMenge], [fMwSt], [nLieferzeitAusLieferant]) OUTPUT INSERTED.[kLiefArtikel] AS [Id] INTO @Identities VALUES (@tArtikel_kArtikel, @tLieferant_kLieferant, @fEKBrutto, @fEKNetto, @cLiefArtNr, @cWaehrung, @cLiefFrist, @nLieferbar, @cSonstiges, @nStandard, @nMindestAbnahme, @nAbnahmeIntervall, @fLagerbestand, @nLieferzeit, @nDropShipping, @nDropShippingStandard, @cName, @fDurchschnittlicheLieferzeit, @nLagerBeachten, @dLBGeaendert, @cVPEEinheit, @nVPEMenge, @fMwSt, @nLieferzeitAusLieferant);
Zeitstempel: 2023-11-09T13:00:06
Locale: German
Locale: German
Version: 1.8.7.4
Plattform: Ameise
WawiSeed: 3.0.19439.14701
Prozessname: JTL-wawi-ameise
Physikalischer Speicher: 152805376 / Peak: 158605312
Basispriorität: 6
Prioritätsklasse: BelowNormal
CPU-Zeit (User): 0:00:08,34375
CPU-Zeit (System): 0:00:00,8125
Page-Size (Sytem): 867192 / Peak: 120651776
Page-Size: 112488448 / Peak: 120651776
Offene Handles: 1095
Testweise habe ich mal die selben CSVs per Stammdatenimport abgearbeitet. Keine fehler.
Kann mir jemand sagen wasjdas Problem ist? Sowie ich das verstehe, ist ein gewisser Artikel 21 Schuld, dieser existiert aber nicht.
Vielen Dank im Voraus
Ich nutze Quicksync zum Bestandesabgleich, leider kommt bei allen importen seit 1.8 immer folgender Crash report:
Unbehandelte Ausnahme #5DDB6A4D3A6CEF25 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Verletzung der UNIQUE KEY-Einschränkung "UQ_dbo_tliefartikel_tArtikel_kArtikel_tLieferant_kLieferant". Ein doppelter Schlüssel kann in das dbo.tliefartikel-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (21, 4).
Die Anweisung wurde beendet.
bei System.Data.SqlClient.SqlConnection.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.SqlDataReader.TrySetMetaData(_SqlMetaDataSet metaData, Boolean moreInfo)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
bei System.Data.SqlClient.SqlDataReader.get_MetaData()
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.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
bei System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
bei JTL.Database.DbCommandHelpers.ExecuteReader(IDbCommand command, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.DbCommandExtensionsType.Query[T](IDbCommand command, IColumnMapper mapper, IResultSetReaderStrategy multipleResultSets, CancellationToken cancellationToken, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.DbConnectionExtensionsType.<>c__DisplayClass7_0`1.<Query>b__0()
bei JTL.Database.DbConnectionHelpers.Execute[T](IDbConnection connection, Func`1 func, Boolean keepAlive)
bei JTL.Database.DbConnectionExtensionsType.Query[T](IDbConnection connection, IDbCommand command, DbQueryParameters queryParameters, Int32 timeout, DbLoggingOptions logging)
bei JTL.Database.Commands.Entities.IdentityCreateCommand.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.oEpHoAXbna(IEnumerable`1 , Type , Int32 , DbLoggingOptions )
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 ameise.database.jtlObjects.AmeiseLiefartikel.AktualisiereDb()
bei ameise.importer.Importer_ArtikelPreiseBestaende.UpdateLieferantenArtikel(AmeiseLiefartikel dboLiefArtikel, dbwArtikel dboArtikel, jtlLieferant oLieferant, Double& fSteuersatz, String cArtikelnummer, jtlLiefartikelpreisList lLiefartikelpreisList)
bei ameise.importer.Importer_ArtikelPreiseBestaende.doWork()
bei ameise.importer.ImportCaller.DoImport(Import myImport, BackgroundWorker worker)
bei ameise.import_cmd.DoImportOneRow()
ClientConnectionId:cb098b71-e743-49c1-9d37-afe91b978f77
Fehlernummer (Error Number):2627,Status (State):1,Klasse (Class):14
SQL-Fehlerinformationen: [SICORDOSERVER\JTLWAWI .Net SqlClient Data Provider] Fehler #2627 (Klasse 14) in Zeile 2: Verletzung der UNIQUE KEY-Einschränkung "UQ_dbo_tliefartikel_tArtikel_kArtikel_tLieferant_kLieferant". Ein doppelter Schlüssel kann in das dbo.tliefartikel-Objekt nicht eingefügt werden. Der doppelte Schlüsselwert ist (21, 4).
SQL-Fehlerinformationen: [SICORDOSERVER\JTLWAWI .Net SqlClient Data Provider] Fehler #3621 (Klasse 0) in Zeile 2: Die Anweisung wurde beendet.
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 14.00.1000
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 2627
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
WasHandled = True
ConnectionString = Data Source=SICORDOSERVER\JTLWAWI;Initial Catalog=eazybusiness;Integrated Security=False;Persist Security Info=True;User ID=sa;Password=********;MultipleActiveResultSets=True;Connect Timeout=120;Application Name="1 - Administrator JTL-Wawi C#";Current Language=German;ConnectRetryCount=15
CommandText = DECLARE @Identities TABLE (Id INT NOT NULL);
INSERT INTO [dbo].[tliefartikel] ([tArtikel_kArtikel], [tLieferant_kLieferant], [fEKBrutto], [fEKNetto], [cLiefArtNr], [cWaehrung], [cLiefFrist], [nLieferbar], [cSonstiges], [nStandard], [nMindestAbnahme], [nAbnahmeIntervall], [fLagerbestand], [nLieferzeit], [nDropShipping], [nDropShippingStandard], [cName], [fDurchschnittlicheLieferzeit], [nLagerBeachten], [dLBGeaendert], [cVPEEinheit], [nVPEMenge], [fMwSt], [nLieferzeitAusLieferant]) OUTPUT INSERTED.[kLiefArtikel] AS [Id] INTO @Identities VALUES (@tArtikel_kArtikel, @tLieferant_kLieferant, @fEKBrutto, @fEKNetto, @cLiefArtNr, @cWaehrung, @cLiefFrist, @nLieferbar, @cSonstiges, @nStandard, @nMindestAbnahme, @nAbnahmeIntervall, @fLagerbestand, @nLieferzeit, @nDropShipping, @nDropShippingStandard, @cName, @fDurchschnittlicheLieferzeit, @nLagerBeachten, @dLBGeaendert, @cVPEEinheit, @nVPEMenge, @fMwSt, @nLieferzeitAusLieferant);
SELECT [Id] FROM @Identities ORDER BY [Id];
Parameter @tArtikel_kArtikel = 21
Parameter @tLieferant_kLieferant = 4
Parameter @fEKBrutto = 5.385
Parameter @fEKNetto = 5
Parameter @cLiefArtNr = ''
Parameter @cWaehrung = ''
Parameter @cLiefFrist = ''
Parameter @nLieferbar = 0
Parameter @cSonstiges = ''
Parameter @nStandard = 0
Parameter @nMindestAbnahme = 1
Parameter @nAbnahmeIntervall = 0
Parameter @fLagerbestand = 99
Parameter @nLieferzeit = 0
Parameter @nDropShipping = 0
Parameter @nDropShippingStandard = 0
Parameter @cName = ''
Parameter @fDurchschnittlicheLieferzeit = 0
Parameter @nLagerBeachten = 0
Parameter @dLBGeaendert = NULL
Parameter @cVPEEinheit = ''
Parameter @nVPEMenge = 0
Parameter @fMwSt = 7.7
Parameter @nLieferzeitAusLieferant = 0
LineNr = 2
Codefragment = INSERT INTO [dbo].[tliefartikel] ([tArtikel_kArtikel], [tLieferant_kLieferant], [fEKBrutto], [fEKNetto], [cLiefArtNr], [cWaehrung], [cLiefFrist], [nLieferbar], [cSonstiges], [nStandard], [nMindestAbnahme], [nAbnahmeIntervall], [fLagerbestand], [nLieferzeit], [nDropShipping], [nDropShippingStandard], [cName], [fDurchschnittlicheLieferzeit], [nLagerBeachten], [dLBGeaendert], [cVPEEinheit], [nVPEMenge], [fMwSt], [nLieferzeitAusLieferant]) OUTPUT INSERTED.[kLiefArtikel] AS [Id] INTO @Identities VALUES (@tArtikel_kArtikel, @tLieferant_kLieferant, @fEKBrutto, @fEKNetto, @cLiefArtNr, @cWaehrung, @cLiefFrist, @nLieferbar, @cSonstiges, @nStandard, @nMindestAbnahme, @nAbnahmeIntervall, @fLagerbestand, @nLieferzeit, @nDropShipping, @nDropShippingStandard, @cName, @fDurchschnittlicheLieferzeit, @nLagerBeachten, @dLBGeaendert, @cVPEEinheit, @nVPEMenge, @fMwSt, @nLieferzeitAusLieferant);
Zeitstempel: 2023-11-09T13:00:06
Locale: German
Locale: German
Version: 1.8.7.4
Plattform: Ameise
WawiSeed: 3.0.19439.14701
Prozessname: JTL-wawi-ameise
Physikalischer Speicher: 152805376 / Peak: 158605312
Basispriorität: 6
Prioritätsklasse: BelowNormal
CPU-Zeit (User): 0:00:08,34375
CPU-Zeit (System): 0:00:00,8125
Page-Size (Sytem): 867192 / Peak: 120651776
Page-Size: 112488448 / Peak: 120651776
Offene Handles: 1095
Testweise habe ich mal die selben CSVs per Stammdatenimport abgearbeitet. Keine fehler.
Kann mir jemand sagen wasjdas Problem ist? Sowie ich das verstehe, ist ein gewisser Artikel 21 Schuld, dieser existiert aber nicht.
Vielen Dank im Voraus