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

  1. 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.

  2. Ausgabe von Datensatz-Listen
    Um die Daten eines Baustein Datensatz Liste auszugeben, werden spezielle XML-Tags mit dem uni: 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 der ref-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>
    
  3. 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 Schalter istReisezeit 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.

  4. 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

  1. 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.

  2. 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.

  3. 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.

  4. 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:

  1. Empfänger
    Auswahl des Bausteins, der die E-Mail Adresse des Empfängers enthält (Textfeld oder E-Mail Baustein).

  2. CC-Empfänger
    Zusätzliche E-Mail Adressen für CC können hier eingegeben werden.

  3. Benutzer in CC hinzufügen
    Der auslösende Benutzer der XML-Erstellung wird automatisch in CC genommen.

  4. BCC
    E-Mail Adressen für BCC können hier eingegeben werden.

  5. Betreff vordefinieren
    Der E-Mail Betreff kann vordefiniert und mit Platzhaltern dynamisch gestaltet werden, z.B. XML Export - ${belegnummer}.

  6. 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