Neu Artikel nicht Aktivierbar für Connector Shop

SaschaR1987

Aktives Mitglied
7. Dezember 2019
71
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 Artikel nicht pro Stk. sondern pro kg verkaufen User helfen Usern 2
Issue angelegt [WAWI-75449] Artikel duplizieren - ASIN wird nicht mit dupliziert. JTL-Wawi - Fehler und Bugs 1
Artikel wurden über Weclapp über FFN-Connect an JTL FFN übermittelt jedoch leider nicht an Wawi & WMS JTL-Wawi 1.8 0
Beantwortet WF Mail wenn Amazon Artikel nicht verknüpft ist JTL-Workflows - Ideen, Lob und Kritik 1
Neu Kurzbeschreibung von einem "Stücklisten-Artikel" wird in der Rechnungskorrektur Vorlage nicht angezeigt. Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 1
Neu Artikel in SQLDB und MariaDB vorhanden aber nicht in Wawi JTL-Wawi - Fehler und Bugs 2
Lieferanten EK wird nicht auf Artikelebene kopiert? EK ist überall 0 beim Artikel. JTL-Wawi 1.8 8
Neu Artikel werden nicht mehr aktualisiert, wenn sie sich auf Pickliste befinden JTL-Ameise - Fehler und Bugs 1
Neu Auf einen anderen Artikel im nicht lieferbaren Artikel aufmerksam machen? Allgemeine Fragen zu JTL-Shop 0
Neu Artikel werden nicht übertragen Shopify-Connector 0
Sequenz enthält kein übereinstimmendes Element - nach Update von 1.5.55 auf 1.6.48 - Artikel lassen sich nicht mehr öffnen nach Speichern JTL-Wawi 1.6 6
Neu Google Shopping - Exportiert nicht alle Artikel? Plugins für JTL-Shop 2
Neu Nach Attribut hinzufügen lässt sich Artikel nicht öffnen JTL-Wawi - Fehler und Bugs 0
Neu Manueller Workflow alle Artikel markieren funktioniert nicht JTL-Wawi - Fehler und Bugs 3
Neu Bestände von Artikel die nicht mehr in der Importvorlage sind. JTL Ameise - Eigene Exporte 5
Artikel nicht im Shop JTL-Wawi 1.8 4
Cross Selling Artikel können nicht gelöscht bzw. hinzugefügt werden JTL-Wawi 1.8 2
Neu SW5 Artikel nachträglich Variantenartikel Shopware-Connector 4
Artikel als neu kennzeichnen JTL-Wawi 1.8 3
Artikel bei Conrad anlegen JTL-Wawi 1.8 0
Neu Überverkäufe aktiviert doch beim Artikel steht Ausverkauft JTL-Shop - Fehler und Bugs 1
Neu Amazon Varianten anlegen bei bestehendem Artikel Amazon-Anbindung - Fehler und Bugs 0
Neu Alles Artikel "unverkäuftlich" mit Urlaubshinweis JTL-Ameise - Ideen, Lob und Kritik 3
Neu Probleme mit Artikelzustand bei Ebay Laufene Artikel ändern Einrichtung und Installation von JTL-eazyAuction 3
Benutzerrechte - Artikel auf Einkaufsliste setzen JTL-Wawi 1.6 1
Neu Artikel kopieren / duplizieren Arbeitsabläufe in JTL-Wawi 4
Neu Bestimmte Artikel von JTL-Search ausschließen JTL-Search 0
WaWi Preisuntergrenze für Artikel festschreiben JTL-Wawi 1.7 4
Artikel Netto Preis von 4 Nachkommastellen auf 2 umstellen JTL-Wawi 1.7 5
Neu Artikel: Stückliste & Lieferant User helfen Usern - Fragen zu JTL-Wawi 1
Neu Zusatzkosten für Artikel Gelöste Themen in diesem Bereich 17
Neu Artikel wieder dem Vater zu ordnen User helfen Usern - Fragen zu JTL-Wawi 4
Datenbank-Abfrage per SQL nach Lagermenge pro Artikel & Warenbereich (WMSLager) JTL-Wawi 1.8 1
In Bearbeitung Artikel über csv-Datei bearbeiten und importieren Allgemeine Fragen zu JTL-POS 3
Workflow Artikel + Anzahl in Einkaufsliste aktualisieren JTL-Wawi 1.8 0
Neue angelegte Artikel ausverkauft - kein Erscheinen auf Bestellvorschlägen JTL-Wawi 1.6 1
Neu Sortierung von Artikel nach Preis absteigend Allgemeine Fragen zu JTL-Shop 4
In Diskussion Automatische Zuweisung der Kategorien für Artikel durch Workflow JTL-Workflows - Ideen, Lob und Kritik 3
Neu Verschiedene Artikel pro Lagerplatz beschränken JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Neu Bewertungen mittels Importtabelle auf andere Artikel übertragen User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikel mit Variationen? Allgemeine Fragen zu JTL-Shop 2
Workflow für Artikel versandklassen JTL-Wawi 1.7 1
Lieferant hat identischen Artikel von verschiedenen Herstellern oder verschiedene Packungsgrößen JTL-Wawi 1.7 0
Wie kann ich eine Benachrichtigung bei einem Wareneingang auslösen mit einer Mail über die Artikel die eingebucht wurden JTL-Wawi 1.8 2
Info wenn Artikel mit Bestand leer geht JTL-Wawi 1.8 1
Neu Ebay Artikel - bei Umstellung auf Designvorlagen werden Beschreibungen verändert User helfen Usern - Fragen zu JTL-Wawi 1
Neu einfache SQL Verknüfpung zweier Tabellen, z.B. Artikel mit ArtikelBeschreibung 1.6.46.1 Gelöste Themen in diesem Bereich 13
Neu Artikel mit 2 Lagerorten (Regal und Palette) Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Artikel - Sprachen - Alle eigene SEO URL? Smalltalk 1
Neu Artikel Verfügbarkeitsanzeige "AUF ANFRAGE" Allgemeine Fragen zu JTL-Shop 0

Ähnliche Themen