In Diskussion SQL Update aus Workflow heraus

xadoX

Sehr aktives Mitglied
11. September 2012
660
65
Hallo zusammen,

laut folgendem Ticket soll es seit der 1.6.12. möglch sein per Workflow schreibende SQL-Befehle abzusetzen:

https://issues.jtl-software.de/issues/WAWI-49318

Ich bekomme leider noch immer ein "Query blocked".

Konkret möchte ich das Leben meiner Retourenabteilung erleichtern, in dem sie den Retourenstatus nicht für jede Position setzen müssen, sondern der Status für alle gleichzeitig gesetzt wird:

Was muss ich machen, um schreibende SQL's ausführen zu können?

Bisher habe ich folgenden Code als "Erweiterte Eigenschaft" hinterlegt:

Code:
{% capture query -%}
BEGIN
    DECLARE @cRMRetoure nvarchar = {{ Vorgang.Retoure.Retourennummer }};
    DECLARE @kRMRetoure int;
    DECLARE @kRMRetourePos int;
    DECLARE @kRMStatus int;
    DECLARE @kRMStatusLast int;
    DECLARE @kRMStatusNeu int;
    DECLARE @kRMStatusVerlaufNeu int;
    DECLARE @cKommentar nvarchar(255) = N'';
    DECLARE @kBenutzer int = 2;
    DECLARE @dErstellt datetime = CONVERT(datetime, GETDATE(), 120);
    DECLARE @Identities TABLE (Id INT NOT NULL);

    SET QUOTED_IDENTIFIER ON

    /* Den Retourenstatus ermitteln, der zuletzt in dieser Retoure gesetzt wurde */
    SET @kRMRetoure = (SELECT krmRetoure from tRMRetoure where cRetoureNr= @cRMRetoure);
    SET @kRMStatusNeu = (SELECT TOP 1 kRMStatus from tRMStatusVerlauf WHERE kRMRetourePos in (SELECT kRMRetourePos from tRMRetourePos where kRMRetoure = @kRMRetoure) ORDER BY kRMStatusVerlauf DESC);

    DECLARE cursor_tRMRetourePos
    CURSOR FOR
    SELECT kRMRetourePos FROM tRMRetourePos WHERE kRMRetoure = @kRMRetoure

    OPEN cursor_tRMRetourePos

    FETCH FROM cursor_tRMRetourePos INTO @kRMRetourePos;
 
    WHILE @@FETCH_STATUS = 0

        BEGIN
            SET @kRMStatusLast = (SELECT TOP 1 kRMStatus FROM [tRMStatusVerlauf] WHERE kRMRetourePos = @kRMRetourePos ORDER BY kRMStatusVerlauf DESC);
            /* Nur wenn sich der Retourenstatus unterscheidet ausführen */
            IF @kRMStatusNeu <> @kRMStatusLast
                BEGIN
                    INSERT INTO [dbo].[tRMStatusVerlauf] ([kRMRetourePos], [kRMStatus], [cKommentar], [kBenutzer], [dErstellt])
                    OUTPUT INSERTED.[kRMStatusVerlauf] AS [Id] INTO @Identities
                    VALUES (@kRMRetourePos, @kRMStatusNeu, @cKommentar, @kBenutzer, @dErstellt);
                    SET @kRMStatusVerlaufNeu = (SELECT TOP 1 [Id] FROM @Identities ORDER BY [Id]);

                    UPDATE [dbo].[tRMRetourePos] SET kRMStatusVerlauf = @kRMStatusVerlaufNeu WHERE kRMRetourePos = @kRMRetourePos;
                END

        FETCH NEXT FROM cursor_tRMRetourePos  INTO @kRMRetourePos;
        END
    CLOSE cursor_tRMRetourePos
    DEALLOCATE cursor_tRMRetourePos
END
{% endcapture -%}
{% assign result = query | DirectQuery -%}
{{ result.Query }} lieferte {% if result.Fehlerhaft %}den Status: {{ result.Fehler }}{% else %}keinen Fehler.{% endif -%}
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.858
560
Führe doch das SQL mal direkt im Management Studio aus. Dann siehst du direkt die Fehlermeldung der Datenbank.
Vielleicht wird da ja airgendein Trigger ausgelöst, der ein direktes Beschreiben einer von dir angesprochenen Tabelle verbietet....?
 

xadoX

Sehr aktives Mitglied
11. September 2012
660
65
So geht das nicht.
Du mußt Dir einen "Custom Workflow" anlegen.
Dazu gibts auf dem JTL Youtube Kanal ein Video von Manuel.

Das kenne ich bereits. Leider kann man darüber keine Retouren ansprechen.

Führe doch das SQL mal direkt im Management Studio aus. Dann siehst du direkt die Fehlermeldung der Datenbank.
Vielleicht wird da ja airgendein Trigger ausgelöst, der ein direktes Beschreiben einer von dir angesprochenen Tabelle verbietet....?
In der Datenbank wirft es keinen Fall - es klappt. Es scheint also einfach nur ein Rechteproblem zu sein.

JTL hat sich dazu auch gemeldet. Leider wird es nicht möglich sein für Retouren CustomWorkflows anzulegen:
wir haben die Möglichkeit Änderungen an der Datenbank über Dotliquid vorzunehmen wieder entfernt.
Stattdessen können nun eigene Customworkflows in der Datenbank erstellt werden und diese kann man als Aktionen in den Workflows auswählen.
Anbei ein Youtube-Video zu diesem Thema mit einem Beispiel.
Dies ist allerdings noch nicht für Retouren möglich.
Ich hatte mal ein Ticket zu diesem Thema angelegt, dieses hat aber momentan den Status Won't Do.
https://issues.jtl-software.de/issues/WAWI-67707
Der Feature-Wunsch wurde geprüft. Im Verhältnis zu anderen Aufgaben wird dessen Umsetzung jedoch als weniger wichtig eingeschätzt und der Feature-Wunsch abgewiesen.
Sind Sie der Meinung, dass diese Einschätzung falsch ist, können Sie durch Ihren Vote oder Kommentar dazu beitragen, dass der Feature-Wunsch bei genügend Interesse wieder zur Begutachtung vorgelegt wird.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Arne Janson

Karobube

Sehr aktives Mitglied
23. September 2020
204
156
Remote via AnyDesk
Firma
contact@karobube.com
Einen batch-File mit sqlcmd schreiben, das batch-File über den Workflow ausführen, als Parameter den Retouren-Key übergeben, dann kannst Du an der DB damit machen, was immer Du willst
 
  • Gefällt mir
Reaktionen: Arne Janson

xadoX

Sehr aktives Mitglied
11. September 2012
660
65
Ich habe es nun per batch-File gelöst.

Das klappt auch wunderbar, nur leider werden nun alle Folge-Workflows (im Screenshot rot), die unter "Status Rückgabe erreicht" erstellt sind, nicht getriggert.

workflows2.jpg
In meinem Skript setze ich am Ende den Gesamtretourenstatus per UPDATE:

SQL:
UPDATE tRMRetoure SET kRMStatus = @kRMStatusNeu where cRetoureNr = @keyFromParam

Bie Anwendungen habe ich alle ausgewählt.

Woran kann das liegen?
 

Anhänge

  • workflow.jpg
    workflow.jpg
    11,7 KB · Aufrufe: 3
Zuletzt bearbeitet:

Karobube

Sehr aktives Mitglied
23. September 2020
204
156
Remote via AnyDesk
Firma
contact@karobube.com
Ich habe es nun per batch-File gelöst.

Das klappt auch wunderbar, nur leider werden nun alle Folge-Workflows (im Screenshot rot), die unter "Status Rückgabe erreicht" erstellt sind, nicht getriggert.

Lass mal nen SQL-Sniffer, z.B. den SQL-Profiler im SSMS, laufen und schau, was der in dem Moment macht, in dem der Retourenstatus nativ von der Wawi geändert wird, eventuell wird da noch n Skript angestoßen, von der Wawi oder dem Packtisch aus, von wo aus der Status geändert wird, was dann im gleichen Moment die Workflows triggert. Vielleicht kann man das rein auf der Datenbank gar nicht abbilden, weil die Wawi die Workflows seperat antriggert.
 

xadoX

Sehr aktives Mitglied
11. September 2012
660
65
@Karobube ich habe bereits den SQL-Mitschnitt über JTL-Diag laufen lassen. Es wird der gleiche Update abgesetzt, den ich auch absetze. Und danach folgen einige SELECT-Befehle, wo die betreffenden Workflow Events ermittelt werden und anschließend in die Queue geschrieben werden. In der Tabelle tRMRetoure gibt es keinen Trigger, der irgendwas mit den den Workflows zu tun hat.
Daher weiß ich leider nicht was der Auslöser für das Schreiben in tworkflowqueue ist.

Screenshot 2024-06-11 171932.png
 

Karobube

Sehr aktives Mitglied
23. September 2020
204
156
Remote via AnyDesk
Firma
contact@karobube.com
Hmm das Workflow-Anstoßen geht wohl nicht aus der DB heraus, aber wohl über die JtlWawiExtern.dll, da musst Du wohl im batch noch was hinter das sqlcmd basteln, was über die dll dann die Retourenstatusupdateworkflows antriggert...

Dazu gibt es diesen fast exakt acht Jahre alten :'D Foreneintrag: https://forum.jtl-software.de/threads/manuelle-workflows-per-kommandozeile-api-starten.89504/

EDIT: Auch noch dazu, auch nicht aktuell:

https://jtl-devguide.readthedocs.io/projects/jtl-wawi/Wiki/JTLwawiExterndll_einbinden/

https://jtl-devguide.readthedocs.io...'s_für_die_externe_Ansteuerung_der_Workflows/
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: sah
Ähnliche Themen
Titel Forum Antworten Datum
Wawi Meldung SQL Servicepack zu installieren - aber welches? Update SQL2022 CU24 nicht möglich JTL-Wawi 1.11 3
Update auf 1.11 verlangt ein Update auf aktuelleren SQL Server JTL-Wawi 1.11 7
Neu JTL → Shopify Connector: MappingTablesException / „Endpoint id is empty“ – betroffene Artikel aus Logs per SQL finden Shopify-Connector 0
welche Microsoft SQL Server Version läuft am stabilsten? JTL-Wawi 2.0 1
Neu MS Server und MS SQL Installation von JTL-Wawi 2
WMS Lagerbestand Bezeichnung in SQL Datenbank JTL-Wawi 1.11 2
Für Ihren SQL-Server wurde ein Service Pack zur Verfügung gestellt - nö, gelogen, wie kriege ich die Meldung weg? JTL-Wawi 1.11 15
CSV Exportvorlage - SQL Abfrage Eigenes Feld JTL-Wawi 2.0 4
Keine Rückmeldung in JTL Wawi sobald SQL Server Memory durch Database Cache ausgeslastet ist JTL-Wawi 2.0 9
Neu SQL Lagerbestand minus in Aufträgen Eigene Übersichten in der JTL-Wawi 3
Neu SQL-Server geht eine Stunde nach Allgemeine Fragen zu JTL-Shop 4
Neu Umzug SQL Datenbank auf neuen Server User helfen Usern - Fragen zu JTL-Wawi 3
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Update auf 1.11.11 schlägt fehl JTL-Wawi 1.11 3
Neu Update Version 1.5 auf 1.11 - Download älterer Versionen als 1.8 Installation von JTL-Wawi 2
Neu Shop-Update auf 5.7.1: Sprachvariablen im Widerrufsformular werden nicht erkannt, obwohl vorhanden?! JTL-Shop - Fehler und Bugs 2
Neu JTL PayPal Checkout 2.3.0 ... 1. Update klappte nicht, 2. Update nun Eintrag doppelt Plugins für JTL-Shop 19
Nach dem Update werden die Drucker nicht mehr erkannt JTL-Wawi 2.0 1
Erfahrungswerte Update von 1.8.12.2 auf 1.11.10 JTL-Wawi 1.11 4
Import von Aufträgen via tXMLBestellImport Tabelle seit Update sehr träge/langsam JTL-Wawi 1.11 3
Neu Update von Modul DHL 3.0 aud 4.0 - Versandlabels lassen sich nicht erstellen JTL-ShippingLabels - Fehler und Bugs 17
Automatische Pickliste geht nicht mehr seit Update JTL-Wawi 2.0 0
Neu Nach Update auf 1.11.10.0 Abgleich zu Ebay über 3 Stunden bei neuen Angeboten eBay-Anbindung - Fehler und Bugs 2
Neu Nach Update auf 1.11.10 klappt stornieren über ios Wawi App nicht mehr JTL-Workflows - Fehler und Bugs 0
Dashboard lädt nicht und Umsatzanzeige rechnet falsch seit Update auf 1.11.8 JTL-Wawi 1.11 7
Update von 1.10.15 auf 1.11.10 JTL-Wawi 1.11 11
Update 2.0.3 POS Server Einrichtung JTL-Wawi 2.0 1
Neu Nach Update auf JTL-Wawi 2.0.3 keine WMS-Lager mehr auswählbar – Versand komplett blockiert JTL-Wawi 2.0 3
Update 2.0.2. WMS Mobile Server JTL-Wawi 2.0 8
Neu Nach Update auf 1.11.9 - alle Shopify Shop nicht mehr connected Shopify-Connector 4
Neu Shop 5.7 update empfhalen Installation / Updates von JTL-Shop 13
Neu Nach Update in Dez 2025 wird TSE Swissbit nicht mehr erkannt JTL-POS - Fehler und Bugs 1
Neu ❓JTL Wawi Update von 1.8 auf ??? User helfen Usern - Fragen zu JTL-Wawi 1
Update von 1.10.10.3 auf aktuellere Versionen JTL-Wawi 1.10 0
Neu Update fehlgeschlagen Starten mit JTL: Projektabwicklung & Migration 4
Neu WAWI Update - welche Version denn nun? User helfen Usern - Fragen zu JTL-Wawi 19
Nach Update auf 2.0 auf einmal kostenpflichtig JTL-Wawi 2.0 2
WAWI - Update JTL-Wawi 2.0 17
Neu Update von 1.8.12.4 auf 1.11 User helfen Usern - Fragen zu JTL-Wawi 0
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Nach Update auf 2.01 kein Worker mehr JTL-Wawi 2.0 13
Neu JTL Pos liest keine Verkäufe mehr ein nach Update Einrichtung / Updates von JTL-POS 0
Nach Update auf Wawi 2.0.X, API v1 Fehler JTL-Wawi 2.0 9
Neu Datenbank-Update bricht ab Installation / Updates von JTL-Shop 8
Update auf 2.0.1 Fehler bei eazybusiness JTL-Wawi 2.0 17
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
Update auf 2.0.1.0 bricht ab bei 1.12.0.0. JTL-Wawi 2.0 6
Neu JTL-Wawi Update Historie User helfen Usern - Fragen zu JTL-Wawi 2
Neu Update Wawi 1.10.16.0 auf 1.11.7 -> JTL-POS Einrichtung / Updates von JTL-POS 6
Neu Seit Update auf JTL-WaWi 2.0.0.0 keine Abholung der Kundendaten bei MediaSaturn-Bestellungen JTL-Wawi - Fehler und Bugs 7

Ähnliche Themen