In Diskussion SQL Update aus Workflow heraus

xadoX

Sehr aktives Mitglied
11. September 2012
659
62
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.851
556
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
659
62
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
202
154
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
659
62
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
202
154
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
659
62
@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
202
154
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
Aktuelles Update 1.11.7: Anmeldedialog merkt sich den letzten User immer noch nicht & falsche Warnung für angeblich fehlendes SQL Server Update JTL-Wawi 1.11 3
Kundenstammdaten - "Eigenes Feld" in SQL auslesen JTL-Wawi 1.9 2
Neu Frage zu SQL Statement - Kunden-Kommentar aus Auftrag auf Pickliste User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bestellungen werden verzögert oder nicht gepullt – Ursache: Zeitzonen-Filter im SQL des WooCommerce-Connectors WooCommerce-Connector 0
Neu SQL Worker.tStatus - Bedeutung von nStatus? JTL Ameise - Eigene Exporte 2
Neu Suche Servicepartner für SQL-Abfrage Dienstleistung, Jobs und Ähnliches 2
Neu askJan | Neuer KI-Assistent für JTL-Wawi - schnelle, effiziente und transparente KI-Datenanalyse - ohne SQL! Dienstleistung, Jobs und Ähnliches 41
Neu JTL-Wawi 1.11.5: Sequenzieller Kundenexport mit Workflow und SQL-Queue Schnittstellen Import / Export 2
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 21
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 12
Neu JTL_DirectQuery - SQL Abfrage Anzahl der Pakete auf Versandliste (DPD) User helfen Usern - Fragen zu JTL-Wawi 4
Neu Strukturierte Daten vom Typ "Produkt" werden nach Update auf JTL Shop 5.6.1 nur fehlerhaft erkannt JTL-Shop - Fehler und Bugs 3
Warnung vor Update? JTL-Wawi 1.11 20
Neu nach Update nicht alle Rechnungen mehr an Amazon Amazon-Anbindung - Fehler und Bugs 0
Update auf 1.11.7 JTL-Wawi 1.11 4
Update von 1.11.6 auf 1.11.7: JTL Worker verbindet nicht mehr mit Datenbank (WaWi schon) JTL-Wawi 1.11 1
Neu OPC friert beim speichern von Änderungen ein nach JTL-Shop Update von Version 5.1.5 auf 5.6.1 JTL-Shop - Fehler und Bugs 0
Neu von JTL-Wawi-Version 1.10.16.0 ist kein Update...möglich Installation von JTL-Wawi 2
Neu Update der Version 1.2.2.2 auf eine aktuelle Installation von JTL-Wawi 9
Neu POS-Server startet nicht mehr nach WaWi-update auf Version 1.11.6.0 JTL-POS - Fehler und Bugs 1
Neu Update auf 1.11.6 mittlerweile sinnvoll User helfen Usern - Fragen zu JTL-Wawi 0
Nach Update auf 1.11.6 werden die Preisänderung nicht mehr von der Wawi an Amazon übertragen JTL-Wawi 1.11 0
Neu Update von Wawi 1.3 auf Wawi 1.8 JTL-Wawi 1.6 1
Neu Karussell gehen auf der Startseite nach Update auf 5.6.1 nicht mehr Betrieb / Pflege von JTL-Shop 8
Neu wnm Hinweisfenster - Update von 1.1.7 auf 1.1.8 funktioniert nicht Plugins für JTL-Shop 7
Update von 1.9.6.5 auf die 1.11.5 problemlos möglich? JTL-Wawi 1.11 7
Neu JLT Shop Update 6.1 von 5.5.3 - Fehlgeschlagen Installation / Updates von JTL-Shop 5
Neu Fehler beim Update auf 1.11.5 - Ungültiger Objektname "dbo.tUpdateMigration User helfen Usern - Fragen zu JTL-Wawi 0
Neu 503 Service Unavailable bei Payrexx Webhook nach Plugin-Update - wer hat das auch? Plugins für JTL-Shop 0
DHL-Leitcodierungsdaten nach Wawi-Update nicht mehr vorhanden JTL-Wawi 1.11 0
Neu Fehler bei der Anmeldung nach Update auf 1.11.5 Installation von JTL-Wawi 11
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
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
seit Update zu viele Versandbestätigungen JTL-Wawi 1.11 0
Neu POS doppelte Artikel und Kategorien nach Update Einrichtung / Updates von JTL-POS 3
Neu Update: JTL-Gambio-Connector Gambio-Connector 0
Update auf 1.11.4 Aktualisierung hängt -> "Keine Rückmeldung" JTL-Wawi 1.11 3
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 10
Neu Zahlung von Kunden aus dem EU Ausland, Mwst falsch Plugins für JTL-Shop 1
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Neu Shop 5.6.1: Probleme beim Entfernen von Artikeln aus dem Warenkorb JTL-Shop - Fehler und Bugs 5
Neu Versandart Name aus Lieferschain anstatt aus auftrag einsetzen Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop User helfen Usern - Fragen zu JTL-Wawi 3
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop Eigene Übersichten in der JTL-Wawi 0
Neu Import von Rechnungen oder Lieferungen aus anderem System Starten mit JTL: Projektabwicklung & Migration 0
Neu Erscheinungsdatum im Artikel aus Lieferdatum in Bestellung Arbeitsabläufe in JTL-Wawi 2
Serienmails aus dem Shop nach Kundenimport Einrichtung JTL-Shop5 0
Neu Artikel aus Shopware in der Wawi importieren und WMS redy machen Shopware-Connector 0

Ähnliche Themen