- 19 Mar 2025
- 3 Minuten zu lesen
- Drucken
- DunkelHell
- pdf
Fehlersuche
- Aktualisiert am 19 Mar 2025
- 3 Minuten zu lesen
- Drucken
- DunkelHell
- pdf
Diagramm Fehler (Charting Error)
Allgemein
Dieser Fehler sagt aus, dass die Syntax nicht passt.
Häufige Ursachen sind:
Fehlende Hochkommas
Bei Überschriften oder Filterwerten wurden Hochkomma vergessen.
Eckige oder runde Klammern sind nicht richtig gesetzt oder wurden vergessen.
Bei umfangreichen Filterausdrücken werden sehr leicht runde oder eckige Klammern vergessen.
Es ist möglich, Zeilenumbrüche in das Query einzufügen, dieses erleichtert die Zuordnung von Klammerausdrücken.
Asset-Klasse oder Attribute wurden falsch geschrieben.
Die Asset-Klasse und die Attribute müssen den internen Namen haben. Dabei auf Groß- und Kleinschreibung achten.
Runde oder eckige Klammern wurden vertauscht.
Runde Klammern werden bei Funktionen und zur Sortierung in Filtern verwendet. Eckige Klammern beinhalten Filterausdrücke.
Im Fehlertext wird das Problem erklärt. Der Ort, an dem der Fehler zu finden ist, befindet sich in den meisten Fällen am Ende der Meldung. Die Stelle ist durch ein Ausrufezeichen markiert.
Beispiele
Beispiel 1
Ausdruck:
X-VALUES [1,2,3,4,5]
VALUES x
Fehlermeldung:
Die erste Zeile mit dem TYPE Ausdruck fehlt.
Lösung:
TYPE 'table'
X-VALUES [1,2,3,4,5]
VALUES x
Beispiel 2
Ausdruck:
TYPE 'table'
X-VALUES [1,2,,4,5]
VALUES x
Fehlermeldung:
In der letzten Zeile der Fehlermeldung befindet sich ein Ausrufezeichen, welches auf den Ort des Fehlers hinweist. In diesem Fall fehlt ein Ausdruck zwischen den zwei Kommas.
Lösung:
TYPE 'table'
X-VALUES [1,2,3,4,5]
VALUES x
Beispiel 3
Ausdruck:
TYPE 'table'
X-VALUES assets[asset_type='Server']
VALUES name
Fehlermeldung:
Hier wird die auszugebende Variable nicht gefunden. Die Attributnamen müssen mit x. beginnen.
Lösung:
TYPE 'table'
X-VALUES assets[asset_type='Server']
VALUES x.name
Beispiel 4
Ausdruck:
TYPE 'table'
X-VALUES assets[asset_type=Server]
VALUES x.name
Fehlermeldung:
Hier wird die die Variable Server nicht gefunden. Ausdrücke müssen in Hochkommas eingeschlossen werden.
Lösung:
TYPE 'table'
X-VALUES assets[asset_type='Server']
VALUES x.name
Beispiel 5
Ausdruck:
TYPE 'table'
X-VALUES assets[asset_type=Server']
VALUES x.name
Fehlermeldung:
Hier ist am Ende des Fehlerausdrucks wieder ein Ausrufezeichen bei Server zu erkennen. Hier gibt es nur ein Anführungszeichen danach und es fehlt das Anführungszeichen davor.
Lösung:
TYPE 'table'
X-VALUES assets[asset_type='Server']
VALUES x.name
Beispiel 6
Ausdruck:
TYPE 'table'
X-VALUES assets[asset_type='Server' status='produktiv']
VALUES x.name
Fehlermeldung:
Hier steht das Ausrufezeichen zwischen den beiden Ausdrücken im X-VALUES Ausdruck. Es zeigt an, dass ein Operator AND oder OR fehlt.
Lösung:
TYPE 'table'
X-VALUES assets[asset_type='Server' AND status='produktiv']
VALUES name
Beispiel 7
Ausdruck:
TYPE 'table'
X-VALUES assets[asset_type='Server'] ORDER BY x.display_name
VALUES name
Fehlermeldung:
Hier steht das Ausrufezeichen vor dem Befehl ORDER. Es zeigt an, dass etwas mit dem Befehl nicht stimmt. In diesem Fall muss ORDERBY zusammen geschrieben werden.
Lösung:
TYPE 'table'
X-VALUES assets[asset_type='Server'] ORDERBY x.display_name
VALUES name
Die Ausgabe sieht nicht so aus wie gewünscht
Leere Tabelle / leere Spalte
Ist die Spalte komplett leer, obwohl sie Werte enthalten sollte, so ist oft die interne Feldbezeichnung falsch geschrieben. Groß- und Kleinschreibung müssen beachtet werden.
Es ist auch möglich, dass der Filterausdruck bei X-VALUES nicht die gewünschten Werte herausfiltert.
In diesem Fall ist es sinnvoll, einfach mal nur VALUES x auszugeben, um zu schauen, ob überhaupt Werte vorhanden sind.
Hilft das auch nicht weiter, sollte '%r' % x ausgeben werden. Letzteres gibt NoData aus, wenn x leer ist.
Es befinden sich eckige Klammern um das Ergebnis
Das ist bei verlinkten Attributen der Fall. Wenn es sich um ein Linkfeld mit nur einer Verlinkung handelt, dann werden um das Ergebnis keine Klammern ausgegeben.
Handelt es sich um Tabellen von Links, so werden um die Ausgaben standardmäßig eckige Klammern gesetzt. Diese Ausgabe kann mit format_array geändert werden. Dazu wird angegeben, welches Trennzeichen zwischen den Ergebnissen benutzt werden soll und in welche Ausdrücke die Ergebnisse eingeschlossen werden sollen.
Query ohne Formatierung:
TYPE 'table'
X-VALUES assets[asset_type='Place' AND (name contains 'Haupt')]
VALUES x.name AS 'Ort'
VALUES x.contains.name AS 'enthält'
Ausgabe ohne Formatierung:
Query mit Formatierung:
TYPE 'table'
X-VALUES assets[asset_type='Place' AND (name contains 'Haupt')]
VALUES x.name AS 'Ort'
VALUES format_array(x.contains.name, ' / ', '') AS 'enthält'
Ausgabe mit Formatierung:
UUID (interner Identifier eines Assets) anstatt Wert wird angezeigt
Diese Anzeige der UUID-Nummer tritt bei verlinkten Feldern auf. Es ist möglich, mit den Funktionen lookup_displayname oder first den Anzeigenamen anzuzeigen.
VALUES x.owner
Dieses führt zur Anzeige von der UUID.
VALUES lookup_displayname(x.owner)
VALUES first(assets[uuid=x.owner]).display_name
Dieses führt zur gewünschten Ausgabe.
[object Object] wird angezeigt
Diese Anzeige tritt bei verlinkten Feldern auf. Das gewünschte Attribut wird einfach, getrennt durch einen Punkt, an das verlinkte Feld, z.B. display_name, angefügt werden.
VALUES x.resp_app_employee
Dieses führt zur Anzeige von [object Object].
VALUES x.resp_app_employee.display_name
Dieses führt zur gewünschten Ausgabe.
Eine auszugebene Liste ist leer und es kommt zu seltsamen Textausgaben
Hat eine Liste keinen Inhalt, so kommt es in Reports anstatt einer leeren Tabelle zu seltsamen Ausgaben. Um in einem solchen Fall eine leere Tabelle zu erhalten, wird die Funktion if_exists benutzt.
Ist ein Inhalt vorhanden, so bleibt dieser erhalten. Ansonsten wird er durch einen leeren Inhalt ersetzt, der eine leere Tabelle in der Ausgabe zur Folge hat. Es ist sinnvoll, die Ausgabe einer leeren Tabelle in einem Report in einer Beschreibung zu erklären oder die Tabelle in diesem Fall mit dem Baustein if(Bedingung) komplett wegzulassen.
VALUES if_exists(x.tabelle, x.tabelle, ' ')