Template Fehler

Erkennen und Beheben von Fehlern in Ihren Vorlagen

Mit Ultradox können Sie aus Ihren Vorlagen anspruchsvolle Dokumente generieren, indem Sie Tabellen, verschachtelte Bedingungen, Schleifen und vieles mehr verwenden.

Da Sie eine Menge komplexer Funktionen verwenden können, haben Sie auch viele Möglichkeiten, Fehler zu erzeugen. Damit Sie Fehler in Ihren Vorlagen leichter aufspüren können, zeigt Ultradox Fehlermeldungen direkt in Ihren Dokumenten an, wenn Sie Dokumente im Testmodus generieren.

Test mode

Aktivieren Sie den Testmodus über das Icon rechts in der Symbolleiste.

Wenn der Testmodus aktiviert ist, wird die Arbeitsfläche grün.

Im folgenden Abschnitt werden die Fehler erläutert, die in Ihren Dokumenten auftreten können.

Invalid expression

Sie haben etwas eingegeben, das Ultradox nicht verstehen kann. Bitte lesen Sie die Anleitung über die Templates Grundlagen sorgfältig durch.

Not an array

Sie haben versucht, auf ein Element in einer Liste oder einem Array zuzugreifen, aber die Variable ist kein Array.

Nehmen wir an, Sie haben eine Variable namens name mit dem Wert Daniel, dann führt die Verwendung eines Tags wie ${name[2]} zu diesem Fehler.

Invalid array syntax

Sie haben versucht, auf ein Array zuzugreifen, aber die eckigen Klammern wurden falsch gesetzt. Stellen Sie sicher, dass Sie diese [vor jener] haben und auch beide verwenden.

Index out of bounds

Sie haben versucht, auf ein Element in einer Liste oder einem Array zuzugreifen, aber es enthält nicht so viele Elemente, wie Sie erwartet haben.

Nehmen wir an, Sie haben den Array names, der zwei Namen enthält, dann führt der Zugriff auf den dritten Namen wie ${name[3]} zu diesem Fehler.

Invalid index

Sie versuchen, auf ein Element in einem Array zuzugreifen, haben aber keinen legalen Index verwendet.

Nehmen wir an, Sie haben ein Array mit dem Namen names mit drei Elementen Daniel, Olli und Esther, dann können Sie auf sie zugreifen, indem Sie ${names[0]} verwenden, um Daniel zu drucken,${names[2]} um  Esther zu drucken, oder ${names[last]} um auch Esther zu drucken.

Wenn Sie versuchen auf sie zuzugreifen, indem Sie etwas wie ${names[end]} oder ${names[hello]} benutzen, funktioniert das nicht und verursacht diesen Fehler.

No call on a string

Sie versuchen auf eine Variable zuzugreifen, als hätte sie Eigenschaften, aber es ist nur eine Zeichenfolge. Nehmen wir an, Sie haben eine Variable namens name mit dem Wert Daniel, dann wird der Zugriff auf etwas wie ${name.email} diesen Fehler verursachen.

Property access error

Sie versuchen, auf eine Eigenschaft eines Objekts zuzugreifen, das nicht existiert. Es gibt mehrere Situationen, die diesen Fehler verursachen können.

Nehmen wir an, Sie haben eine Tabelle mit mehreren Spalten geladen. Dann haben Sie eine Reihe von Variablen wie ${mysheet[].myfirstcolumn}, ${mysheet[].mysecondcolumn} und so weiter. Wenn Sie nun auf ein ${mysheet[0].hello} zugreifen, werden Sie diesen Fehler bekommen, da die Spalte mit dem Namen hello nicht existiert.

Dieser Fehler kann auch dann auftreten, wenn Sie versuchen, auf eine Eigenschaft zuzugreifen, aber nicht auf die richtige Weise.

Wenn wir das gleiche Beispiel wie vorher verwenden und Sie versuchen, auf ${mysheet[].myfirstcolumn}zuzugreifen, gibt es Ihnen den gleichen Fehler wie bei mysheet[] ist eine Liste und kein Objekt!

Es enthält alle Zeilen und Sie fragen nach myfirstcolumn, ohne auf eine bestimmte Zeile zuzugreifen oder eine Schleife zu benutzen, um alle Werte auszudrucken.

Unmatched end

Sie haben ein ${end} Tag in Ihrer Vorlage verwendet, aber Sie haben keine übereinstimmende ${if …} oder ${foreach …} Anweisung erstellt.

Missing end

Sie haben eine ${if.. } oder ${foreach …} Aussage in dem Template verwendet, aber keine ${end} Aussage.

Else out of scope

Sie haben ein ${else} Tag in Ihrem Template verwendet, aber es ist nicht innerhalb einer ${if …} Anweisung.

Foreach incomplete

Sie haben versucht eine ${foreach... } Anweisung zu erstellen, aber Sie haben vergessen, einen Variablennamen anzugeben, um auf jedes Element in der Liste zuzugreifen.

Iterator mismatch

Sie versuchen, eine Liste oder Tabelle aus Ihren Daten zu erstellen, haben aber auf verschiedene Listen in derselben Tabelle zugegriffen!

Nehmen wir an, Sie haben eine Autoren- und eine Bücherliste.

Sie können nun eine Tabelle mit den Autoren oder den Büchern erstellen - wenn Sie aber beides mischen, wird es zu einem Fehler kommen:

Name des Autors

Buchtitel

$[authors[].name]

$[books[].title]

Incomplete tag

Sie haben eine ungültige Syntax verwendet. Bitte lesen Sie die Anleitung zu Templates sorgfältig durch.

Dieser Fehler wird angezeigt, wenn Sie nicht alle sich öffnenden Klammern mit den entsprechenden schließenden Klammern geschlossen haben.

Die folgende Tabelle zeigt eine Reihe häufiger Fehler.

Name

Beschreibung

${myvariable]

Sie haben die geschweifte Klammer { mit einer eckigen Klammer ] geschlossen

${value;number(op=${pattern)}

Sie haben im Renderer-Parameter eine ungültige Syntax verwendet. Verwenden Sie niemals offene Klammern, um auf Variablen in den Renderer-Parametern zuzugreifen. In diesem Beispiel verwenden Sie einfach stattdessen $pattern

Questions and Feedback

If you have any comments on this page, feel free to add suggestions right to the Google document that we are using to create this site.

If you are not yet member of the Ultradox community on Google+, please join now to get updates from our end or to provide feedback, bug reports or discuss with other users.

Last Updated: 19.11.19