Wie erstelle ich eine Word-Datei als Exportvorlage und welche Befehle kann ich für den Export nutzen?

Erfahre, wie du die passenden Formeln für deine Exportvorlage findest und sie in deine Exportvorlagen einpflegen kannst.

Vaira Webschulung – Exportvorlagen

Im Video erklärt dir Dennis aus unserem Marketing-Team, wie du

  • die notwendigen Informationen für deine Exportvorlage im Vaira Office finden kannst,
  • eine Exportvorlage in Microsoft Word erstellen und Formatierungen nutzen kannst,
  • die Exportvorlage in Vaira hochlädst,
  • die Exportvorlage mit automatisierter Datenbefüllung herunterladen kannst,
  • wie komplexere Exportvorlagen aussehen können.

 

Bevor du startest

Dieser Artikel ist eine ausführliche Anleitung, die dir Exportvorlagen, ihren Aufbau und die Befehle im Detail erklärt. Falls du dich damit bereits auskennst oder eine IT-Fachkraft bist, die nur einen Spickzettel ohne große Einordnungen brauchst, haben wir dir auch etwas vorbereitet: Befehle für Exportvorlagen – Spickzettel.

In diesem Artikel erfährst du, wo du deine Exportvorlage anschließend in Vaira hochladen kannst: Wie kann ich eine Export-Vorlage für einen Workflow hochladen?

Was ist eine Exportvorlage?

Vaira ermöglicht es, Auftragsdaten direkt in eine PDF zu exportieren. Dafür wird eine Word-Datei im dazugehörigen Workflow hinterlegt. Der Upload erfolgt unter dem Punkt „Exportvorlagen“. Die Word-Datei kann zum Beispiel eine unternehmensinterne Vorlage für Berichte sein. Diese muss so konfiguriert werden, dass die gewünschten Werte und Daten aus Vaira in die Exportvorlage fließen können. 

In dieser Dokumentation werden Beispiele für die Konfiguration gezeigt. Wichtig für die Formeln: die Kennung fieldID ist in Vaira deine Feld-ID und die taskID ist in Vaira deine Aufgaben-ID.

Wo kann ich meine Exportvorlage erstellen bzw. zu einem Workflow hinzufügen?

Eine ausführliche Anleitung dazu findest du hier: Wie kann ich eine Export-Vorlage für einen Workflow erstellen?

Wie exportiere ich Werte aus Vaira in meine Exportvorlage?

Wie du weißt, setzt sich dein Workflow aus Schritten zusammen, die untereinander verbunden werden und so den Prozess abbilden. Jeder Schritt besteht aus beliebig vielen Aufgaben. Aufgaben können beliebig viele eigene Felder umfassen. Dieser Aufbau ist auch die Grundlage für deinen Export.

In deiner Exportvorlage musst du einfach nur bestimmte Befehle an die passende Stelle schreiben – den Rest macht Vaira beim Export automatisch. Das Gute daran: du kannst deine bisherigen Word-Dokumente 1:1 ins Digitale übernehmen. Statt die Felder leer zu lassen, die Datei auszudrucken und von irgendjemandem manuell ausfüllen zu lassen und nachher wieder alles abtippen zu lassen, schreibst du einfach Befehle bereits ins Dokument und lädst es dann in Vaira hoch. Das kann dann z.B. so aussehen:

Du siehst hier ein typisches Formular, in dessen Feldern die passenden Befehle stehen. Die Befehle listen wir dir weiter unten auf. Beim Export geht Vaira einmal über diese Vorlage, ersetzt alle Befehle durch die passenden Werte aus deinem Vorgang und gibt dir das Ergebnis dann als saubere PDF aus. Nach dem Export sieht es dann z.B. so aus:

Die Felder übernehmen dabei die Formatierung davon, wie du die Werte eingetragen hast. Schriftgröße, ob Werte fett oder kursiv sind, ob sie linksbündig oder zentriert sind: all das übernimmt Vaira in deinem Export. Falls zum Zeitpunkt des Exports ein Feld (noch) nicht ausgefüllt ist, ist das auch kein Problem: das Feld bleibt dann im Export einfach leer.

Je nach Feldtyp kann sich die Syntax für den Export leicht unterscheiden. Im folgenden findest du für jeden der Feldtypen die passende Syntax.

 

 

Übersicht und Schnellnavigation

  1. Syntax für normale Datenexports
    1. Text, Zahl, Datum, Zeitstempel, Benutzer und Auswahlfeld
    2. Fotos aus Bild-Feldern
    3. Skizze aus Vermessungsfeld
    4. Fotos aus Vermessungsfeld
    5. Werte aus Listen
    6. Checkbox-Werte aus Feldern
    7. Checkbox-Werte aus Listen
  2. Syntax für Bedingungen
    1. Bestimmte Werte (nicht) im Export anzeigen

  3. Syntax für Formatierungen
    1. Die Anzahl der Nachkommastellen

 

 

Die Syntax für normale Datenexports

Bei den folgenden Befehlen musst du nur die fettgedruckten Werte anpassen. Alles andere darfst du nicht verändern. Nur so kann Vaira mit den Befehlen arbeiten. Achte also bitte darauf, immer den richtigen Klammer-Typ zu nutzen, jedes Anführungszeichen und jedes Komma zu übernehmen. 

 

Text, Zahl, Datum, Zeitstempel, Benutzer und Auswahlfeld

Diese Feldtypen teilen sich alle den gleichen Aufruf:

{# field("taskID/fieldID") #}

Neben der Grundstruktur musst du also nur taskID und fieldID durch die passenden Werte ersetzen. Die taskID ist die ID, die du deiner Aufgabe gegeben hast. Die fieldID die ist die ID, die dein Feld hat. Im Beispiel oben würdest du also in deine Word-Vorlage an die entsprechende Stelle das Folgende schreiben:

{# field("stammdaten/auftragsnummer") #}

 

Fotos aus Bild-Feldern

Hier arbeitest du mit einer einfachen Schleife. Der Vorteil: wenn es keine Fotos gibt, funktioniert der Export trotzdem. Und: mit diesen drei Zeilen Code exportiert dir Vaira alle Fotos, die es in dem Feld gibt. Der Code sieht so aus:

{# FOR img IN field("taskID/fieldID") #}

{# IMAGE getImage($img, Breite,Höhe) #}

{# END-FOR img #}

Wie gewohnt gibst du die taskID und die fieldID ein. Anschließend gibst du die Breite (bspw. 5) und/oder die Höhe (bspw. 3) an. Die Maße beziehen sich hier auf Zentimeter in deinem Export.

Wichtig: Wenn du Breite und Höhe gleichzeitig angibst, wird das Bild gestreckt oder gestaucht, damit es die angegebenen Maße erhält. Das Seitenverhältnis von Breite zu Höhe wird also gezwungen verändert. Wenn du nur Breite oder nur Höhe angibst, zählt dieser Wert und der andere Wert wird entsprechend dem Seitenverhältnis angepasst. Wenn du einen Wert nicht angegeben möchtest, schreibe einfach undefined an seine Stelle, also z.B.: ($img,undefined,5).

Damit du dir das bildlich auch besser vorstellen kannst, hier einige Beispiele; oben der Befehl mit unterschiedlichen Zahlenwerten, darunter das jeweilige Ergebnis – die erste und letzte Befehlszeile für die Schleife ist hier für die Übersichtlichkeit weggelassen:

{# IMAGE getImage($img, undefined,3) #}

{# IMAGE getImage($img, 4,undefined) #}

{# IMAGE getImage($img, 2.5,3.2) #}

Wie du im letzten Beispiel siehst, kannst du auch ungerade Zahlenwerte eingeben. Da das Komma aber ein Trennzeichen innerhalb des Befehls ist, musst du das Komma in deiner Zahl durch einen Punkt ersetzen: statt 2,5 also 2.5 in den Befehl schreiben.

 

Skizze aus Vermessungsfeld

Die Skizze aus einem Vermessungsfeld erhält man mit folgendem Befehl: 

{# FOR measurement IN field("taskID/fieldID") #}

{# IMAGE getImage($measurement.sketch,Breite,Höhe) #}

{# END-FOR measurement #}

Der Aufbau ist sehr ähnlich zu einem Bildexport. Auch hier nutzen wir eine Schleife, damit du keinen Error bekommst, falls es keine Skizze zum Exportieren gibt. Gleichzeitig kann Vaira mit diesen drei Zeilen alle Vermessungen hintereinander exportieren, falls mehrere Vermessungen in dem Feld erstellt wurden. Auch hier musst du zu Beginn die taskID und die fieldID angegeben, um Vaira zu sagen, um welches Feld in welcher Aufgabe es sich handelt. Auch die Breite und/oder die Höhe deiner Export-Skizze musst du in Zentimetern angeben.

Wichtig: Wenn du Breite und Höhe gleichzeitig angibst, wird der Skizzen-Export gestreckt oder gestaucht, damit es die angegebenen Maße erhält. Das Seitenverhältnis von Breite zu Höhe wird also gezwungen verändert. Wenn du nur Breite oder nur Höhe angibst, zählt dieser Wert und der andere Wert wird entsprechend dem Seitenverhältnis angepasst. Wenn du einen Wert nicht angegeben möchtest, schreibe einfach undefined an seine Stelle, also z.B.: ($measurement.sketch,undefined,5).

In die Schleife kannst du außerdem noch einen oder beide der folgenden Befehle einfügen. Diese ermöglichen dir den Export des Anzeigenamens

{# $measurement.sketch.displayName #}

und den Export der Beschreibung der jeweiligen Skizze. 

{# $measurement.sketch.description #}

Wenn du beide mit exportieren möchtest, sieht dein Export-Befehl also am Ende so aus:

{# FOR measurement IN field("taskID/fieldID") #}

{# IMAGE getImage($measurement.sketch,Breite,Höhe) #}

{# $measurement.sketch.displayName #}

{# $measurement.sketch.description #}

{# END-FOR measurement #}

In den beiden optionalen Befehlen musst du keine Änderungen vornehmen.

 

Fotos aus Vermessungsfeld

Dieser Befehl ist etwas umfangreicher, aber auch hier musst du nur kleinere Anpassungen selbst vornehmen. Den Rest kannst du einfach wieder kopieren:

{# FOR measurement IN field("taskID/fieldID") #}

{# FOR img IN $measurement.images #}

{# $img.featureId #}

{# IMAGE getImage($img, Breite,Höhe) #}

{# END-FOR img #}

{# END-FOR measurement #}

Wie gewohnt gibst du in der ersten Zeile per taskID und fieldID an, aus welcher Aufgabe welches Feld betrachtet werden soll. Die featureID ist ausnahmsweise mal keine ID, die du angeben musst. der Punkt gibt Vaira nur den Befehl, dass zu jedem Bild auch die passende Nummerierung zum Vermessungspunkt mitgegeben werden soll. Nur die Breite und/oder die Höhe musst du noch selbst angeben, wie du das bereits von deren Bildexports kennst. 

 

Werte aus Listen

Im Rahmen der Bearbeitung eines Vorgangs können Listen angelegt werden. Listen bestehen dann aus beliebig vielen einzelnen Objekten (zum Beispiel Bauteilen oder Leistungspositionen), die wiederum Eigenschaften haben. Die Eigenschaften der Objekte haben eine eigene ID, um von Vaira angesprochen zu werden; die heißt im Folgenden AttributeID.

Das Exportieren von Listen benötigt zunächst ein Kommando direkt vor (bzw. oberhalb) deiner Tabelle. Füge dort den folgenden Code in deine Word-Vorlage ein:

{# EXEC

def = (val) => val ? val: 1;

#}

Hier musst du gar nichts anpassen. Weiter geht es jetzt mit der Tabelle. Im Beispiel siehst du eine vereinfachte Bauteil-Tabelle, die aus dem Namen des Objekts ("Material") und drei Attributen besteht: Einheit, Menge und Positionsnummer.

Material Einheit Menge Positionsnummer
       
       

 

Mit dem benötigten Code sieht die Tabelle dann so aus:

Material Einheit Menge Positionsnummer

{# FOR item IN field("taskID/listID") #}

 

 

 

{# $item.asset #}

{# $item.values.attributeID #}

{# ($item.values.attributeID) #}

{# $item.values.attributeID #}

{# END-FOR item #}

     

Den Code kannst du jeweils einfach am Stück schreiben – die Zeilenumbrüche kommen hier nur daher, dass die Tabelle zu klein ist.

Wie du siehst, starten wir mit einer Zeile am Anfang und am Ende, in der nur in der ersten Zelle eine Eigenschaft steht. Das sind quasi das "Start" und das "Stop"-Kommando. Du sagst Vaira hier, dass die Liste um so viele Zeilen erweitert werden soll, wie du Objekte in der Liste hast. Das heißt: du musst hier keine 200 Zeilen für deine Liste vorbereiten. Es reichen diese drei Zellen und Vaira wird die exportierte so lang machen, wie sie sein muss.

In der ersten Zeile nach der Kopfzeile musst du wieder wie gewohnt mit taskID und listID angeben, aus welcher Aufgabe welche Liste exportiert werden soll.

In der einzelnen Zeile gibst du dann die Form an, mit welchen Attributen die Objekte exportiert werden sollen. Den Befehl in der Zelle ganz links brauchst du gar nicht anpassen – Vaira wird dir einfach alle Objekte auflisten.

Jede Attributspalte hat dann erstmal den gleichen Befehl. Hier musst du nur die attributeID einsetzen. Bei Einheit könnte das zB. die ID "einheit" sein – je nachdem, was du in Vaira definiert hast.

Die Tabelle könnte dann also von dir ausgefüllt z.B. so aussehen:

Material Einheit Menge Positionsnummer

{# FOR item IN field("doku/bauteilliste") #}

 

 

 

{# $item.asset #}

{# $item.values.einheit #}

{# def($item.values.menge) #}

{# $item.values.posNr #}

{# END-FOR item #}

     

Beim Export werden die erste und die letzte Zeile nicht mit exportiert. Stattdessen findest du im Export die reine Auflistung der Objekte deiner Liste. Das könnte im Beispiel dann so aussehen:

Material Einheit Menge Positionsnummer
PE-Muffe ST 4 123
PE-Rohr ST 5 332
Gasströmungswächter ST 1 345
Klebeband m 5 654
Bauschaum Dose 1 678
Pflaster ST 1 827

 

 

Checkbox-Werte aus Feldern

Auch Boxen, die nur abgehakt werden müssen, kannst du mir Vaira exportieren. Du kannst sogar bestimmen, wie die Checkboxen übertragen werden sollen. Zur Verfügung stehen dir die Anzeige-Möglichkeiten:

  • als "Ja"/"Nein", wenn es in Textform für angekreuzt bzw. nicht angekreuzt exportiert werden soll,
  • als "X" oder "_", wenn es nur angekreuzt oder mit einem Unterstrich angezeigt werden soll,
  • als ☒/☐, wenn du es lieber grafisch-symbolisch magst.

Auch hier musst du vor bzw. oberhalb der Checkbox einen Befehl hinzufügen:

{# EXEC

jaNein = (v) => (v? "Ja": "Nein");

simple = (v) => (v? "X": "_");

retro = (v) => (v? "☒": "☐");

#}

Hier musst du wieder nichts verändern. Zum Export von Boxen gibt es wieder einen fast einheitlichen Befehl, den du nur auf deine Ansprüche hin anpassen musst:

{# jaNein(field("taskID/boxID")) #}

Wie gewohnt findest du auch hier wieder taskID und dieses Mal die boxID, um Vaira zu sagen, um welche Box in welcher Aufgabe es sich handelt.

Den jaNein-Teil kannst du flexibel austauschen. Über den Begriff an der Stelle kannst du entscheiden, wie der Wert grafisch dargestellt werden soll. Wie in dem Code, den du vor den Checkboxen eingefügt hast, sehen kannst, gibt es da auch den jaNein-Befehl in der zweiten Zeile. Rechts vom Gleichheitszeichen siehst du dann, wie die Werte aussehen sollen.

Du kannst in deinem Befehl also jaNein auch durch simple oder retro ersetzen, um so die Darstellung zu ändern.

 

Checkbox-Werte aus Listen

Ganz ähnlich kann man auch Checkbox-Werte aus Listen exportieren. Hier setzt du auch vor bzw. oberhalb der Liste den Code von oben:

{# EXEC

jaNein = (v) => (v? "Ja": "Nein");

simple = (v) => (v? "X": "_");

retro = (v) => (v? "☒": "☐");

#}

Anschließend erstellst du wieder eine Liste, wie du es schon bei Werten aus Listen allgemein gemacht hast:

Material Fehlerfrei Verbaut?  Zufrieden?

{# FOR item IN field("doku/bauteilliste") #}

 

 

 

{# $item.asset #}

{# jaNein($item.values.boxID) #}

{# simple($item.values.boxID) #}

{# retro($item.values.boxID) #}

{# END-FOR item #}

     

Die erste Zeile nach deiner Kopfzeile und letzte Zeile sind wieder nur für die Programm-Ausführung wichtig und werden am Ende nicht exportiert. Wie gewohnt gibst du hier einfach die taskID und die listID an, damit Vaira weiß, um welche Liste in welcher Aufgabe es geht.

In der zweiten Zeile geben wir dann wieder exemplarisch den Aufbau eines Objekts an. Die erste Zelle kannst du ohne Veränderung übernehmen. In den einzelnen Attribut-Zellen kannst du dann auswählen, wie das (Nicht-)Ankreuzen dargestellt werden soll per jaNein, simple und retro. Die boxID ersetzt du wieder mit der richtigen ID der Box, die du dort abfragen möchtest.

Aus diesem Beispiel würde sich dann im Export so eine Darstellung ergeben:

Material Fehlerfrei Verbaut?  Zufrieden?
PE-Muffe Ja X
PE-Rohr Ja _
Gasströmungswächter Nein X
Klebeband Ja _
Bauschaum Nein _
Pflaster Ja X

 

Syntax für Bedingungen für deine Werte bei Exporten

Du kannst auch Einstellungen in deiner Exportvorlage vornehmen, damit bestimmte Werte – wie zum Beispiel eine 0 – auch gar nicht exportiert werden.

Auch bei den folgenden Befehlen musst du nur die fettgedruckten Werte individuell anpassen, der Rest ist allgemeiner Befehls-Code und darf nicht verändert werden.

 

Bestimmte Werte (nicht) im Export anzeigen

Wenn du lieber leere Flächen als eine 0 in deiner Vorlage hast, kannst du das einstellen. Das geht natürlich auch mit jedem anderen Wert. Das machst du dann mit einem Zusatzbefehl, den du vor bzw. nach den normalen Befehl einfügst:

{# IF field("taskID/fieldID") != 0 #}

{# field("taskID/fieldID") #}

{# END-IF #}

Mit diesem Kommando sagst du Vaira, dass wenn irgendwo eine 0 steht, die 0 nicht exportiert werden soll. Sinngemäß kannst du den Befehl so lesen:

WENN im Feld (XY) KEINE 0 steht, dann
soll das Programm dort WERT DES FELDES (XY) einfügen.
Die letzte Zeile beendet nur den Befehl.

taskID und fieldID kennst du ja bereits, die festlegen, welches Feld in welcher Aufgabe du meinst. Das musst du in der ersten und der zweiten Zeile entsprechend anpassen. Außerdem kannst du den Teil in der ersten Zeile nach der Klammer beliebig anpassen. Das != steht für "ist nicht" und die 0 ist der Wert, auf den hin du den Vergleich machen willst. Ein anderes Beispiel:

{# IF field("taskID/fieldID") == 1 #}

{# field("taskID/fieldID") #}

{# END-IF #}

Die Grundform ist wieder die gleiche. Du hast aber die Abfrage geändert:

WENN im Feld (XY) EINE 1 steht, dann
soll das Programm dort WERT DES FELDES (XY) einfügen.
Die letzte Zeile beendet nur den Befehl.

Hier steht also das == für "ist gleich" und die 1 ist unser anderer Wert. Wichtig dabei: wirklich zwei Gleichheitszeichen! Ein Gleichheitszeichen reicht für den Befehl nicht.

Du könntest auch nach Worten anzeigen bzw. nicht anzeigen. Hier ein paar Beispiele, bei denen ich dir aber nur die erste Zeile angebe (die zweite und die dritte Zeile sind ja immer gleich). Du kannst ja mal schauen, ob du verstehst, welche Werte nur angezeigt werden würden. Die Lösung findest du dann im Anschluss:

  1. Beispiel: {# IF field("taskID/fieldID") != "Rohr" #}
  2. Beispiel: {# IF field("taskID/fieldID") == 112 #}
  3. Beispiel: {# IF field("taskID/fieldID") != 15 #}
  4. Beispiel: {# IF field("taskID/fieldID") == "Bauschaum" #}
  5. Beispiel: {# IF field("taskID/fieldID") > 0 #}
  6. Beispiel: {# IF field("taskID/fieldID") < 10 #}
  7. Beispiel: {# IF field("taskID/fieldID") <= 6 #}
  8. Beispiel: {# IF field("taskID/fieldID") >= 0#}

Die Auflösung:

  • Im ersten Befehl wird der Wert nur exportiert, wenn er nicht Rohr ist.
  • Im zweiten Befehl wird der Wert nur exportiert, wenn er 112 ist.
  • Im dritten Befehl wird der Wert nicht exportiert, wenn es eine 15 ist.
  • Im vierten Befehl wird der Wert nur exportiert, wenn er Bauschaum ist.
  • Im fünften Befehl wird der Wert nur exportiert, wenn er größer als 0 ist.
  • Im sechsten Befehl wird der Wert nur exportiert, wenn er kleiner als 10 ist.
  • Im siebten Befehl wird der Wert nur exportiert, wenn er kleiner oder gleich 6 ist.
  • Im achten Befehl wird der Wert nur exportiert, wenn der Wert größer oder gleich 0 ist.

Wichtig bei Vergleichen mit Worten ist, dass du sie in Anführungszeichen (wie bei "Rohr") setzt. Auf Zahlen hin kannst du auch ohne Anführungszeichen hin abfragen.

 

Syntax für Formatierungen bei deinen Exporten

Du kannst auch Einstellungen in deiner Exportvorlage vornehmen, damit Werte, die bestimmte Bedingungen erfüllen, besonders formatiert werden.

Auch bei den folgenden Befehlen musst du nur die fettgedruckten Werte individuell anpassen, der Rest ist allgemeiner Befehls-Code und darf nicht verändert werden.

Die Anzahl von Nachkommastellen einstellen

Digital lassen sich leicht sehr komplexe Berechnungen vornehmen. Speziell, wenn du mit Vaira Berechnungen automatisiert vornimmst, kann es vorkommen, dass z.B. bei Divisionen Zahlen mit extrem vielen Nachkommastellen berechnet werden. Damit dir diese deinen Export nicht verhunzen, kannst du mit einem einfachen Befehl die Zahl der Nachkommastellen beeinflussen, die exportiert werden sollen:

{# Field("taskID/fieldID").toFixed(3) #}

Das ist natürlich nur bei Feldern sinnvoll, die auch Zahlen enthalten. Dass du taskID und fieldID durch die passenden Werte ersetzen musst, muss ich dir jetzt vermutlich nicht mehr erklären. Statt aber einfach wie gewohnt den Wert auszugeben, hängst du nach der Klammer noch ein .toFixed(3) an. Der Teil .toFixed() ist ein feststehender Befehl, an dem du nichts ändern darfst. Der sagt Vaira: kürze die Zahl bitte bis zur Nachkommastelle X. Für dich ist daher nur der Wert in der Klammer – hier die 3 – wichtig. Damit definierst du, wie viele Nachkommastellen die Zahl im Export haben soll. Aus einer Zahl in Vaira wie 3,14159265359 würde so die Zahl nur mit drei Nachkommastellen exportiert: 3,142.