XSL-Dateien
Categories:
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:

UTF-8-BOM
Es müssen die EMail-XSL Vorlagen in UTF-8-BOM codiert sein.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"/> <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.
