XML erstellen
Mit dem Baustein XML erstellen kann, ausgehend von einer XML-Vorlage, eine XML-Datei erstellt und, wenn gewünscht, per E-Mail versendet werden. Die XML-Datei kann individuell gestaltet werden und sich auf die Liste beziehen in welcher die XML-Datei erstellt wird. Alle darstellbaren Inhalte können ausgegeben werden, neben Buchstaben und Zahlen auch strukturierte Daten und verknüpfte Datensatz-Listen. Als zusätzliches Feature lassen sich generierte XML-Dateien über ein selbsterstelltes Skript in einem bestimmten Zielordner automatisch ablegen. (s. Import und Export / Dateiimport / -export via PowerShell)
Im Gegensatz zum PDF-Baustein verwendet der XML-Baustein spezielle XML-Tags mit dem uni:
-Namespace für Schleifen und bedingte Anzeigen, anstatt der ${repeat(...)}
Syntax.
Hinweis: Dieser Baustein ist ein Power-Feature und erfordert entsprechende Berechtigung.
Vorbereitung der XML-Vorlage
-
Ausgabe von Einzelwerten
Die Ausgabe von Einzelwerten erfolgt, indem in der XML-Vorlage der technische Name eines Bausteins innerhalb von zwei geschwungenen Klammern mit einem Dollar-Zeichen davor gesetzt wird. Beispiel:${belegnummer}
für die Ausgabe einer Belegnummer. -
Ausgabe von Datensatz-Listen
Um die Daten eines Baustein Datensatz Liste auszugeben, werden spezielle XML-Tags mit demuni:
Namespace verwendet. Das<uni:repeat>
Tag definiert, über welche Liste iteriert werden soll.So könnte die XML-Struktur zur Ausgabe einer ganzen Liste aussehen:
<?xml version="1.0" encoding="utf-8"?> <mitarbeiterListe xmlns:uni="http://univelop.com/xml"> <uni:repeat ref="mitarbeiterZeiten" name="mitarbeiter"> <mitarbeiter> <arbeitszeit>${mitarbeiter.Arbeitszeit}</arbeitszeit> <name>${mitarbeiter.name}</name> <index>${mitarbeiter.__index__}</index> </mitarbeiter> </uni:repeat> </mitarbeiterListe>
Attribute des
<uni:repeat>
Tags:ref
: Der technische Name des Bausteins (Pflichtfeld)name
: Der Name, unter dem die Datensätze in der Vorlage verfügbar sind (optional, standardmäßig wird derref
-Wert verwendet)- Zusätzlich steht die Variable
__index__
für die aktuelle Iterationsnummer zur Verfügung (beginnend bei 1)
Unterstützte Bausteine für
<uni:repeat>
:- Datensatz Liste
- Mehrfach-Datensatz-Auswahl
- Tabelle
- Kalender
Die XML-Struktur kann um beliebig viele Elemente erweitert werden, solange diese in der Datensatz-Liste vorkommen.
Verschachtelte
<uni:repeat>
Tags sind auch möglich. Es muss jedoch eine Liste referenziert werden, welche von der umschließenden Liste erreichbar ist (z. B. durch einen Baustein Datensatz-Liste). Dadurch kann z. B. die tägliche Nutzungszeit einer Baumaschine, welche aus Einsätzen bei mehreren Kunden besteht, strukturiert in einer XML-Datei ausgegeben werden.Eine solche verschachtelte XML-Struktur könnte wie folgt aussehen:
<?xml version="1.0" encoding="utf-8"?> <maschinenliste xmlns:uni="http://univelop.com/xml"> <uni:repeat ref="maschZeiten" name="maschine"> <maschine> <name>${maschine.maschine}</name> <gesamtDauer>${maschine.gesDauer}</gesamtDauer> <einsaetze> <uni:repeat ref="maschine.einsaetze" name="einsatz"> <einsatz> <dauer>${einsatz.dauer}</dauer> <auftragsnummer>${einsatz.auftrNr}</auftragsnummer> </einsatz> </uni:repeat> </einsaetze> </maschine> </uni:repeat> </maschinenliste>
-
Ein-/Ausblenden von Inhalten
Sollten gewisse XML-Elemente abhängig von einer Bedingung ausgeblendet werden, kann dies über das<uni:showIf>
Tag realisiert werden.Wenn wir das obige Beispiel (Zeiterfassung) erweitern möchten und z.B. anzeigen möchten, dass es sich bei der aufgeführten Zeit um Reisezeit handelte, können wir so etwas machen:
<?xml version="1.0" encoding="utf-8"?> <mitarbeiterListe xmlns:uni="http://univelop.com/xml"> <uni:repeat ref="mitarbeiterZeiten" name="mitarbeiter"> <mitarbeiter> <arbeitszeit>${mitarbeiter.Arbeitszeit}</arbeitszeit> <name>${mitarbeiter.name}</name> <uni:showIf exp="mitarbeiter.istReisezeit"> <reisezeit>true</reisezeit> </uni:showIf> </mitarbeiter> </uni:repeat> </mitarbeiterListe>
Attribute des
<uni:showIf>
Tags:exp
: Die Bedingung, die ausgewertet werden soll (Pflichtfeld, muss in einem Wahrheitswert resultieren)
In diesem Beispiel wird das XML-Element
<reisezeit>
nur hinzugefügt, wenn der SchalteristReisezeit
gesetzt ist. Das<uni:showIf>
Tag kann auch außerhalb von<uni:repeat>
-Blöcken verwendet werden.Hinweis: Die Bedingung im
exp
-Attribut kann auf Schalter, Ja-/Nein-Formel-Bausteine oder andere Ausdrücke angewendet werden. -
Sonderzeichen und Escape-Sequenzen
Sonderzeichen in Parametern werden automatisch für XML escapiert, um eine gültige XML-Struktur zu gewährleisten.
Einstellungen des Bausteins XML erstellen
-
XML-Vorlage hinzufügen
Über den Plus-Button öffnet sich ein Auswahl-Dialog, worüber die XML-Vorlage ausgewählt wird. Anschließend wird sie in den Baustein hochgeladen. Die Vorlage wird automatisch validiert, um sicherzustellen, dass sie gültig ist. -
Abweichender bzw. dynamischer Dateiname
Der Dateiname kann ebenfalls abweichend und dynamisch gewählt werden. Soll der Dateiname zum Teil dynamisch sein, kann ebenfalls ein Platzhalter mit Bezug zu einem Baustein eingesetzt werden. Soll die XML-Datei zum Beispiel so heißen wie die Belegnummer, können Sie hier${belegnummer}
eingeben. -
Automatische Dateiübertragung per PowerShell
Zur automatischen Dateiübertragung können Sie auch Dateien per PowerShell mit dem Dateisystem synchronisieren. Ein entsprechendes Skript kann heruntergeladen und angepasst werden. -
Direkter Mailversand
Die erstellte XML-Datei kann über diese Funktion direkt per E-Mail versendet werden.
Einstellungen des direkten Mail-Versands
Um eine E-Mail Adresse für den direkten Mailversand zu verwenden, benötigt der Baustein XML erstellen einen Empfänger über einen Baustein Textfeld oder E-Mail, wo die entsprechende E-Mail Adresse eingetragen wird. Bleibt die E-Mail Adresse für den direkten Mailversand immer gleich, kann der Baustein Textfeld versteckt und als Standard-Text wird die E-Mail Adresse hinterlegt.
Wechselt die E-Mail Adresse je nach Anforderung (z. B. unterschiedliche Vorgesetzte, unterschiedliche Lieferanten pro Artikel, etc.) kann der benötigte Baustein Textfeld, bezogen auf die genannten Beispiele, in den Stammdaten des Mitarbeiters oder des Artikels aufgeführt werden und bei der Auswahl als Wert übernommen werden (s. Verknüpfung über den Baustein Datensatz).
Bei der Auswahl der Option “direkter Mailversand” können weitere Einstellungen vorgenommen werden:
-
Empfänger
Auswahl des Bausteins, der die E-Mail Adresse des Empfängers enthält (Textfeld oder E-Mail Baustein). -
CC-Empfänger
Zusätzliche E-Mail Adressen für CC können hier eingegeben werden. -
Benutzer in CC hinzufügen
Der auslösende Benutzer der XML-Erstellung wird automatisch in CC genommen. -
BCC
E-Mail Adressen für BCC können hier eingegeben werden. -
Betreff vordefinieren
Der E-Mail Betreff kann vordefiniert und mit Platzhaltern dynamisch gestaltet werden, z.B.XML Export - ${belegnummer}
. -
Inhalt der E-Mail vordefinieren
Über${}
kann der Inhalt der E-Mail ebenfalls dynamisch gestaltet werden, z.B.:Sehr geehrte Damen und Herren, anbei erhalten Sie die XML-Datei für ${belegnummer}. Mit freundlichen Grüßen
Verwendung und Anwendungsfälle
Der XML-Baustein eignet sich besonders für:
- E-Rechnungen
- Datenexport für andere Systeme, die XML-Format benötigen
- API-Integration durch strukturierte Datenübertragung
- Archivierung von Daten in einem standardisierten Format
- Berichtswesen mit strukturierten Datenausgaben
- Systemintegration durch einheitliche Datenformate