XSL-Dateien

Verwendung / Arbeiten mit XSL-Dateien

Ergänzend zu den Formularen werden im Kieselstein ERP auch XSL Dateien verwendet.

Diese dienen der Steuerung der EMail-Vorlagen Texte und der Anpassung der Exportformate an die verschiedenen Finanzbuchhaltungsprogramme.

Nun ist das XSL faktisch eine Art Programmiersprache, womit sich eine weite Möglichkeit für die Anpassung der Ergebnisse ergibt.

Eine schnelle Übersicht findet man z.B. unter https://www.w3.org/People/maxf/XSLideMaker/tut.pdf

Vielleicht hilft auch https://www.softwaretestinghelp.com/xslt-tutorial/ dem einen oder anderen weiter. Gefunden habe ich auch: https://www.tutorialspoint.com/xslt/index.htm

Komische Zeichen in EMails

Erscheinen in deinen versandten EMails komische Zeichen, z.B.

So ist die EMail-Vorlage mit einem Standard Editor bearbeitet worden, wodurch die notwendige Codedefinition verschwindet. Leider ist es so, dass man diesen Fehler nur sehr mühsam findet. Mir ist derzeit nur ein verlässlicher Weg bekannt, mit dem festgestellt werden kann, ob die Datei richtig eingestellt ist. Lasse dir die Datei mit einem File-Viewer anzeigen der auch Hexdaten darstellen kann. In Windowssystemen nutze ich dazu den im Totalcommander integrierten Fileviewer und schalte mit der Ziffer 3 auf die Hexdarstellung um. Hier sieht man den Unterschied.

Ansicht Inhalt
Normale Darstellung
Hex-Darstellung
hier sieht man deutlich, dass in einer richtig codierten Datei am Anfang noch drei Steuerzeichen sind. Diese codieren die Datei im UTF-8-BOM Format. Leider werden diese Informationen von den allermeisten Editoren entfernt.

Daher dürfen diese Dateien (in Windowssystemen) nur mit dem Notepad++ bearbeitet werden. Hier wird diese Information erzeugt / hinzugefügt. Siehe dazu auch:

Wichtig: Wenn man Texte von anderen Vorlagen importiert, oder “falsche” Vorlagen korrigiert, so kommt es auch im Notepad++ immer wieder vor, dass die Kodierung automatisch passend zu den gerade importierten Zeichen umgeschaltet wird. D.h. es muss unbedingt vor der Verwendung geprüft werden, ob die Kodierung noch immer auf UTF-8-BOM steht.
Es kommt sonst immer wieder vor, dass gerade unsere deutschsprachigen Umlaute falsch dargestellt werden, oder dass beim Versuch die Rechnung per EMail zu senden, eine Fehlermeldung kommt.
Sieht man im Server Log nach, so findet man:

2024-04-16 16:51:16,582 ERROR [stderr] (default task-3) [Fatal Error] :17:12: Invalid byte 1 of 1-byte UTF-8 sequence.

2024-04-16 16:51:16,583 ERROR [stderr] (default task-3) System-ID unbekannt; Zeilennummer17; Spaltennummer12; org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 12; Invalid byte 1 of 1-byte UTF-8 sequence.

Sonderzeichen in den EMail-Vorlagen definieren

Da, insbesondere in den Firmen-Namen immer wieder auch Sonderzeichen enthalten sind, müssen diese entsprechend in den XSL-Vorlagen codiert übergeben werden, da das eigentliche Sonderzeichen eine besondere Bedeutung hat. D.h. diese Zeichen sind wie gewünscht zu kodieren:

Zielzeichen Codierung
& &
Leerzeichen  

Siehe dazu gerne auch https://www.htmlhelp.com/de/reference/html40/entities/special.html, Spalte Entität, bzw. Darstellung im Browser.

Anmerkung: Das Backslash im Source ist nur, damit dies als Text ausgegeben wird und nicht interpretiert wird.

Kostenstellen Subdirectory wird bei XSL nicht unterstützt

Die mögliche Steuerung der Formularvorlagen über die zusätzliche Subdirectory Funktion in den Kostenstellen wird bei den mail.xsl Vorlagen nicht unterstützt.

Verwendung der Vorlagen

Siehe dazu auch.
In den standard Reportvorlagen findest du unter allgemein auch XSL Vorlagen für den EMail-Textvorschlag für den EMail-Versand. Die Grundidee hinter diesen Vorlagen ist, dass es eine allgemeine Vorlage für alle Formulare gibt und dass man zusätzlich diese Vorlage je Report durch eine spezielle Definition übersteuern kann.
Zusätzlich können noch spezielle Übersteuerungen vorgenommen werden.

Vorlage Bedeutung / Verwendung
mail.xsl Die Vorlage für den EMail-Text aller Formulare
mail_html.xsl Wenn in deiner Installation der HTML EMail Versand (Zusatzfunktionsberechtigung EMAIL_CLIENT) aktiviert ist und der Parameter HTML_SIGNATUR_MAILVERSAND definiert ist.
mail_signatur.xsl Umfassende html Vorlage mit Korrekturen und allen Firmendaten
Hier siehst du auch die Verwendung von Bedingungen und ähnliches
absender_vorlage.xsl Übersteuerung des Absenders, sodass z.B. die Ausgangsrechnung immer von buchhaltung@ versandt wird
anhang_vorlage.xsl Übersteuerung des Namens des Anhangs
betreff_vorlage Übersteuerung des Betreffs siehe

Weitere Details, insbesondere die zur Verfügung stehenden Parameter, siehe bitte innerhalb der jeweiligen Dateien.

Wie bei einer Neuinstallation vorgehen

Wenn in deiner Kieselstein ERP Installation noch keine EMail-Definitionen vorgenommen wurden, so würde ich die mail_signatur.xsl aus dem Standard (LW\dist\wildfly-26.1.2.Final\kieselstein\reports\allgemein\mail_signatur.xsl) nach dem Anwender kopieren (LW\data\reports\allgemein) und von mail_signatur.xsl auf mail.xsl umbenennen.

Passe dann diese Vorlage entsprechend deinen Wünschen an.
Hierfür kannst du auch System, Pflege, Beleg Pflege, Allgemein, XSL Vorlage aendern verwenden.

Einrichten der Mahnungstexte.

Da man meist zumindest die Texte der Sammelmahnung auch entsprechend gestalten will, hier meine persönliche Vorgehensweise.

  • Ich richte mir einen Mahnungslauf, der nur eine Mahnung in der gewünschten Stufe beinhaltet.
  • Nun schalte ich den EMail Versand ab. System, Automatik, den Haken bei Mailversand herausnehmen (im Detail)
  • nun gehe ich in den Mahnungslauf und klicke auf EMail Versand
  • Nun in System, Versandauftrag, Refresh
  • Wie sieht der Text aus
  • diesen gegebenenfalls anpassen und
  • zurück zum Mahnungslauf
  • durch Klick auf den Radiergummi den letzte Mahnungsversand löschen (bei offen steht wieder 1)
  • wieder beim Mahnungs-EMail Versand beginnen

Solange bis dein Text passt. Achte dabei auf die unterschiedlichen Formatierungen für html oder normalen EMail Text.

Denke daran, danach den EMail Versand in System, Automatik, Mailversand wieder zu aktivieren.

Anmerkungen

  • finanz_mahnung_betreff.xsl kann nicht verwendet werden, da das Betreff errechnet wird
  • finanz_sammelmahnung_betreff.xsl kann nicht verwendet werden, da das Betreff errechnet wird

Einfache XSL Vorlage

Für einfache EMail Vorlagen kannst du auf die apply-templates verzichten, sodass deine XSL Vorlage z.B. für die Finanz Sammelmahnung wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:preserve-space elements="*"/>
	<xsl:output method="text" encoding="UTF-8"/>
	<xsl:template match="mail">
Liebe(r) <xsl:value-of select="/mail/partner_name2"/>&#160;<xsl:value-of select="/mail/partner_name1"/>,
leider muss ich dir diese Zahlungserinnerung senden.

Überweise doch bitte den im Anhang ausgewiesenen offenen Betrag in den nächsten Tagen.

Mit lieben Grüßen 


Kieselstein die Open Source ERP-Software für erfolgreiche Unternehmer
	</xsl:template>
	</xsl:stylesheet>

Der Vorteil dieses Beispiels ist, dass du dir aus partner_name2 den Vornamen des Rechnungsempfängers holst, womit eine persönlichere Anrede möglich ist.