In Diskussion SQL Update aus Workflow heraus

xadoX

Sehr aktives Mitglied
11. September 2012
650
58
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.835
551
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
650
58
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
200
153
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
650
58
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
200
153
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
650
58
@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
200
153
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
Neu Sql Express 2022 - wawi sagt beim Start es ist ein Update bereit - gelöst Installation von JTL-Wawi 3
Update SQL Server Management Studio JTL-Wawi 1.10 1
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 4
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 6
Neu JTL_DirectQuery - SQL Abfrage Anzahl der Pakete auf Versandliste (DPD) User helfen Usern - Fragen zu JTL-Wawi 3
Neu Welche SQL Server Version für WaWi 1.0.0.0.0 unter Windows 11 Installation von JTL-Wawi 6
Neu Bilder von Kinderartikeln auf Vaterartikel kopieren via SQL Eigene Übersichten in der JTL-Wawi 2
Neu Täglich SQL Backup vom Shop Allgemeine Fragen zu JTL-Shop 2
Kann ich mit dieser SQL Version die neue WaWi 1.11.1 installieren? JTL-Wawi 1.11 2
Neu Kundengruppe per SQL löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Extern erstelltes SQL - Angebot falsche Werte User helfen Usern - Fragen zu JTL-Wawi 3
Neu In welcher SQL Tabelle finde ich den Ansprechpartner des Herstellers? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Seriennummern und SQL Abfragen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Einrichtung SQL in neuem Rechner funktioniert nicht Installation von JTL-Wawi 3
Neu SQL Code für GPSR Felder (Kaufland) zeigt Fehler + wird daher nicht übertragen kaufland.de - Anbindung (SCX) 0
Neu SQL für noch nie Verkaufte Artikel auf Marktplätzen. User helfen Usern - Fragen zu JTL-Wawi 3
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 0
seit Update zu viele Versandbestätigungen JTL-Wawi 1.11 0
Neu POS doppelte Artikel und Kategorien nach Update Einrichtung / Updates von JTL-POS 0
Neu Update: JTL-Gambio-Connector Gambio-Connector 0
Update auf 1.11.4 Aktualisierung hängt -> "Keine Rückmeldung" JTL-Wawi 1.11 2
Neu Nach Update auf JTL Shop 5.6.1 - Play/Pause Buttons im Layout!? Installation / Updates von JTL-Shop 6
Nach Update auf 1.11.4 (von 10.13.1) werden keine Artikel unter F2 Artikel mehr angezeigt, sind aber da! JTL-Wawi 1.11 0
Neu Seit Update auf 1.10.15.0: eBay Fahrzeugverwendungsliste Fehler eBay-Anbindung - Fehler und Bugs 3
Neu Seit Update auf 1.11.4 läuft der CSV Abgleich ins Endlose! JTL-Ameise - Fehler und Bugs 6
Neu Nach Update komme ich nicht mehr auf die Shop Seite Installation / Updates von JTL-Shop 6
Kein vollständiges Update auf 1.11.4.0 möglich JTL-Wawi 1.11 1
Seit Update auf 1.11.4 werden Rechnungen nicht mehr korrekt gespeichert / nur Mini-Ausschnitt sichtbar JTL-Wawi 1.11 4
Neu Update WAWI 1.10.14.3 auf 1.11.4.0 Installation von JTL-Wawi 4
Kein flüssiges Update von 1.10.14.3 zu 1.11.4 JTL-Wawi 1.11 4
Neu How to properly update order status through JTL Shop plugin? Allgemeine Fragen zu JTL-Shop 4
Wawi-Update cloudflare??? JTL-Wawi 1.11 5
Seit Update auf 1.11.4: Hunderte Artikel plötzlich „in Aufträgen reserviert“, aber keine passenden Aufträge vorhanden JTL-Wawi 1.11 4
Nach Update 1.11.4: Keine Zahlungen mehr sichtbar JTL-Wawi 1.11 0
Problem nach dem Update. JTL-Wawi 1.11 2
Neu Update auf 5.6.1. – Trusted Shops Plugin erzeugt Fehlercode 500 Installation / Updates von JTL-Shop 6
Neu Was passiert beim Shop Update mit den Mailvorlagen? Installation / Updates von JTL-Shop 2
Update von 1.6 auf ? JTL-Wawi 1.6 4
Neu Kartonagen nicht mehr über Workflow auswählbar nach Update auf 1.11.3 JTL-Workflows - Ideen, Lob und Kritik 0
Neu Nach Update auf 2.4.0 kein Bestell- & Artikeldatentransfer mehr möglich WooCommerce-Connector 0
Neu OPC-Bilder werden nach Update auf 5.6.0 nicht mehr generiert JTL-Shop - Fehler und Bugs 3
Neu Nach Update auf neueste Shop-Version – Datenbank plötzlich leer / Wie weiter? Backup, Rollback oder neu aufsetzen? JTL-Shop - Fehler und Bugs 9
Update auf Version 1.11.0.0 schlägt fehl JTL-Wawi 1.11 6
Amazon Rechnungen werden seit "Update" nicht mehr erstellt - VCS Lite 1.10.10.3 auf 1.10.14.3 JTL-Wawi 1.10 31
Fehlermeldung beim Update JTL-Wawi 1.11 4
Keine Anmeldung mehr möglich in JTL Wawi seit Update? JTL-Wawi 1.11 5
Zugriff auf Artikel und Bestellungen nach Update nicht möglich JTL-Wawi 1.11 0
Kassenanbindung funktioniert nach Update auf 1.11 nicht mehr JTL-Wawi 1.11 2
Neu Probleme nach Shop Update auf V5.6 Onlineshop-Anbindung 3
Datenbankverbindung Ameise funktioniert seit Update auf 1.11.1.0 nicht mehr JTL-Wawi 1.11 7

Ähnliche Themen