Neu Workflows per Script ausführen

timblicker

Aktives Mitglied
13. Januar 2018
14
1
Hallo zusammen,

ist es möglich Workflows mit einem Script (Bsp: PowerShell, .NET Programm, o.ä.) remote aufzurufen?
 

timblicker

Aktives Mitglied
13. Januar 2018
14
1
Gibt es keine Möglichkeit?
Ist das nur für mich interessant, oder gibt es noch mehr die das gebrauchen könnten?
 

tobiasgraeber

Aktives Mitglied
22. Januar 2017
43
6
Ich fände das ebenfalls sehr interessant. (Könnte ggf. aber auch schon über die wawi dlls gehen...)
 
Zuletzt bearbeitet:

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Ja geht. Wie genau, hängt aber sehr stark von der verwendeten Wawi-Version ab. Wir haben uns dazu eine ausführbare Exe geschrieben, welche wir von allen Programmen parametrisiert aus aufrufen
 

nesh

Gut bekanntes Mitglied
14. Oktober 2012
177
14
Frankfurt am Main
Hallo,

ich hatte mich auch schon mal an das Thema gesetzt (EXE via Kommandozeile und Parametern aufrufen) und dann div. Dinge via scripts aus zu führen..
Es war sogar schon so weit, dass man nicht die Internen IDs der verschiedenen Bereiche übergeben musste, sondern je nach Bereich die Kundennummer, Bestellnummer, Externe Auftragsnummer oder auch Artikelnummer als Parameter übergeben konnte.
Die Id habe ich mit dann aus der entsprechenden Tabelle "gezogen" und dann via Extern.DLL übergeben.

Leider habe ich mir dann die Doku dazu zu spät genauer angeschaut. Da ich dann erst gesehen habe, dass man die *Manuell Events nicht aufrufen kann, habe ich das "Projekt" begraben.
Da man nur die Ereignisse aufrufen kann die sowieso schon vom Worker oder "sofort" ausgeführt werden, hat das dann für uns keinen Sinn mehr gemacht....

MEGA wäre es, wenn man via Extern.DLL nicht nur ein Ereignis (In meinem Fall "Manuell") sondern zusätzlich auch noch gezielt einen Workflow übergeben könnte, der abgearbeitet werden soll.
Dann würde ich das Projekt wieder zum Leben erwecken... Nicht aus zu denken, was man dann alles Extern triggern könnte....
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Hallo,

ich hatte mich auch schon mal an das Thema gesetzt (EXE via Kommandozeile und Parametern aufrufen) und dann div. Dinge via scripts aus zu führen..
Es war sogar schon so weit, dass man nicht die Internen IDs der verschiedenen Bereiche übergeben musste, sondern je nach Bereich die Kundennummer, Bestellnummer, Externe Auftragsnummer oder auch Artikelnummer als Parameter übergeben konnte.
Die Id habe ich mit dann aus der entsprechenden Tabelle "gezogen" und dann via Extern.DLL übergeben.

Leider habe ich mir dann die Doku dazu zu spät genauer angeschaut. Da ich dann erst gesehen habe, dass man die *Manuell Events nicht aufrufen kann, habe ich das "Projekt" begraben.
Da man nur die Ereignisse aufrufen kann die sowieso schon vom Worker oder "sofort" ausgeführt werden, hat das dann für uns keinen Sinn mehr gemacht....

MEGA wäre es, wenn man via Extern.DLL nicht nur ein Ereignis (In meinem Fall "Manuell") sondern zusätzlich auch noch gezielt einen Workflow übergeben könnte, der abgearbeitet werden soll.
Dann würde ich das Projekt wieder zum Leben erwecken... Nicht aus zu denken, was man dann alles Extern triggern könnte....
Nun ja, du kannst zumindest im Workflow hinterlegen, dass der Workflow nur "extern", also über die DLL aufgerufern werden kann. Dann hinterlegst du den Workflow für "geändert" und startest ihn extern
 

T4DT.GmbH

Offizieller Servicepartner
SPBanner
6. November 2018
318
129
Hannover
Lässt du uns daran teilhaben? Wie habt Ihr es denn gelöst?
Nun ja, im Grunde ist es auf https://developer.jtl-software.de/Wiki/JTLwawiExterndll_einbinden/ hervorragend erklärt. Man geht den Guide einmal durch, baut sich daraus nach Bedarf dann eine Exe-Datei und fertig. Sehr schwierig ist es nicht. Ich hatte bis zur 1.1 auch in Powershell eine fertige Lösung, die ist allerdings nicht kompatibel mit der 1.3 und 1.4. Die hätte ich teilen können. Allerdings ist das Dependency-Loading in der 1.3 und 1.4 leider nicht mehr so sauber gelöst (gab ja vorher auch schon viele kleine Bugs im Speicherhandling der DLL), sodass diese nicht mehr (in Powershell) einwandfrei geladen werden kann. Schade eigendlich.
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
638
208
Hallo,
wir haben uns auch zuerst JTLwawiExtern.dll angeschaut.
Jetzt benutzen wir Worker + Script, da wir über SQL Server-Agent zeitgesteuert die manuellen Workflows aufrufen.
Nur zwei SQL-Inserts (die Tabellen sind tWorkflowQueue und tWorkflowLog) werden verwendet, wobei das mit dem Log ist nicht unbedingt notwendig.
Die Lösung ist individuell und wir nutzen die Spalte cLog für unsere Zwecke aus.
Wie immer, direkte Manipulation geschieht auf eigene Gefahr.
Ihr mvh-Team
 

forumjtlolshopag

Sehr aktives Mitglied
6. Juni 2018
614
163
Hallo,
wir haben uns auch zuerst JTLwawiExtern.dll angeschaut.
Jetzt benutzen wir Worker + Script, da wir über SQL Server-Agent zeitgesteuert die manuellen Workflows aufrufen.
Nur zwei SQL-Inserts (die Tabellen sind tWorkflowQueue und tWorkflowLog) werden verwendet, wobei das mit dem Log ist nicht unbedingt notwendig.
Die Lösung ist individuell und wir nutzen die Spalte cLog für unsere Zwecke aus.
Wie immer, direkte Manipulation geschieht auf eigene Gefahr.
Ihr mvh-Team
Das ist interessant. D.h. ihr tragt einfach im Queue den jeiligen Workflow mit dem passenden "Objekt" ein und der Worker führt es durch, richtig?
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
638
208
SQL:
SET QUOTED_IDENTIFIER ON
INSERT INTO eazybusiness.dbo.tWorkflowQueue (
    nEvent
    ,kWorkflow
    ,kObjektPk
    ,kBenutzer
    ,dStartDate
    ,nStatus
    )
SELECT nEvent  -- passendes nEvent zu kWorkflow, in dem Beispiel ist es ein Feld aus tWorkflow-Tabelle
     kWorkflow -- z.B. 23, in dem Beispiel ist es ein Feld aus tWorkflow-Tabelle
    ,1234 AS kObjektPk --z.B. kAuftrag oder kArtikel
    ,11 AS kBenutzer --Workflow Benutzer
    ,DATEADD(N, 1, GETDATE()) AS dStartDate --damit es Worker ausführt, Verzögerung für 1 Minute
    ,1 AS nStatus
FROM eazybusiness.dbo.tWorkflow twa --oder lvAuftrag, tArtikel,
--Dieser Code ist nur eine nicht notwendige zusätzliche Prüfung, 
--ob der Workflow schon gelaufen ist oder gerade in der Queue steht.
--OUTER APPLY (
--    SELECT TOP (1) kWorkflowLog AS Log_Vorhanden
--    FROM eazybusiness.dbo.tWorkflowLog wfl
--    WHERE wfl.kWorkflow IN (
--            23
--            )
--        AND wfl.kObjektPk = lvAuftrag.kBestellung
--        AND wfl.cObjectId = lvAuftrag.cBestellnr
--        AND wfl.cLog IN ( 'Der Workflow wurde erfolgreich beendet.')
--        AND kWorkflowAktion = - 1
--    ORDER BY dDatum DESC
--    ) workflow_log
--OUTER APPLY (
--    SELECT TOP (1) wfq.kWorkflowQueue AS Queue_Vorhanden
--    FROM eazybusiness.dbo.tWorkflowQueue wfq
--    WHERE wfq.kWorkflow IN (
--            23
--            )
--        AND wfq.kObjektPk = lvAuftrag.kBestellung
--        AND wfq.nStatus = 1
--    ORDER BY dStartDate DESC
--    ) workflow_queue


WHERE twa.cName='Mein Auftrag Erstellen'
--AND workflow_log.Log_Vorhanden IS NULL AND workflow_queue.Queue_Vorhanden IS NULL
Würdest du die Lösung zur Verfügung stellen?
 

mvh

Sehr aktives Mitglied
26. Oktober 2011
638
208
SQL-Server-Agent-Auftrag.png
So könnte SQL-Server-Agent Auftrag aussehen.
Besonders die Zeitpläne sind sehr nützlich.
 
  • Gefällt mir
Reaktionen: wawi-dl

forumjtlolshopag

Sehr aktives Mitglied
6. Juni 2018
614
163
Danke für die Abfrage, so ähnlich hätten wir die dann auch für uns aufgebaut. Wir nutzen für "Zeitpläne" das NiFi, dann können wir noch weitere Bedingungen abfragen, die teilweise außerhalb der DB ggf. sogar außerhalb der SQL Welt liegen.
 
  • Gefällt mir
Reaktionen: mvh

wawi-dl

Sehr aktives Mitglied
29. April 2008
5.922
568
Die SQL-Anweisung hatte einen kleinen Fehler, es fehlte ein Komma vor kWorkflow bzw. nach nEvent:
SET QUOTED_IDENTIFIER ON;

INSERT INTO tWorkflowQueue (
nEvent,
kWorkflow,
kObjektPk,
kBenutzer,
dStartDate,
nStatus
)
SELECT
nEvent,
kWorkflow,
1234 AS kObjektPk,
11 AS kBenutzer,
DATEADD(N, 1, GETDATE()) AS dStartDate,
1 AS nStatus
FROM
tWorkflow
WHERE
tWorkflow.cName = 'mein Workflow-Name';

Der Workflow ist aber so nicht sofort ausführbar, richtig?
Wir hätten gerne einen Workflow direkt angestoßen, sofern das geht.

So wäre man doch immer von Worker und Laufzeit abhängig.
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Vorschlag fürs Forum Costum Workflows JTL-Wawi - Ideen, Lob und Kritik 1
Verwiesen an Support wo finde ich die Logdatei von den Workflows JTL-Workflows - Fehler und Bugs 9
Beantwortet Abbild der Workflows als CSV JTL-Workflows - Ideen, Lob und Kritik 1
In Bearbeitung Warum sind die Leerzeichen im Namen von Workflows JTL-Workflows - Fehler und Bugs 2
Neu shopapotheke per Anbindung eBay-Anbindung - Fehler und Bugs 1
Neu Umlagerung per Ameisen-Import JTL-Wawi - Fehler und Bugs 1
Neu In einen Portlet-Container im Frontend per Ajax Datennachladen (weitere anzeigen) Technische Fragen zu Plugins und Templates 1
Neu eBay Plus Angebote per Ameise steuerbar ? Eigene Übersichten in der JTL-Wawi 6
Neu Zugang zu Kategorien nur per Kennworteingabe Plugins für JTL-Shop 3
Neu Eigene Felder (Kunde) in csv-Datei per Ausgabe (Auftrag oder Lieferschein) Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Lieferadresse / Rechnungsadresse im Auftrag per Doppelklick wählbar machen JTL-Wawi - Ideen, Lob und Kritik 0
Datenbank-Abfrage per SQL nach Lagermenge pro Artikel & Warenbereich (WMSLager) JTL-Wawi 1.8 1
Neu Lieferantenbestellung als CSV mit selbst festgelegten Spalten per Mail senden Arbeitsabläufe in JTL-Wawi 1
Neu Benachrichtigung per Workflow bei Wareneingang User helfen Usern - Fragen zu JTL-Wawi 24
Neu Weiterleitungen direkt per Datenbank einfügen aufgrund Größe bzw. Anzahl? Betrieb / Pflege von JTL-Shop 9
Gelöst Per Workflow im Servicedesk eine Mail versenden. Gelöste Themen in diesem Bereich 4
Variationen per Ameise umbenennen JTL-Wawi 1.8 1
Workflow Auftraqspositionen per Email an Kunden senden JTL-Wawi 1.7 3
Neu Ist es möglich per Ameise Kunden zu löschen? Arbeitsabläufe in JTL-Wawi 2
Neu LS-Pos Kundenrechnung per Email Fragen rund um LS-POS 1
Neu Warenkorb per Link teilen Allgemeine Fragen zu JTL-Shop 6
Ausgabe per E-Mail geht plötzlich nicht mehr, Testmail aus Wawi aber schon JTL-Wawi 1.6 22
Beantwortet Kunde von Firma per Workflow setzen JTL-Workflows - Ideen, Lob und Kritik 1
Neu Datenbankebene per SQL löschen Eigene Übersichten in der JTL-Wawi 6
Neu Consent Status per Smarty Var abfragen Technische Fragen zu Plugins und Templates 2
Nur noch sporadischer Versand per Mail von Rechnungen, Lieferscheinen und Mahnungen nach Update auf Version 1.8. JTL-Wawi 1.8 0
Neu Kinderartikel per Ameise vom Vater lösen Arbeitsabläufe in JTL-Wawi 6
Neu Probleme bei Aufgabenplaner (Export-Manger) per Cronjob JTL-Shop - Fehler und Bugs 1
Neu EK-Preise per Workflow in Lieferantenbestellung einfügen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu per Workflow: WhatsApp oder ähnliches senden User helfen Usern - Fragen zu JTL-Wawi 0
Preise per Artikel Funktionsattribut bei einzelnen Artikeln ausblenden Einrichtung JTL-Shop5 0
Neu Vorschlag: Per Workflow Tickets erstellen Servicedesk (Beta) 1
Label per Import bedienen JTL-Wawi 1.8 0
Neu Artikeländerung per Artikelnummer mit Wildcard? JTL-Ameise - Ideen, Lob und Kritik 1

Ähnliche Themen