Eigene Workflow Aktionen für JTL programmieren + Beispielcode

Kategorie
Datum
Jun 27, 2023
Tags
Guide
JTL Workflows
Hey, schön, dass du hier bist! 👋 Heute tauchen wir tief in die Welt der JTL Workflows ein und lernen, wie wir unsere eigenen Workflow-Aktionen programmieren können.
Warum ist das wichtig? 🤔 Nun, JTL bietet eine Menge vordefinierter Workflows, die viele gängige Geschäftsprozesse abdecken. Aber manchmal haben wir spezielle Anforderungen oder Prozesse, die nicht durch die Standard-Workflows abgedeckt werden. In solchen Fällen kann es hilfreich sein, unsere eigenen Workflow-Aktionen zu erstellen.
⚠️
Aber Achtung! Bevor wir loslegen, eine wichtige Warnung: Die Methode, die wir gleich besprechen, beinhaltet das Arbeiten mit SQL und ist ein direkter Eingriff in die Datenbank. Das bedeutet, dass du sehr vorsichtig sein musst, da du sonst etwas beschädigen könntest. Diese Methode ist wirklich nur für diejenigen geeignet, die wissen, was sie tun. Wenn du dir unsicher bist, hole dir bitte Hilfe von jemandem, der Erfahrung mit SQL und Datenbanken hat.
Also, wenn du bereit bist, lass uns loslegen und lernen, wie wir unsere eigenen Workflow-Aktionen in JTL programmieren können! 🚀
 

Grundlagen

Bevor wir in die Details einsteigen, lass uns kurz die Grundlagen klären. Workflows in JTL sind eine mächtige Funktion, die es uns ermöglicht, Geschäftsprozesse zu automatisieren. Normalerweise erstellen wir diese Workflows über die JTL-Oberfläche und nutzen dabei die vordefinierten Aktionen.
Aber was ist, wenn wir etwas tun wollen, das nicht durch die vordefinierten Aktionen abgedeckt ist? Hier kommt SQL ins Spiel. Mit SQL können wir Daten abfragen, einfügen, aktualisieren und löschen.
Allerdings gibt es hier eine Einschränkung: In Aktionen innerhalb JTL Workflows die mit der Template-Sprache DotLiquid arbeiten, sind SQL UPDATE Befehle blockiert. Das bedeutet, wir können nicht einfach einen SQL-Befehl in unseren Workflow einfügen, um Daten in der Datenbank zu ändern. Aber keine Sorge, es gibt einen Weg, das zu umgehen. Und genau das werden wir als nächstes lernen.
 

Erstellung eigener Workflow-Aktionen

Jetzt kommen wir zum spannenden Teil: Wir erstellen unsere eigenen Workflow-Aktionen mit SQL. Hier ist ein einfacher Schritt-für-Schritt-Prozess, wie du das machen kannst:
  1. Erstelle einen neuen benutzerdefinierten Datentyp: Dieser Datentyp wird verwendet, um Parameter in unseren SQL-Query zu übergeben. Zum Beispiel könnten wir einen Datentyp Parameter_spLieferscheinVersandartSetzen_Versandart vom Typ NVARCHAR(255) erstellen.
CREATE TYPE CustomWorkflows.Parameter_spLieferscheinVersandartSetzen_Versandart FROM NVARCHAR(255);
  1. Setze den Anzeigenamen für den Parameter: Dies ist der Name, der in der JTL-Oberfläche angezeigt wird. Zum Beispiel könnten wir den Anzeigenamen auf 'Versandart ID (intern)' setzen.
EXEC CustomWorkflows._SetActionParameterDisplayName @parameterName = 'Parameter_spLieferscheinVersandartSetzen_Versandart', @displayName = 'Versandart ID (intern)'
  1. Erstelle die gespeicherte Prozedur: Dies ist der SQL-Code, der ausgeführt wird, wenn die Aktion aufgerufen wird. In diesem Code kannst du den Parameter verwenden, den du gerade erstellt hast.
CREATE PROCEDURE CustomWorkflows.spLieferscheinVersandartSetzen @kLieferschein INT, @cVersandart Parameter_spLieferscheinVersandartSetzen_Versandart AS BEGIN UPDATE dbo.tVersand SET tVersand.kVersandart = @cVersandart WHERE tVersand.kLieferschein = @kLieferschein END
Das war's schon! Du hast gerade deine eigene Workflow-Aktion erstellt. Im nächsten Abschnitt werden wir sehen, wie wir diese Aktion in unseren Workflows verwenden können.
 

Anwendung der eigenen Workflow-Aktionen

Jetzt, wo wir unsere eigene Workflow-Aktion erstellt haben, wollen wir sie natürlich auch nutzen. Aber wie genau machen wir das? Keine Sorge, es ist ziemlich einfach. Folge einfach diesen Schritten:
  1. Erstelle einen neuen Workflow oder bearbeite einen bestehenden: In der JTL-Oberfläche kannst du einen neuen Workflow erstellen oder einen bestehenden öffnen.
  1. Wähle die Aktion aus: In der Liste der verfügbaren Aktionen sollte nun auch deine selbst erstellte Aktion erscheinen. Wähle sie einfach aus.
  1. Übergib die Parameter: Je nachdem, welche Parameter du in deiner Aktion definiert hast, kannst du nun die entsprechenden Werte eingeben. In unserem Beispiel würden wir die Versandart ID (intern) eingeben.
Und das war's schon! Dein Workflow verwendet nun deine selbst erstellte Aktion. Jedes Mal, wenn der Workflow ausgeführt wird, wird auch dein SQL-Query ausgeführt und die entsprechenden Änderungen in der Datenbank vorgenommen.
Aber welche Workflow-Objekte können wir eigentlich mit unseren eigenen Aktionen verwenden? Die gute Nachricht ist, dass JTL eine Vielzahl von Workflow-Objekten unterstützt, darunter:
  • Artikel: kArtikel
  • WarenlagerAusgang: kWarenLagerAusgang
  • Lieferantenbestellung: kLieferantenbestellung
  • Eingangsrechnung: kEingangsrechnung
  • Kunde: kKunde
  • Auftrag: kAuftrag
  • Lieferschein: kLieferschein
  • Rechnung: kRechnung
  • Gutschrift: kGutschrift
  • Pickliste: kPickliste
  • WarenlagerEingang: kWarenlagerEingang
  • Angebot: kAngebot
  • Versand: kVersand
  • Pick: kPick
  • Ticket: kTicket
Das gibt uns eine Menge Flexibilität und ermöglicht es uns, unsere Workflows genau auf unsere Bedürfnisse zuzuschneiden. Im nächsten Abschnitt werden wir uns die Vorteile und Möglichkeiten ansehen, die sich durch die Programmierung eigener Workflow-Aktionen ergeben.
 

Vorteile und Möglichkeiten

Jetzt, wo wir gesehen haben, wie wir unsere eigenen Workflow-Aktionen erstellen und anwenden können, lass uns einen Blick auf die Vorteile und Möglichkeiten werfen, die sich dadurch ergeben.
Erstens, und das ist wohl der größte Vorteil, haben wir nun die volle Kontrolle über unsere Workflows. Wir sind nicht mehr auf die vordefinierten Aktionen von JTL beschränkt, sondern können unsere eigenen Aktionen erstellen, die genau das tun, was wir brauchen. Das gibt uns eine Menge Flexibilität und ermöglicht es uns, unsere Geschäftsprozesse genau so zu automatisieren, wie wir es brauchen.
Zweitens können wir nun in allen Workflow-Bereichen eigene SQL-Queries ausführen. Das bedeutet, dass wir nicht nur Daten abfragen, sondern auch ändern können. Das eröffnet uns eine ganz neue Welt an Möglichkeiten und kann uns helfen, unsere Workflows noch effizienter zu gestalten.
Drittens, und das ist vielleicht der spannendste Teil, können wir nun unsere eigenen Aktionen mit den verschiedenen Workflow-Objekten von JTL kombinieren. Das bedeutet, dass wir unsere Aktionen auf eine Vielzahl von Objekten anwenden können, von Artikeln und Kunden bis hin zu Rechnungen und Tickets. Das gibt uns eine Menge Spielraum, um unsere Workflows genau auf unsere Bedürfnisse zuzuschneiden.
 

Vollständiger SQL Code für Custom Workflow Aktionen

Und das war's schon! Du hast gerade gelernt, wie du deine eigenen Workflow-Aktionen in JTL programmieren kannst. Jetzt hast du die Werkzeuge und das Wissen, um deine Workflows genau so zu gestalten, wie du es brauchst. Aber denk daran, immer vorsichtig zu sein, wenn du mit SQL und der Datenbank arbeitest.
Hier ist noch einmal der gesamte Code, den wir in diesem Guide verwendet haben, als Referenz:
 
-- Erstellt einen neuen benutzerdefinierten Datentyp namens -- "Parameter_spLieferscheinVersandartSetzen_Versandart" basierend auf NVARCHAR(255) CREATE TYPE CustomWorkflows.Parameter_spLieferscheinVersandartSetzen_Versandart FROM NVARCHAR(255); GO -- Setzt den Anzeigenamen für den Parameter -- "Parameter_spLieferscheinVersandartSetzen_Versandart" auf "Versandart ID (intern)" EXEC CustomWorkflows._SetActionParameterDisplayName @parameterName = 'Parameter_spLieferscheinVersandartSetzen_Versandart', @displayName = 'Versandart ID (intern)' GO -- Erstellt eine gespeicherte Prozedur namens "spLieferscheinVersandartSetzen" -- Diese Prozedur nimmt zwei Parameter: "kLieferschein" (INT) und "cVersandart" -- (benutzerdefinierter Datentyp) -- Die Prozedur aktualisiert die "kVersandart" in der Tabelle "tVersand" -- basierend auf dem gegebenen "kLieferschein" CREATE PROCEDURE CustomWorkflows.spLieferscheinVersandartSetzen @kLieferschein INT, @cVersandart Parameter_spLieferscheinVersandartSetzen_Versandart AS BEGIN UPDATE dbo.tVersand SET tVersand.kVersandart = @cVersandart WHERE tVersand.kLieferschein = @kLieferschein END GO -- Setzt den Anzeigenamen für die Aktion "spLieferscheinVersandartSetzen" -- auf "Versandart ändern (alle Pakete)" EXEC CustomWorkflows._SetActionDisplayName @actionName = 'spLieferscheinVersandartSetzen', @displayname = 'Versandart ändern (alle Pakete)' GO -- Überprüft die Aktion "spLieferscheinVersandartSetzen" EXEC CustomWorkflows._CheckAction @actionName = 'spLieferscheinVersandartSetzen';
 
Wir hoffen, dass dir dieser Guide geholfen hat und freuen uns auf deine eigenen Workflow-Aktionen. Viel Erfolg! 🚀
 
Wir verwenden Cookies und vergleichbare Technologien, um bestimmte Funktionen zur Verfügung zu stellen, die Nutzererfahrungen zu verbessern und interessengerechte Inhalte auszuspielen. Abhängig von ihrem Verwendungszweck können dabei neben technisch erforderlichen Cookies auch Analyse-Cookies sowie Marketing-Cookies eingesetzt werden. Durch einen Klick auf „Zustimmen und weiter” erklären Sie Ihre Einwilligung in die Verwendung der genannten Cookies. Hier können Sie detaillierte Einstellung vornehmen oder Ihre Einwilligung (ggf. teilweise) mit Wirkung für die Zukunft widerrufen. Weitere Informationen finden Sie in unserer Datenschutzerklärung und Cookie Policy.