Neu Custom Workflow Aufträge nach Artikelnummer sortieren

drafty

Aktives Mitglied
13. April 2018
5
0
Ich möchte gerne die Artikelpositiones Auftrag nach Erstellung über einen Custom Workflow neu sortieren.
Leider sind die Aufträge danach "Fehlerhaft" obwohl ich sowohl tbestellpos als auch Verkauf.tAuftragPosition korrigieren.

Hat jemand eine Idee?

SQL:
USE [eazybusiness]
GO
/****** Object:  StoredProcedure [CustomWorkflows].[spAuftragSortieren]    Script Date: 26.06.2024 07:22:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [CustomWorkflows].[spAuftragSortieren] @kAuftrag INT AS
BEGIN
    -- Temporäre Tabelle erstellen, um die sortierten Daten zu speichern
    CREATE TABLE #AuftragSortiert (
        kBestellPos INT,
        kBestellung INT,
        cArtNr VARCHAR(255),
        nType INT,
        SortOrder INT
    );

    -- Daten in die temporäre Tabelle einfügen, sortiert nach Artikelnummer, wobei nType = 1 bevorzugt wird
    INSERT INTO #AuftragSortiert (kBestellPos, kBestellung, cArtNr, nType, SortOrder)
    SELECT
        kBestellPos,
        tBestellung_kBestellung,
        cArtNr,
        nType,
        CASE
            WHEN nType = 1 THEN ROW_NUMBER() OVER (ORDER BY cArtNr ASC)
            ELSE 0
        END AS SortOrder
    FROM
        tbestellpos
    WHERE
        tBestellung_kBestellung = @kAuftrag;

    -- Zusätzliche temporäre Tabelle für Positionen mit nType = 0 erstellen
    CREATE TABLE #AuftragSortiert_0 (
        kBestellPos INT,
        SortOrder INT
    );

    DECLARE @MaxSortOrder INT;
    SELECT @MaxSortOrder = MAX(SortOrder) FROM #AuftragSortiert WHERE nType = 1;

    -- SortOrder für Positionen mit nType = 2 berechnen und in die temporäre Tabelle einfügen
    INSERT INTO #AuftragSortiert_0 (kBestellPos, SortOrder)
    SELECT
        kBestellPos,
        @MaxSortOrder + ROW_NUMBER() OVER (ORDER BY kBestellPos)
    FROM
        #AuftragSortiert
    WHERE
        nType <> 1;

    -- SortOrder in der ursprünglichen temporären Tabelle für nType = 2 aktualisieren
    UPDATE a
    SET a.SortOrder = b.SortOrder
    FROM
        #AuftragSortiert a
    INNER JOIN
        #AuftragSortiert_0 b
    ON
        a.kBestellPos = b.kBestellPos;

    -- Ursprüngliche Sortierreihenfolge aktualisieren
    UPDATE bp
    SET bp.nSort = ass.SortOrder
    FROM
        tbestellpos bp
    INNER JOIN
        #AuftragSortiert ass
    ON
        bp.kBestellPos = ass.kBestellPos;

    
    UPDATE ap
    SET ap.nSort = ass.SortOrder
    FROM
        Verkauf.tAuftragPosition ap
    INNER JOIN
        #AuftragSortiert ass
    ON
        ap.kAuftragPosition = ass.kBestellPos;


    -- Temporäre Tabellen löschen
    DROP TABLE #AuftragSortiert;
    DROP TABLE #AuftragSortiert_0;
END
 

John

Sehr aktives Mitglied
3. März 2012
3.975
982
Berlin
Wofür brauchst Du die Sortierung denn?
Muß das wirklich Wawi intern im Auftrag geändert werden oder reicht es vielleicht, eine Ausgabe ( Druckvorlage) sortiert auszugeben oder so?
 

drafty

Aktives Mitglied
13. April 2018
5
0
Wofür brauchst Du die Sortierung denn?
Muß das wirklich Wawi intern im Auftrag geändert werden oder reicht es vielleicht, eine Ausgabe (Druckvorlage) sortiert auszugeben oder so?

In den Vorlagen haben wir es schon geändert.

Es handelt sich leider um sehr viele Farb/Größen Kombinationen. Wenn man keine automatische Sortierung hat, hat man keine Überblick mehr, welche Größe/Farbe bestellt wurde, und welche nicht.
 

John

Sehr aktives Mitglied
3. März 2012
3.975
982
Berlin
OK, wenn du es unbedingt hinbekommen möchtest, nimm JTL Diag und schau Dir an, was die Wawi beim Umsortieren per SQL macht.
 

drafty

Aktives Mitglied
13. April 2018
5
0
OK, wenn du es unbedingt hinbekommen möchtest, nimm JTL Diag und schau Dir an, was die Wawi beim Umsortieren per SQL macht.

Vielen Dank @John . Das hat mir sehr weitergeholfen.

Hier das ganze Skript für jemand, der es benötigen könnte:


SQL:
USE [eazybusiness]
GO
/****** Object:  StoredProcedure [CustomWorkflows].[spAuftragSortieren]    Script Date: 26.06.2024 07:22:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [CustomWorkflows].[spAuftragSortieren] @kAuftrag INT AS
BEGIN
    -- Temporäre Tabelle erstellen, um die sortierten Daten zu speichern
    CREATE TABLE #AuftragSortiert (
        kBestellPos INT,
        kBestellung INT,
        cArtNr VARCHAR(255),
        nType INT,
        SortOrder INT
    );
    
    -- Daten in die temporäre Tabelle einfügen, sortiert nach Artikelnummer, wobei nType = 1 bevorzugt wird
    INSERT INTO #AuftragSortiert (kBestellPos, kBestellung, cArtNr, nType, SortOrder)
    SELECT
        kBestellPos,
        tBestellung_kBestellung,
        cArtNr,
        nType,
        CASE
            WHEN nType = 1 THEN ROW_NUMBER() OVER (ORDER BY cArtNr ASC)
            ELSE 0
        END AS SortOrder
    FROM
        tbestellpos
    WHERE
        tBestellung_kBestellung = @kAuftrag;

    -- Zusätzliche temporäre Tabelle für Positionen mit nType = 0 erstellen
    CREATE TABLE #AuftragSortiert_0 (
        kBestellPos INT,
        SortOrder INT
    );

    DECLARE @MaxSortOrder INT;
    SELECT @MaxSortOrder = MAX(SortOrder) FROM #AuftragSortiert WHERE nType = 1;

    -- SortOrder für Positionen mit nType = 2 berechnen und in die temporäre Tabelle einfügen
    INSERT INTO #AuftragSortiert_0 (kBestellPos, SortOrder)
    SELECT
        kBestellPos,
        @MaxSortOrder + ROW_NUMBER() OVER (ORDER BY kBestellPos)
    FROM
        #AuftragSortiert
    WHERE
        nType <> 1;

    -- SortOrder in der ursprünglichen temporären Tabelle für nType = 2 aktualisieren
    UPDATE a
    SET a.SortOrder = b.SortOrder
    FROM
        #AuftragSortiert a
    INNER JOIN
        #AuftragSortiert_0 b
    ON
        a.kBestellPos = b.kBestellPos;

    -- Ursprüngliche Sortierreihenfolge aktualisieren
    UPDATE ap
    SET ap.nSort = ass.SortOrder
    FROM
        Verkauf.tAuftragPosition ap
    INNER JOIN
        #AuftragSortiert ass
    ON
        ap.kAuftragPosition = ass.kBestellPos;


    -- Temporäre Tabellen löschen
    DROP TABLE #AuftragSortiert;
    DROP TABLE #AuftragSortiert_0;

    
    declare @p1 Verkauf.TYPE_spAuftragEckdatenBerechnen
    insert into @p1 values(@kAuftrag)
    EXEC Verkauf.spAuftragEckdatenBerechnen @auftrag = @p1
END
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu custom.css: keine Änderungen sichtbar Templates für JTL-Shop 2
Artikelpuffer Email Workflow JTL-Wawi 1.11 2
Neu Workflow Ereignis "Position hinzufügen" bei Angebote User helfen Usern - Fragen zu JTL-Wawi 0
Neu Workflow - Bedingung Lieferstatus User helfen Usern - Fragen zu JTL-Wawi 4
Workflow: Artikel geändert -> bat-script ausführen JTL-Wawi 1.11 2
Neu Workflow funktioniert nicht so wie gewollt :) User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Workflow Abweichung Preise > Emailreport JTL-Workflows - Ideen, Lob und Kritik 3
Neu Workflow Auslöser: Artikel gelöscht User helfen Usern - Fragen zu JTL-Wawi 0
Neu Mahnwesen per Workflow automatisieren User helfen Usern 0
Neu Ebay-Artikelimport triggert Workflow "Artikel geändert" nicht JTL-Wawi - Fehler und Bugs 0
Neu Workflow Überfällige Mahnung an Inkassoanwalt übergeben JTL-Workflows - Ideen, Lob und Kritik 0
JTL Workflow - Email addresse von Rechnungsadresse JTL-Wawi 1.9 5
Neu JTL REST API einen Workflow ausführen und benutzerspezifischen Drucker ansteuern User helfen Usern 0
Neu Retouren Variablen in Workflow für Rechnungskorrektur Wert & Korrekturbetrag JTL-Workflows - Ideen, Lob und Kritik 0
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Workflow Druckvorlage personalisierte Artikel JTL-Wawi 1.11 2
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
Workflow - Werte setzen JTL-Wawi 1.11 0
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu Workflow Artkel bereits bestellt Arbeitsabläufe in JTL-Wawi 1
Neu Workflow bei Zahlungseingang User helfen Usern - Fragen zu JTL-Wawi 1
Neu Amazon Aufträge vereinzelt unter "Externe Rechnungen" Amazon-Anbindung - Fehler und Bugs 1
Aufträge auf die Pikliste legen bringt Fehler DataTreeListView JTL-Wawi 1.11 2
Neu Zwei eBay-Aufträge (identische Adresse) zusammen versenden, aber getrennte Rechnungen behalten – JTL-Wawi 1.9.6.5 User helfen Usern - Fragen zu JTL-Wawi 1
GLS-Aufträge stehen auf „Teilgeliefert“, obwohl vollständig versendet – kein Versandkostenartikel vorhanden (JTL 1.10.14.1) JTL-Wawi 1.10 0
Neu Anzeige / Summe der Aufträge zu den Auftragspaketen in der Rechnung ?! User helfen Usern - Fragen zu JTL-Wawi 8
"Fehler beim Laden der Daten" in Liste Aufträge und Rechnungen JTL-Wawi 1.11 4
Neu Pickliste hängt fest – Aufträge gesperrt, nicht in Versand sichtbar User helfen Usern - Fragen zu JTL-Wawi 3
Auswertung Aufträge Stichtag JTL-Wawi 1.11 4
Lieferbare Aufträge werden nicht auf WMS-Picklisten gesetzt JTL-Wawi 1.11 4
JTL Fulfillment Network Reservierte Aufträge, die nicht gelöscht werden können JTL-Wawi 1.10 0
Neu JTL Fulfillment Network Reservierte Aufträge, die nicht gelöscht werden können Schnittstellen Import / Export 1
Artikel Gehen nicht aus In Aufträge raus nach Versand JTL-Wawi 1.11 1
Abonnements durch WORKER automatisch erstellen ?? falsches Erstelldatum Aufträge JTL-Wawi 1.11 1
Liste offener Aufträge ausgeben JTL-Wawi 1.11 2
Neu SCX Marktplatz Aufträge hängen im Status Pending JTL-Wawi - Fehler und Bugs 1

Ähnliche Themen