Neu Artikel nicht Aktivierbar für Connector Shop

SaschaR1987

Mitglied
7. Dezember 2019
44
14
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

Moderator
Mitarbeiter
24. August 2016
1.369
285
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 Der Artikel besitzt nicht die korrekte Anzahl von Variationen - Amazon Lister Problem Amazon-Lister - Fehler und Bugs 1
Neu Der Artikel besitzt nicht die korrekte Anzahl von Variationen Amazon-Anbindung - Fehler und Bugs 0
In Diskussion Nicht angelegte Artikel rutschen beim Kassiervorgang ohne Erfassung durch JTL-POS - Fehler und Bugs 1
Neu Artikel können nicht gesendet werden - Call to a member function getIso() on null Shopware-Connector 3
Neu SW5 - Nach Connector Update - Bilder werden Artikel nicht zugewiesen Shopware-Connector 2
Neu JTL Shop 4 - Artikel mit Pfand kann nicht in EU verschickt werden Allgemeine Fragen zu JTL-Shop 1
Neu Aus Amazon-Angeboten JTL-Wawi-Artikel erzeugen: erstmaliger Angebots-Import klappt nicht. WARUM? Amazon-Anbindung - Fehler und Bugs 4
Neu Artikel Vorbestellung nicht mit Lieferbaren Artikeln kombinierbar User helfen Usern - Fragen zu JTL-Wawi 3
Neu Einzelne Artikel nicht uploadbar? Shopware-Connector 2
Neu Artikel nicht aus Shop löschen wenn in WaWi nicht aktiv. Gambio-Connector 3
Neu Verfügbarkeitsbestätigung wird nicht gesendet, obwohl Artikel wieder verfügbar ist JTL-Shop - Fehler und Bugs 6
Neu Artikel Lagerführung aktiv / nicht aktiv eBay-Anbindung - Ideen, Lob und Kritik 0
Neu Artikel Vorbestellung nicht mit Lieferbaren Artikeln kombinierbar User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikel im Shop5 aber nicht in der Wawi User helfen Usern - Fragen zu JTL-Wawi 2
In Bearbeitung Pos reserviert Artikel in Aufträgen die nicht zu finden sind Allgemeine Fragen zu JTL-POS 2
Neu ARtikel für amazon Polen stehen je 8 mal in der Angebotsliste und lassen sich nicht löschen Amazon-Anbindung - Fehler und Bugs 5
Neu Seriennummern Artikel kann nicht ausgeliefert werden.kLieferscheinPos = 999999999 JTL-Wawi - Fehler und Bugs 8
Neu Artikel wird nicht aus Kategorie gelöscht im Shop JTL-Wawi - Fehler und Bugs 1
Neu Artikel werden im JTL WAWI Menü Artikel nicht angezeigt User helfen Usern - Fragen zu JTL-Wawi 12
Neu Bilder / Artikel werden nicht übertragen Connector 6 Shopware-Connector 1
Neu Artikel werden nicht bzw. nicht komplett synchronisiert Shopify-Connector 0
Neu Artikel bei ebay einstellen geht nicht eBay-Anbindung - Fehler und Bugs 0
Gelöst Ich kann Artikel nicht bearbeiten Gelöste Themen in diesem Bereich 1
Neu Englische Artikel werden nicht in Deutsche Wawi importiert WooCommerce-Connector 0
Verwiesen an Support JTL-Packtisch+ Artikel für Zustandsänderung nicht auswählbar JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 2
Neu Artikel werden nicht entfernt JTL-Ameise - Fehler und Bugs 14
Neu Zulauf von Artikel (Menge und Datum) in Shopware übertragen Onlineshop-Anbindung 0
Neu Artikel von 25 Gramm bis 25 Kg User helfen Usern - Fragen zu JTL-Wawi 1
Neu $Warenkorb->PositionenArr[]->Artikel->fLagerbestand im Bestellvorgang Templates für JTL-Shop 0
Neu Artikel mit -1 Verkaufen für Gutschriften Allgemeine Fragen zu JTL-POS 0
Neu Artikel duplizieren - Eigene Felder User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikel mit mehreren Stücklisten User helfen Usern - Fragen zu JTL-Wawi 3
Neu Artikel werden beim Upload immer erst gelöscht Shopware-Connector 0
Neu Artikel Kurzbeschreibung in Rechnungstext, keine Versandart angezeigt User helfen Usern - Fragen zu JTL-Wawi 0
Neu Artikel bei Stücklisten hinzufügen User helfen Usern - Fragen zu JTL-Wawi 1
Standardsortierung Eigene Seiten/Besondere Artikel-Seiten Einrichtung JTL-Shop5 1
Neu Charge, MHD und Menge je Lager anzeigen in "Artikel" Individuelle Listenansichten in der JTL-Wawi 0
Neu Rechnung nur über gelieferte Artikel Arbeitsabläufe in JTL-Wawi 7
Neu JTL-Wawi verkaufte Artikel in eBay Marktplätze behalten User helfen Usern - Fragen zu JTL-Wawi 2
Neu Artikel hat mehrere HAN (MPN) User helfen Usern - Fragen zu JTL-Wawi 1
Neu Wawi überträgt bei jedem Abgleich alle Artikel. JTL-Shop - Fehler und Bugs 4
Neu Hinweis unter die Rechnungen wenn Artikel aus xy Warengruppe vorhanden Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Fertige Stücklisten als Artikel einlagern JTL-Wawi - Ideen, Lob und Kritik 3
Neu Alle Artikel werden übertragen bei Shopabgleich nach Datenbankumzug JTL-Wawi - Fehler und Bugs 1
In Bearbeitung Artikel-Rabatt wird auf alle Stückzahlen angewendet JTL-POS - Fehler und Bugs 6
Neu Artikel Import Lagerbestand Konvertierung Schnittstellen Import / Export 10
Neu Sonderpreise für viele Artikel setzen Amazon-Anbindung - Ideen, Lob und Kritik 3
Neu Artikel in Lagereinheiten speichern (Gestückelte Lagermengen) Arbeitsabläufe in JTL-Wawi 0
In Bearbeitung Ist es möglich, auf dem Kassenbon außer dem Artikelnamen auch den Artikel Hersteller zu drucken Allgemeine Fragen zu JTL-POS 5
Issue angelegt Gebinde-EAN multipliziert beim Picken des einzelnen Artikel die geforderte Menge [WAWI-39105] JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 3

Ähnliche Themen