Neu Artikel nicht Aktivierbar für Connector Shop

SaschaR1987

Aktives Mitglied
7. Dezember 2019
78
17
Version 1.5.42.0
Artikel lassen sich nicht für den Online Shop Aktivieren!
Jemand eine Lösung es kommt immer eine Fehlermeldung!


Unbehandelte Ausnahme #5ABF3B2D097A9D0 vom Typ System.Data.SqlClient.SqlException in Void OnError(System.Data.SqlClient.SqlException, Boolean, System.Action`1[System.Action])
System.Data.SqlClient.SqlException (0x80131904): Für die aktuelle Transaktion kann kein Commit ausgeführt werden. Sie unterstützt außerdem keine Vorgänge, die in die Protokolldatei schreiben. Führen Sie ein Rollback für die Transaktion aus.
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)
bei JTL.Database.DbConnectionExtensions.<>c__DisplayClass2_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)
bei JTL.Database.Commands.Entities.KeylessCreateCommand.ExecuteChunk(IDatabaseConnection connection, Int32 startOfLastChunk)
bei JTL.Database.Commands.Entities.CreateCommandBase.Execute(IDatabaseConnection connection)
bei jtlDatabase.jtlObjectRepositoryBase.pQ6dMNcHAE(IEnumerable`1 , Type )
bei jtlDatabase.jtlObjectRepositoryBase.GoddSEP1Bd(IGrouping`2 )
bei System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
bei System.Linq.Enumerable.Sum(IEnumerable`1 source)
bei jtlDatabase.jtlObjectRepositoryBase.Create(IEnumerable`1 items)
bei jtlDatabase.jtlObject.insertInDB()
bei jtlDatabase.jtlObject.Save()
bei jtlDatabase.classes.Models.Shop.Artikel.ArtikelShop.UpdateParentAndSaveInDb(Int32 parentPk)
bei jtlDatabase.Collections.SimpleDeltaBindingChildList`1.UpdateParentAndSyncToDatabase(Int32 parentPk)
bei jtlDatabase.classes.Models.Artikeldetails.Artikel.HDkdKNssMgl()
bei jtlDatabase.classes.Models.Artikeldetails.Artikel.s6OdKSVlqfC()
bei jtlDatabase.classes.Models.Artikeldetails.Artikel.SaveArtikelChanges()
bei jtlDatabase.classes.Models.Artikeldetails.Artikel.Save(Boolean overrideNotifyAsNew, Boolean skipNotify)
bei jtlDatabase.classes.Models.Artikeldetails.Artikel.Save()
bei jtlCore.Models.MVCModels.ArtikelDetails.Context.ArtikelDetailsContext.Save()
bei jtlCore.ControllerClasses.ArtikelDetails.ArtikelDetailsController.TPbcBrTink9()
bei jtlCore.ControllerClasses.ArtikelDetails.ArtikelDetailsController.<ClickSaveOnRunAsync>d__59.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
bei jtlCore.ControllerClasses.ArtikelDetails.ArtikelDetailsController.<ClickSaveOnRunAndCloseAsync>d__41.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
bei System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
ClientConnectionId:b5a4ddce-8fc4-429a-952e-960ff52f200d
Fehlernummer (Error Number):3930,Status (State):1,Klasse (Class):16
SQL-Fehlerinformationen: [DESKTOP-NNB7DAK,1443\JTLWAWI .Net SqlClient Data Provider] Fehler #3930 (Klasse 16) in Zeile 16: Für die aktuelle Transaktion kann kein Commit ausgeführt werden. Sie unterstützt außerdem keine Vorgänge, die in die Protokolldatei schreiben. Führen Sie ein Rollback für die Transaktion aus. dbo.spErrorHandler
SQL-Fehlerinformationen: [DESKTOP-NNB7DAK,1443\JTLWAWI .Net SqlClient Data Provider] Fehler #3621 (Klasse 0) in Zeile 1: Die Anweisung wurde beendet.
HelpLink.ProdName = Microsoft SQL Server
HelpLink.ProdVer = 15.00.2080
HelpLink.EvtSrc = MSSQLServer
HelpLink.EvtID = 3930
HelpLink.BaseHelpUrl = http://go.microsoft.com/fwlink
HelpLink.LinkId = 20476
WasHandled = True
ConnectionString = Data Source=DESKTOP-NNB7DAK,1443\JTLWAWI;Initial Catalog=eazybusiness;Integrated Security=False;Persist Security Info=True;User ID=sa;Password=*****;MultipleActiveResultSets=True;Connect Timeout=120;Application Name=" JTL-Wawi C#";Current Language=German
CommandText = INSERT INTO [dbo].[tArtikelShop] ([kArtikel], [kShop], [cInet], [cDelInet], [nAktion], [nInBearbeitung]) VALUES (@kArtikel, @Kshop, @cInet, @cDelInet, @nAktion, @nInBearbeitung);

Parameter @kArtikel = 49178
Parameter @Kshop = 4
Parameter @cInet = 'Y'
Parameter @cDelInet = ''
Parameter @nAktion = 0
Parameter @nInBearbeitung = 0
LineNr = 16
Codefragment =
System.Object = <null>

2021-03-24T15:48:05 DEBUG - SELECT * FROM [tArtikelbildPlattformSeo] WHERE [kArtikelbildPlattform] = @kArtikelbildPlattform
@kArtikelbildPlattform = 606482
2021-03-24T15:48:05 DEBUG - Dauer bis zum Reader: 0ms
2021-03-24T15:48:05 DEBUG - Dauer: 0 ms, 0 Zeilen
2021-03-24T15:48:05 DEBUG - SELECT * FROM [tArtikelbildPlattformSeo] WHERE [kArtikelbildPlattform] = @kArtikelbildPlattform
@kArtikelbildPlattform = 606492
2021-03-24T15:48:05 DEBUG - Dauer bis zum Reader: 0ms
2021-03-24T15:48:05 DEBUG - Dauer: 0 ms, 0 Zeilen
2021-03-24T15:48:05 DEBUG - SELECT * FROM [tArtikelbildPlattformSeo] WHERE [kArtikelbildPlattform] = @kArtikelbildPlattform
@kArtikelbildPlattform = 606502
2021-03-24T15:48:05 DEBUG - Dauer bis zum Reader: 0ms
2021-03-24T15:48:05 DEBUG - Dauer: 0 ms, 0 Zeilen
2021-03-24T15:48:05 DEBUG - SELECT * FROM [tArtikelbildPlattformSeo] WHERE [kArtikelbildPlattform] = @kArtikelbildPlattform
@kArtikelbildPlattform = 606512
2021-03-24T15:48:05 DEBUG - Dauer bis zum Reader: 0ms
2021-03-24T15:48:05 DEBUG - Dauer: 0 ms, 0 Zeilen
2021-03-24T15:48:05 DEBUG - CREATE TABLE #ccad7fe3ba0a44f9b072ca05f617ddb5 ( kSprache Int NOT NULL , cAlternativtext NVarChar(max) NULL , kBild Int NOT NULL , kArtikel Int NOT NULL , kPlattform Int NOT NULL , kShop Int NOT NULL );
2021-03-24T15:48:05 DEBUG - Dauer: 1ms
2021-03-24T15:48:05 DEBUG -
-- Änderungen an Artikel Bildern synchronisieren
WITH targetData AS
(
SELECT tArtikelbildPlattformSeo.*
FROM dbo.tArtikelbildPlattformSeo
JOIN dbo.tArtikelbildPlattform ON tArtikelbildPlattform.kArtikelBildPlattform = tArtikelbildPlattformSeo.kArtikelBildPlattform
WHERE tArtikelbildPlattform.kArtikel IN ( @kArtikel )
)

MERGE INTO targetData
USING (SELECT #ccad7fe3ba0a44f9b072ca05f617ddb5.*, tArtikelbildPlattform.kArtikelBildPlattform
FROM #ccad7fe3ba0a44f9b072ca05f617ddb5
JOIN dbo.tArtikelbildPlattform ON #ccad7fe3ba0a44f9b072ca05f617ddb5.kArtikel = tArtikelbildPlattform.kArtikel
AND #ccad7fe3ba0a44f9b072ca05f617ddb5.kPlattform = tArtikelbildPlattform.kPlattform
AND #ccad7fe3ba0a44f9b072ca05f617ddb5.kShop = tArtikelbildPlattform.kShop
AND #ccad7fe3ba0a44f9b072ca05f617ddb5.kBild = tArtikelbildPlattform.kBild ) AS sourceData
ON targetData.kArtikelBildPlattform = sourceData.kArtikelBildPlattform AND targetData.kSprache = sourceData.kSprache

WHEN NOT MATCHED BY TARGET THEN
INSERT (kArtikelBildPlattform, kSprache, cAlternativtext)
VALUES (sourceData.kArtikelBildPlattform, sourceData.kSprache, sourceData.cAlternativtext)

WHEN MATCHED AND ( targetData.cAlternativtext <> sourceData.cAlternativtext )
THEN
UPDATE SET
targetData.cAlternativtext= sourceData.cAlternativtext

WHEN NOT MATCHED BY SOURCE THEN
DELETE;
@kArtikel = 49178
2021-03-24T15:48:05 DEBUG - Dauer: 10ms, AffectedRows: 0
2021-03-24T15:48:05 DEBUG - INSERT INTO [dbo].[tArtikelShop] ([kArtikel], [kShop], [cInet], [cDelInet], [nAktion], [nInBearbeitung]) VALUES (@kArtikel, @Kshop, @cInet, @cDelInet, @nAktion, @nInBearbeitung);

@kArtikel = 49178
@Kshop = 4
@cInet = 'Y'
@cDelInet = ''
@nAktion = 0
@nInBearbeitung = 0
2021-03-24T15:48:05 WARN - Dauer: 22ms, Error: Für die aktuelle Transaktion kann kein Commit ausgeführt werden. Sie unterstützt außerdem keine Vorgänge, die in die Protokolldatei schreiben. Führen Sie ein Rollback für die Transaktion aus.
Die Anweisung wurde beendet.
2021-03-24T15:48:05 DEBUG - IF OBJECT_ID('dbo.tErrorlog', 'U') IS NULL SELECT 0 ELSE SELECT 1;
2021-03-24T15:48:05 DEBUG - Dauer: 0ms, Result: 1
2021-03-24T15:48:05 DEBUG - SELECT TOP 1 * FROM dbo.tErrorlog WHERE cRechnername = @cRechnername AND nFehlerID = @nFehlerID ORDER BY dErstelltUtc ASC
@cRechnername = 'DESKTOP-G01R63F'
@nFehlerID = 408688140536490448
2021-03-24T15:48:05 DEBUG - Dauer bis zum Reader: 1ms
2021-03-24T15:48:05 DEBUG - Dauer: 0 ms, 1 Zeilen
2021-03-24T15:48:05 DEBUG - UPDATE [dbo].[tErrorlog] SET dErstelltUtc = @dErstelltUtc_0 WHERE kErrorlog = @kErrorlog_0;

@dErstelltUtc_0 = '2021-03-24 02:48:05'
@kErrorlog_0 = 1128
2021-03-24T15:48:05 DEBUG - Dauer: 1ms, AffectedRows: 1
Zeitstempel: 2021-03-24T15:48:07
Locale: German (Germany)
Locale: German (Germany)
Version: 1.5.42.0
Plattform: Wawi
WawiSeed: 0.7.71441.77001
Prozessname: JTL-Wawi
Physikalischer Speicher: 581525504 / Peak: 591101952
Basispriorität: 8
Prioritätsklasse: Normal
CPU-Zeit (User): 0:00:23,546875
CPU-Zeit (System): 0:00:11,4375
Page-Size (Sytem): 2169184 / Peak: 570413056
Page-Size: 558702592 / Peak: 570413056
Offene Handles: 1880
Database:
Build: 2103221059 b1c1374385db9dbc54f49f109bf809557b468868
 

Immanuel

Gesperrter Benutzer
24. August 2016
1.542
329
Hallo @SaschaR1987,

das Problem ist bekannt und sollte mit nachfolgender SQL in der JTL-Wawi Datenbank behoben werden können. Dieser Fix fließt voraussichtlich in JTL-Wawi Version 1.5.43.0.
SQL:
ALTER TRIGGER [dbo].[tgr_tArtikelShop_INSUP]
ON [dbo].[tArtikelShop]
AFTER INSERT, UPDATE
AS
SET NOCOUNT ON;
SET ANSI_NULLS, ANSI_NULL_DFLT_ON, ANSI_PADDING, CONCAT_NULL_YIELDS_NULL, XACT_ABORT ON;
BEGIN TRY
    IF NOT EXISTS (SELECT 1 FROM INSERTED) RETURN;
    IF TRIGGER_NESTLEVEL(@@PROCID) > 1 RETURN;

    IF (OBJECT_ID('tempdb..#tgrtArtikelShopInsup') IS NOT NULL)
    BEGIN
        DROP TABLE #tgrtArtikelShopInsup;
    END

    CREATE TABLE #tgrtArtikelShopInsup
    (
        kArtikel INT NOT NULL,
        kShop INT NOT NULL,
        nInserted BIT NOT NULL
    );

    INSERT INTO #tgrtArtikelShopInsup (kArtikel, kShop, nInserted)
        SELECT
            Inserted.kArtikel,
            Inserted.kShop,
            CASE WHEN Deleted.kArtikel IS NULL THEN 1 ELSE 0 END AS nInserted
        FROM Inserted
        FULL OUTER JOIN Deleted ON Deleted.kArtikel = Inserted.kArtikel
            AND Deleted.kShop = Inserted.kShop

    IF(UPDATE(kArtikel))
    BEGIN
        IF EXISTS (SELECT 1 FROM #tgrtArtikelShopInsup WHERE #tgrtArtikelShopInsup.nInserted = 1)
        BEGIN
            INSERT INTO dbo.tMerkmalBildPlattform (kMerkmal, kBild, kPlattform, kShop, nInet)
                SELECT
                    tArtikelMerkmal.kMerkmal,
                    StandardBild.kBild,
                    2 AS kPlattform,
                    #tgrtArtikelShopInsup.kShop,
                    1 AS nInet
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tArtikelMerkmal ON tArtikelMerkmal.kArtikel = #tgrtArtikelShopInsup.kArtikel
                JOIN dbo.tMerkmalBildPlattform AS StandardBild ON StandardBild.kMerkmal = tArtikelMerkmal.kMerkmal
                    AND (StandardBild.kShop IS NULL OR StandardBild.kShop = 0)
                LEFT JOIN dbo.tMerkmalBildPlattform ON tMerkmalBildPlattform.kMerkmal = tArtikelMerkmal.kMerkmal
                    AND tMerkmalBildPlattform.kShop = #tgrtArtikelShopInsup.kShop
                WHERE tMerkmalBildPlattform.kShop IS NULL
                    AND #tgrtArtikelShopInsup.nInserted = 1
                GROUP BY tArtikelMerkmal.kMerkmal,
                    #tgrtArtikelShopInsup.kShop,
                    tMerkmalBildPlattform.kBild,
                    tMerkmalBildPlattform.kShop,
                    StandardBild.kBild;

            INSERT INTO dbo.tMerkmalwertBildPlattform (kMerkmalwert, kBild, kPlattform, kShop, nInet)
                SELECT
                    tArtikelMerkmal.kMerkmalWert,
                    StandardBild.kBild,
                    2 AS kPlattform,
                    #tgrtArtikelShopInsup.kShop,
                    1 AS nInet
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tArtikelMerkmal ON tArtikelMerkmal.kArtikel = #tgrtArtikelShopInsup.kArtikel
                JOIN dbo.tMerkmalwertBildPlattform AS StandardBild ON StandardBild.kMerkmalwert = tArtikelMerkmal.kMerkmalWert
                    AND (StandardBild.kShop IS NULL OR StandardBild.kShop = 0)
                LEFT JOIN dbo.tMerkmalwertBildPlattform ON tMerkmalwertBildPlattform.kMerkmalwert = tArtikelMerkmal.kMerkmalWert
                    AND tMerkmalwertBildPlattform.kShop = #tgrtArtikelShopInsup.kShop
                WHERE tMerkmalwertBildPlattform.kShop IS NULL
                    AND #tgrtArtikelShopInsup.nInserted = 1
                GROUP BY tArtikelMerkmal.kMerkmalWert,
                    #tgrtArtikelShopInsup.kShop,
                    tMerkmalwertBildPlattform.kBild,
                    tMerkmalwertBildPlattform.kShop,
                    StandardBild.kBild;

            --
            -- tEigenschaftWertPict fuellen
            --
            DECLARE @tpk int;
            SET @tpk = (SELECT tpk.nummer FROM tpk WHERE tpk.cName = 'tEigenschaftWertPict');

            INSERT INTO tEigenschaftWertPict (kEigenschaftWertPict, kEigenschaftWert, kBild, nInet, kPlattform, kShop)
                SELECT
                    @tpk + ROW_NUMBER() OVER (ORDER BY #tgrtArtikelShopInsup.kArtikel) AS kEigenschaftWertPict,
                    teigenschaftwert.kEigenschaftWert,
                    StandardBild.kBild,
                    1 AS nInet,
                    2 AS kPlattform,
                    #tgrtArtikelShopInsup.kShop
                FROM #tgrtArtikelShopInsup
                JOIN dbo.teigenschaft ON teigenschaft.kArtikel = #tgrtArtikelShopInsup.kArtikel
                JOIN dbo.teigenschaftwert ON teigenschaftwert.kEigenschaft = teigenschaft.kEigenschaft
                JOIN dbo.tEigenschaftWertPict AS StandardBild ON StandardBild.kEigenschaftWert = teigenschaftwert.kEigenschaftWert
                    AND ISNULL(StandardBild.kPlattform, 0) IN (1, 0)
                WHERE #tgrtArtikelShopInsup.nInserted = 1

            UPDATE tpk
            SET nummer = (ISNULL((SELECT MAX(ISNULL(kEigenschaftWertPict,0)) FROM tEigenschaftWertPict), 0) + 1),
                dChanged = (SELECT CONVERT(VARCHAR(10),GETDATE(),121))
            WHERE cName = 'tEigenschaftWertPict';

            --
            -- Connector
            --
            --
            -- Artikel vollständig zu Webshops senden, wenn Änderungen vorgenommen wurden
            --
            UPDATE dbo.tArtikelShop
            SET tArtikelShop.nAktion = 1,
                tArtikelShop.cInet = 'Y'
            FROM dbo.tArtikelShop
            JOIN #tgrtArtikelShopInsup ON #tgrtArtikelShopInsup.kArtikel = tArtikelShop.kArtikel
                AND #tgrtArtikelShopInsup.kShop = tArtikelShop.kShop
                AND #tgrtArtikelShopInsup.nInserted = 1;

            --
            -- Vater mit zum Webshop schicken wenn Kind geändert
            --
            UPDATE dbo.tArtikelShop
                SET tArtikelShop.nAktion = 1,
                    tArtikelShop.cInet = 'Y'
            FROM dbo.tArtikelShop
            JOIN dbo.tArtikel ON tArtikel.kVaterArtikel = tArtikelShop.kArtikel
            JOIN #tgrtArtikelShopInsup ON #tgrtArtikelShopInsup.kArtikel = tArtikel.kArtikel
                AND #tgrtArtikelShopInsup.kShop = tArtikelShop.kShop
                AND #tgrtArtikelShopInsup.nInserted = 1;
               
            --
            -- Bilder vollständig zu Webshop senden, wenn Änderungen vorgenommen wurden
            --
            UPDATE dbo.tArtikelbildPlattform
                SET dbo.tArtikelbildPlattform.nInet = 1
            FROM dbo.tArtikelbildPlattform
            JOIN #tgrtArtikelShopInsup ON dbo.tArtikelbildPlattform.kArtikel = #tgrtArtikelShopInsup.kArtikel
                AND dbo.tArtikelbildPlattform.kShop = #tgrtArtikelShopInsup.kShop
            WHERE dbo.tArtikelbildPlattform.nInet = 0
                AND #tgrtArtikelShopInsup.nInserted = 1;

            --
            -- Evtl. bestehenden Löscheinträge in tQueue entfernen
            --
            DELETE dbo.tQueue
            FROM dbo.tQueue
            JOIN #tgrtArtikelShopInsup ON #tgrtArtikelShopInsup.kShop = tQueue.kShop
                AND #tgrtArtikelShopInsup.kArtikel = tQueue.kWert
            WHERE tQueue.kPlattform = 2
                AND tQueue.cName = 'tArtikel'
                AND tQueue.nAction = 2
                AND #tgrtArtikelShopInsup.nInserted = 1;

            IF (OBJECT_ID('tempdb..#tgrtArtikelShopInsupConnector') IS NOT NULL)
            BEGIN
                DROP TABLE #tgrtArtikelShopInsupConnector;
            END

            CREATE TABLE #tgrtArtikelShopInsupConnector
            (
                kHersteller INT NOT NULL,
                kShop INT NOT NULL,
                nAnzahl INT NOT NULL
            );

            INSERT INTO #tgrtArtikelShopInsupConnector (kHersteller, kShop, nAnzahl)
                SELECT
                    tArtikel.kHersteller,
                    #tgrtArtikelShopInsup.kShop,
                    ISNULL(Result.Anzahl, 0)
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tShopKonfiguration ON tShopKonfiguration.kShop = #tgrtArtikelShopInsup.kShop
                    AND tShopKonfiguration.nHerstellerGefiltertSenden = 1
                JOIN dbo.tArtikel ON tArtikel.kArtikel = #tgrtArtikelShopInsup.kArtikel
                LEFT JOIN
                (
                    SELECT
                        tHersteller.kHersteller,
                        tArtikelShop.kShop,
                        COUNT(1) AS Anzahl
                    FROM dbo.tArtikel
                    JOIN dbo.tHersteller ON tHersteller.kHersteller = tArtikel.kHersteller
                    JOIN dbo.tArtikelShop ON tArtikelShop.kArtikel = tArtikel.kArtikel
                    GROUP BY tHersteller.kHersteller,
                        tArtikelShop.kShop
                ) AS Result ON Result.kHersteller = tArtikel.kHersteller
                    AND Result.kShop = #tgrtArtikelShopInsup.kShop
                WHERE #tgrtArtikelShopInsup.nInserted = 1

            DELETE dbo.tQueue
            FROM dbo.tQueue
            JOIN #tgrtArtikelShopInsupConnector ON #tgrtArtikelShopInsupConnector.kHersteller = tQueue.kWert
                AND #tgrtArtikelShopInsupConnector.nAnzahl = 1
                AND #tgrtArtikelShopInsupConnector.kShop = tQueue.kShop
                AND tQueue.cName = 'tHersteller'
                AND tQueue.nAction = 2

            INSERT INTO tQueue(kWert, kShop, cName, kPlattform, nAction)
                SELECT
                    #tgrtArtikelShopInsupConnector.kHersteller,
                    #tgrtArtikelShopInsupConnector.kShop,
                    'tHersteller' AS cName,
                    2 AS kPlattform,
                    1 AS nAction
                FROM #tgrtArtikelShopInsupConnector
                GROUP BY #tgrtArtikelShopInsupConnector.kHersteller,
                    #tgrtArtikelShopInsupConnector.kShop,
                    #tgrtArtikelShopInsupConnector.nAnzahl
                HAVING #tgrtArtikelShopInsupConnector.nAnzahl = COUNT(#tgrtArtikelShopInsupConnector.kHersteller)

            --
            -- POS
            --
            IF(OBJECT_ID('tempdb..#tgr_tArtikelShop_Sync') IS NOT NULL)
            BEGIN
                DROP TABLE #tgr_tArtikelShop_Sync;
            END

            CREATE TABLE #tgr_tArtikelShop_Sync
            (
                kId INT,
                kShop INT,
                nSyncType TINYINT,
                nEntityType TINYINT,
                kEntityId INT,
            );

            --
            -- Artikel
            --
            INSERT INTO #tgr_tArtikelShop_Sync (kId, kShop, nSyncType, nEntityType, kEntityId)
                SELECT
                    #tgrtArtikelShopInsup.kArtikel,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    1 AS nEntityType,
                    tEntityPlatform.kEntityId
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tShop ON tShop.kShop = #tgrtArtikelShopInsup.kShop
                LEFT JOIN Sync.tEntityPlatform ON tEntityPlatform.kShop = #tgrtArtikelShopInsup.kShop
                    AND tEntityPlatform.kEntityId = #tgrtArtikelShopInsup.kArtikel
                    AND tEntityPlatform.nEntityType = 1
                WHERE tShop.nTyp NOT IN (2, 3)
                    AND #tgrtArtikelShopInsup.nInserted = 1
                GROUP BY #tgrtArtikelShopInsup.kArtikel,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    tEntityPlatform.kEntityId;

            --
            -- Stueckliste
            --
            INSERT INTO #tgr_tArtikelShop_Sync (kId, kShop, nSyncType, nEntityType, kEntityId)
                SELECT
                    tArtikel.kStueckliste,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    7 AS nEntityType,
                    tEntityPlatform.kEntityId
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tArtikel ON tArtikel.kArtikel = #tgrtArtikelShopInsup.kArtikel
                JOIN dbo.tShop ON tShop.kShop = #tgrtArtikelShopInsup.kShop
                LEFT JOIN Sync.tEntityPlatform ON tEntityPlatform.kShop = #tgrtArtikelShopInsup.kShop
                    AND tEntityPlatform.kEntityId = tArtikel.kStueckliste
                    AND tEntityPlatform.nEntityType = 7
                WHERE tArtikel.kStueckliste > 0
                    AND tShop.nTyp NOT IN (2, 3)
                    AND #tgrtArtikelShopInsup.nInserted = 1
                GROUP BY tArtikel.kStueckliste,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    tEntityPlatform.kEntityId;

            --
            -- Konfiggruppe
            --
            INSERT INTO #tgr_tArtikelShop_Sync (kId, kShop, nSyncType, nEntityType, kEntityId)
                SELECT
                    tartikelkonfiggruppe.kKonfiggruppe,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    8 AS nEntityType,
                    tEntityPlatform.kEntityId
                FROM #tgrtArtikelShopInsup
                JOIN dbo.tartikelkonfiggruppe ON tartikelkonfiggruppe.kArtikel = #tgrtArtikelShopInsup.kArtikel
                JOIN dbo.tShop ON tShop.kShop = #tgrtArtikelShopInsup.kShop
                LEFT JOIN Sync.tEntityPlatform ON tEntityPlatform.kShop = #tgrtArtikelShopInsup.kShop
                    AND tEntityPlatform.kEntityId = tartikelkonfiggruppe.kKonfiggruppe
                    AND tEntityPlatform.nEntityType = 8
                WHERE tShop.nTyp NOT IN (2, 3)
                    AND #tgrtArtikelShopInsup.nInserted = 1
                GROUP BY tartikelkonfiggruppe.kKonfiggruppe,
                    #tgrtArtikelShopInsup.kShop,
                    tShop.nTyp,
                    tEntityPlatform.kEntityId;

            --
            -- Konfigitem
            --
            INSERT INTO #tgr_tArtikelShop_Sync (kId, kShop, nSyncType, nEntityType, kEntityId)
                SELECT
                    tkonfigitem.kKonfigitem,
                    #tgr_tArtikelShop_Sync.kShop,
                    #tgr_tArtikelShop_Sync.nSyncType,
                    9 AS nEntityType,
                    tEntityPlatform.kEntityId
                FROM dbo.tkonfigitem
                JOIN #tgr_tArtikelShop_Sync ON #tgr_tArtikelShop_Sync.kId = tkonfigitem.kKonfiggruppe
                    AND #tgr_tArtikelShop_Sync.nEntityType = 8
                LEFT JOIN Sync.tEntityPlatform ON tEntityPlatform.kShop = #tgr_tArtikelShop_Sync.kShop
                    AND tEntityPlatform.kEntityId = tkonfigitem.kKonfigitem
                    AND tEntityPlatform.nEntityType = 9
                GROUP BY tkonfigitem.kKonfigitem,
                    #tgr_tArtikelShop_Sync.kShop,
                    #tgr_tArtikelShop_Sync.nSyncType,
                    tEntityPlatform.kEntityId;

            --
            -- Insert tEntityPlatform
            --
            IF EXISTS (SELECT TOP(1) 1 FROM #tgr_tArtikelShop_Sync
                        WHERE #tgr_tArtikelShop_Sync.kEntityId IS NOT NULL)
            BEGIN
                UPDATE Sync.tEntityPlatform
                    SET tEntityPlatform.dActive = GETDATE(),
                        tEntityPlatform.dInactive = NULL
                FROM Sync.tEntityPlatform
                JOIN #tgr_tArtikelShop_Sync ON #tgr_tArtikelShop_Sync.kEntityId = tEntityPlatform.kEntityId
                    AND #tgr_tArtikelShop_Sync.kShop = tEntityPlatform.kShop
                    AND tEntityPlatform.nEntityType = #tgr_tArtikelShop_Sync.nEntityType;
            END

            IF EXISTS (SELECT TOP(1) 1 FROM #tgr_tArtikelShop_Sync
                        WHERE #tgr_tArtikelShop_Sync.kEntityId IS NULL)
            BEGIN
                INSERT INTO Sync.tEntityPlatform (kEntityId, nEntityType, kShop, dActive, dInactive)
                    SELECT
                        #tgr_tArtikelShop_Sync.kId AS kEntityId,
                        #tgr_tArtikelShop_Sync.nEntityType AS nEntityType,
                        #tgr_tArtikelShop_Sync.kShop AS kShop,
                        GETDATE() AS dActive,
                        NULL AS dInactive
                    FROM #tgr_tArtikelShop_Sync
                    WHERE #tgr_tArtikelShop_Sync.kEntityId IS NULL;
            END

            --
            -- Insert tEntityTracking
            --
            INSERT INTO Sync.tEntityTracking (kEntityId, nEntityType, nSyncType, dCreated, dLastModified)
                SELECT
                    #tgr_tArtikelShop_Sync.kId AS kEntityId,
                    #tgr_tArtikelShop_Sync.nEntityType AS nEntityType,
                    #tgr_tArtikelShop_Sync.nSyncType,
                    GETDATE() AS dCreated,
                    GETDATE() AS dLastModified
                FROM #tgr_tArtikelShop_Sync  
                LEFT JOIN Sync.tEntityTracking ON tEntityTracking.kEntityId = #tgr_tArtikelShop_Sync.kId
                    AND tEntityTracking.nEntityType = #tgr_tArtikelShop_Sync.nEntityType
                    AND tEntityTracking.nSyncType = #tgr_tArtikelShop_Sync.nSyncType
                WHERE Sync.tEntityTracking.kEntityId IS NULL
                GROUP BY #tgr_tArtikelShop_Sync.kId,
                    #tgr_tArtikelShop_Sync.nEntityType,
                    #tgr_tArtikelShop_Sync.nSyncType;
        END
    END
END TRY
BEGIN CATCH
    DECLARE @DeadlockRetries TINYINT = 0;
    EXEC dbo.spErrorHandler
        @DeadlockRetries = @DeadlockRetries OUTPUT;
    THROW;
END CATCH

GO
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu eBay Artikel automatisch Menge einstellen - geht nicht Einrichtung und Installation von JTL-eazyAuction 0
Neue Artikel werden nicht angezeigt im Shop JTL-Wawi 1.9 1
Artikel können nicht mehr aufgerufen werden, Artikelkategorier fehlerhafte Anzeige JTL-Wawi 1.9 2
Neu Artikel werden als online in der WAWI angezeigt sind es aber nicht! Shopware-Connector 0
Neu WARNUNG JTL GPSR Plugin 1.0.2 funktioniert nicht, wenn Artikel keine Beschreibung hat Plugins für JTL-Shop 20
Neu Kann Artikel nicht für den Shop aktivieren User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel mit Zustand beschädigt wird nicht als eigenständiger Artikel in der WaWi angezeigt User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikel im Zulauf werden nicht angezeigt Betrieb / Pflege von JTL-Shop 8
Neu Artikel wird nach Auswahl der Variante nicht mehr angezeigt JTL-Shop - Fehler und Bugs 3
Neu Artikel lässt sich im Shop 5.2.5 über die Wawi nicht löschen JTL-Shop - Fehler und Bugs 2
Neu Artikel Bild aus anderer Quelle importieren funktioniert nicht JTL-Wawi - Fehler und Bugs 4
Neu Artikel gelöscht neu anlegen nicht möglich da bereits vorhanden User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel- und Versandgewicht bei Stücklisten wird nicht nachberechnet JTL-Version 1.8.12.2 JTL-Wawi - Fehler und Bugs 10
Neu Amazon Gutschriften kommen in den Status "Amazon Artikel nicht in Bestellung" und werden nicht übernommen User helfen Usern - Fragen zu JTL-Wawi 0
Hersteller-Adresse mit auf Artikel-Etikett und Rechnung JTL-Wawi 1.9 1
Neu verschiedene Größen für ein Artikel Allgemeine Fragen zu JTL-POS 4
Einkauf einzelner Artikel - Verkauf als Set JTL-Wawi 1.9 1
Neu Artikel Leichen bereinigen in der Datenbank Betrieb / Pflege von JTL-Shop 3
Neu Artikel nur zur Ansicht in Shop ... ohne Kauf-Button Betrieb / Pflege von JTL-Shop 2
Artikel im Shop sichtbar obwohl kein Lagerbestand. JTL-Wawi 1.6 2
Neu Pickliste für Aufträge mit mehr als einem Artikel aus verschiedenen Lagerbereichen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
kaufland.de Artikel steht seit Tagen "in Prüfung" kaufland.de - Anbindung (SCX) 0
kaufland.de Artikel steht seit Tagen "in Prüfung" JTL-Wawi 1.9 0
Neu 📢 Plugin "Verbotene Artikel: Kauf nur für richtige Kundengruppe" by NETZdinge.de Plugins für JTL-Shop 0
Neu GPSR Umsetzung auch für "Artikel auf Anfrage" nötig? User helfen Usern - Fragen zu JTL-Wawi 2
Neu WMS - Mini Artikel ohne Barcode Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Neu Neuen ähnlichen Artikel direkt aus Auftrag - wie erstellen? User helfen Usern - Fragen zu JTL-Wawi 3
GPSR Produktsicherheit - Stücklisten Artikel (Bundle) verschiedene Hersteller JTL-Wawi 1.9 2
Neu Artikel-Filter / Suche: Artikel ohne Verantwortliche Person (GPSR) User helfen Usern - Fragen zu JTL-Wawi 4
Neu Koupon % Artikel ausschließen Allgemeine Fragen zu JTL-Shop 0
Kompletter SCX Abgleich hängt fest bei Artikel (Senden) 1. Aufruf [0,00%] 0/0 kaufland.de - Anbindung (SCX) 1
Neu Amazon Artikel mehrfach listen / Generelle Frage / Amazon-Anbindung - Ideen, Lob und Kritik 2
Ebay JTL-Wawi "Hersteller" + "Verantwortliche Person" auf mehrere Artikel übertragen GPSR JTL-Wawi 1.9 7
Neu Neues Lager, Artikel sind angelegt, Bestände auf 0, wie pflege ich jetzt die Bestände korrekt ein ? User helfen Usern - Fragen zu JTL-Wawi 6
Neu Alle Artikel updaten GPSR eBay-Anbindung - Fehler und Bugs 1
Neu Kategorie für Webshop aktiv setzen unter Beibehaltung des aktiv-Status aller enthaltener Artikel User helfen Usern - Fragen zu JTL-Wawi 6
Neu Ab gewisser Bon-Summe einen Artikel kostenfrei dazu. Wie? Fragen rund um LS-POS 0
GPSR für nur einen Artikel des Hersteller JTL-Wawi 1.9 2
Neu Export der Shop-Artikel JTL-Ameise - Fehler und Bugs 2
Gelöst Preisstaffelung bei Mengenverkauf für einen Artikel erstellen Allgemeine Fragen zu JTL-POS 4
Neu Pickliste, Artikel summiert Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 5
Neu Artikel Etikett beim Versandvorgang drucken Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Nur geänderte Artikel per Ameise exportieren JTL Ameise - Eigene Exporte 5
Neu Versandkostenfreie Artikel von Versandkostengrenze ausschließen Betrieb / Pflege von JTL-Shop 2
Neu Artikel Bilder bei neuen Amazon Artikeln immer nur JTL Dummy Bild Amazon-Lister - Fehler und Bugs 1
Neu Artikel-Bilder je Plattform JTL Ameise - Eigene Exporte 2
Neu Technische Zeichnung im Artikel hinterlegen JTL-Plan&Produce - Ideen, Lob und Kritik 0
Neu Neue Artikel mit Ameise und EAN aus JTL JTL-Workflows - Ideen, Lob und Kritik 1
In Bearbeitung Unteilbare Artikel in POS trotzdem teilbar Allgemeine Fragen zu JTL-POS 1
In Diskussion Bestellte Artikel werden über alle Lager reserviert (WaWi + POS) JTL-Workflows - Fehler und Bugs 15

Ähnliche Themen