In Diskussion SQL Update aus Workflow heraus

xadoX

Sehr aktives Mitglied
11. September 2012
622
48
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.583
480
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
622
48
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
182
147
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
622
48
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: 2
Zuletzt bearbeitet:

Karobube

Sehr aktives Mitglied
23. September 2020
182
147
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
622
48
@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
182
147
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 Query zum Bilder löschen Arbeitsabläufe in JTL-Wawi 1
Neu List & Label - Eigene SQL-Abfrage als Grundlage für Tabelle im Berichtscontainer? User helfen Usern - Fragen zu JTL-Wawi 10
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 2
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu DB: kPlattform eines Auftrages ändern (SQL) - Zwecks Lagerplatzreservierung User helfen Usern - Fragen zu JTL-Wawi 0
Neu SQL prozeduren mit #temp Tabellen Eigene Übersichten in der JTL-Wawi 28
Neu Ameise Export in SQL Abfrage umwandeln User helfen Usern - Fragen zu JTL-Wawi 11
Neu Ware direkt in ein Standardlager einbuchen per SQL StoreProcedure dbo.spWarenlagerEingangSchreiben Schnittstellen Import / Export 8
Neu List & Label Vorlagen: SQL Injection Warnung umgehen um Datenquelle zu ergänzen User helfen Usern - Fragen zu JTL-Wawi 12
Neu Alte Blogbeiträge sind nach Update nicht abrufbar JTL-Shop - Fehler und Bugs 0
Neu Nach update auf 5.4 kein Login mehr möglich JTL-Shop - Fehler und Bugs 2
Neu Update JTL Wawi von 1.0.0.0 auf 1.8.10.0 Installation von JTL-Wawi 8
Fatal-Error im Adminbereich nach Update - Shop läuft Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu JTL2Datev ist defekt bei mir seit dem Update von 30.10.2024 User helfen Usern - Fragen zu JTL-Wawi 6
Neu Warnung: Update auf Shop 5.4 Installation / Updates von JTL-Shop 38
Neu Nach Update auf 5.4 klappt einiges nicht mehr ! Installation / Updates von JTL-Shop 9
Neu Update auf 5.4.0 schlägt fehl Installation / Updates von JTL-Shop 4
Nach Update auf 1.9 alle Drucker verschwunden JTL-Wawi 1.9 6
Neu Fehlermeldung nach Shop-Update Installation / Updates von JTL-Shop 2
Update von 1.6.47.2 auf 1.9.5.3 (Registrierung, usw.) JTL-Wawi 1.9 1
Fehler bei Update von 1.5.55.8 auf 1.7.15.6 ( Unbehandelte Ausnahme #7110FFD83C0136E0 vom Typ JTL.Database.SqlUpdater.UpdateException) JTL-Wawi 1.7 0
JTL Wawi Update 1.8.12.4 auf 1.9.5.2 nicht möglich JTL-Wawi 1.9 3
Neu WMS APP Sprachausgabe funktioniert nach Android Update nicht mehr JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Update Wawi von 1.0.11 auf 1.9 Installation von JTL-Wawi 7
Neu Update von 5.1.5 auf 5.3.3 Installation / Updates von JTL-Shop 2
Neu Problem mit Scroll-Link nach Update auf Shop-Version 5.3.3 Technische Fragen zu Plugins und Templates 5
Wann kommt neues Update 1.9.4.7 JTL-Wawi 1.9 5
Neu WMS Mobile langsam seit Android Update User helfen Usern 4
Neu Update auf 1.9 - wo sind die Kommentarfelder des Artikels geblieben? Eigene Übersichten in der JTL-Wawi 1
Neu Nach Update von PayPal Checkout wird PayPal Zahlungsart entfernt Plugins für JTL-Shop 4
update von 1.3.21.1 auf Version 1.8.12.2 JTL-Wawi 1.8 6
Neu PayPal Checkout Update auf 1.5.1 nicht möglich Betrieb / Pflege von JTL-Shop 2
Neu PayPal Checkout Update Plugins für JTL-Shop 12
Neu Probleme beim Update von 5.2.4 auf 5.3.3 Installation / Updates von JTL-Shop 6
Neu Fatal error nach Shop-Update im Frontend JTL-Shop - Fehler und Bugs 8
Fehler beim Update des Mandaten easybusiness JTL-Wawi 1.9 2
Neu Fehler bei Update: "SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'emails' already exists" Installation / Updates von JTL-Shop 4
Nach Update auf 1.9 / Export Rechnungskorrekturen Zeile Ust doppelt JTL-Wawi 1.9 8

Ähnliche Themen