Ausgangslage
Ihr möchtet, dass Aufträge per Workflow unter bestimmten Bedingungen immer automatisch auf "Externe Rechnung" gesetzt werden. Dies ist beispielsweise gewünscht, wenn der Auftrag nach dem Gutschriftverfahren abgerechnet wird und daher keine Rechnung in der Wawi erstellt werden darf.
Gewünschtes Ergebnis
Wenn man versucht für einen betroffenen Auftrag eine Rechnung zu erstellen bekommt man eine Fehlermeldung:
Unser Ansatz
Ab der Wawi Version 1.6 kann man eigene SQL-Aktionen direkt im Workflow ausführen. Das machen wir uns zu Nutze.
Nachteil
Man braucht tiefgreifenden Zugriff auf die Datenbank. Man sollte immer genau wissen was man tut. Ansonsten ist diese Funktion relativ undokumentiert. Was wir hier zeigen ist getestet und funktioniert, aber eben genau in unserem Labor und allen bekannten Fällen. Wir können nicht garantieren, dass es auch in Zukunft immer so funktionieren wird.
Vorteil
Eine versehentliche Änderung ist wesentlich schwieriger. Darüber hinaus, wird das ganze Skript so in der Datenbank gespeichert und an die Client-Wawi übergeben. Jeder einzelne Client kann diesen Workflow somit ausführen und das "sofort", nicht nur zeitversetzt.
Der mit Abstand größte Vorteil jedoch ist die Performance. Einen schnelleren Weg Aufträge auf externe Rechnung zu setzen, gibt es nicht.
Vorraussetzung
- Vorraussetzung ist eine aktuelle Version der 1.6. Welche genau, wissen wir nicht. Auf Nummer sicher geht ihr, wenn die Version neuer als 1.6.40 ist.
Einrichtung
Ihr öffnet das Managementstudio mit der Datenbankverbindung und geht in den betroffenen Mandanten
Dort führt ihr dann folgendes SQL aus:
--Copyright (c) 2022 T4DT GmbH
--Jedem, der eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, wird hiermit kostenlos die Erlaubnis erteilt, ohne Einschränkung mit der Software zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und/oder Verkaufen von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:
--Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
IF EXISTS(SELECT 1 FROM sys.procedures WHERE Name = 'spAufExterneRechnungStellen')
DROP PROCEDURE CustomWorkflows.spAufExterneRechnungStellen
GO
CREATE PROCEDURE CustomWorkflows.spAufExterneRechnungStellen @kAuftrag INT AS
BEGIN
--Copyright (c) 2022 T4DT GmbH
--Jedem, der eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, wird hiermit kostenlos die Erlaubnis erteilt, ohne Einschränkung mit der Software zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern, Zusammenführen, Veröffentlichen, Verteilen, Unterlizenzieren und/oder Verkaufen von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies unter den folgenden Bedingungen zu gestatten:
--Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
UPDATE tb SET nIstExterneRechnung = 1 FROM Verkauf.tAuftrag tb
WHERE tb.kAuftrag = @kAuftrag
END
GO
EXEC CustomWorkflows._CheckAction 'spAufExterneRechnungStellen'
GO
EXEC CustomWorkflows._SetActionDisplayName 'spAufExterneRechnungStellen', 'Auf externe Rechnung stellen'
GO
Ihr könnt die angelegte Aktion nun wie gewohnt direkt als Workflowereignis auswählen:
Kommentare
0 Kommentare
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.