Filter definieren
    • 31 May 2024
    • 3 Minuten zu lesen
    • Dunkel
      Licht
    • pdf

    Filter definieren

    • Dunkel
      Licht
    • pdf

    Artikel-Zusammenfassung

    Im VASGARD/IAN ist es an einigen Stellen möglich, Filter zu definieren. Immer wenn der Button Filter bei der Bearbeitung erscheint, wird an dieser Stelle ein Filterausdruck erwartet.

    button_filter

    Beim Aufruf der Filterfunktion öffnet sich folgendes Fenster, welches die Definition von Filterausdrücken unterstützt.

    filter-editor
    Eingabe von Filterausdrücken

    Dabei kann entweder die Filter Eingabe genutzt werden, welche den Filterausdruck grafisch darstellt, oder die Filter String Eingabe welche eine Eingabe in Textform ermöglicht. Es werden immer beide Bereiche upgedated, unabhängig von der Eingabeart.

    Für die grafische Eingabe wird auf + Bedingung geklickt und eine Zeile wird ergänzt.

    filter-erstellt-2
    Filterausdruck in grafischer und in Textform

    Die interne Filternotation kann hier auch angeschaut werden.

    Ein Filter kann aus mehreren Zeile bestehen, die mithilfe von AND und OR verknüpft werden. Jede Zeile ist folgendermaßen aufgebaut.

    filter-zeile
    Einzelne Zeile des Filters

    In das vordere Feld wird der interne Name des Attributes angegeben. Diese können aus einer Liste ausgewählt werden. Danach folgt der Operator, welcher verwendet werden soll.

    Wird ein Vergleichswert benötigt, so wird dieser unter Wert eingeben angegeben. Eine Eingabe ist hier nur möglich, wenn der Operator diese erfordert. Der gesamte Ausdruck kann dann noch negiert werden, indem vorn bei NOT der Haken gesetzt wird.

    Es gibt eine Liste von verschiedenen Operatoren, die ausgewählt werden können:

    Filter-Operatoren

    Beispiele

    <, <=, >, >= (kleiner als, kleiner oder gleich, größer als, größer oder gleich)

    Hier kann überprüft werden, ob der Wert des Feldes in Attribut kleiner als, kleiner oder gleich, größer als oder größer oder gleich, dem unter Wert angegebenen Wert ist.

    Beispiel

    (Anzahl < 100)

    (date_of_last_backup < three weeks)

    (Anzahl <= 100)

    (Anzahl > 25)

    (date_of_last_backup > three month)

    (Anzahl >= 25)

    ip in (IP Adresse ist enthalten in)

    Hier kann überprüft werden, ob die IP-Adresse im zu vergleichenden Feld Attribut in einem bestimmten IP-Bereich enthalten ist. Unter Wert wird der IP-Bereich eingetragen.

    Beispiel

    (ip_adresse ip_in 10.40.20.200/24)

    contains (enthält)

    Hier kann überprüft werden, ob der Wert des Feldes in Attribut in einer unter Wert angegebenen Liste enthalten ist.

    Beispiel

    (interfaces.*.ip_v4_addresses.* contains 10.1.1.1)

    flat_contains (Liste enthält)

    Dieser Ausdruck nimmt eine angegebene Liste von Listen in Wert und schaut, ob in einer der untergeordneten Listen das gesuchte Element unter Attribut enthalten ist. Aus einer verschachtelten Liste wird eine Flache Liste gemacht wird (z.B. [1, [2, [3,4]]] -> [1, 2, 3, 4]).

    Beispiel

    (interfaces.*.ip_v4_addresses flat_contains 10.1.1.1)

    contains ip (enthält IP-Adresse)

    Hier kann überprüft werden, ob das auszuwertende Feld unter Attribut eine IP-Adresse enthält. Unter Wert ist keine Angabe nötig. Der Unterschied zwischen contains und contains ip ist nur, dass bei contains ip bei IP-Adressen auch /24 usw. unterstützt wird.

    Beispiel

    (eingabe_ip_adresse contains ip)

    like (entspricht)

    Prüft, ob ein Attribut einem regulären Ausdruck entspricht.

    Das Beispiel matcht alle Elemente, die den display_name Server gefolgt von beliebig vielen Zahlen haben.

    Beispiel

    (display_name like Server[0-9]+)

    type (Typ)

    Hier wird geprüft, ob Attribut den Asset-Typ hat, der unter Wert angegeben wird.

    Beispiel

    (owner type AssetID)

    (owner type SchemaBasedDatastructure)

    isinstance (entspricht Asset-Klasse)

    Hier kann überprüft werden, ob der Wert des Feldes einer bestimmten Asset-Klasse angehört. Unter Wert wird die Asset-Klasse angegeben. Hier wird die englische Bezeichnung erwartet.

    Das Beispiel weist alle Assets der Klasse Dokumente zu, außer den Dummy-Assets.

    Beispiel

    ('self' isinstance 'Document') AND (NOT ('is_hierarchy_dummy' = true))

    exists_timerange (existiert Zeitspanne)

    Dieser Ausdruck wird benötigt um nachzuschauen, ob in einer gewissen Zeitspanne Reviews durchgeführt wurden. Er wird auch nur in diesem Spezialfall verwendet.

    Der Inhalt von Attribut muss eine Liste sein. Aus der Liste wird jedes Element folgendermaßen durchsucht.

    • lhs[type_f ] muss gleich type_v sein

    • lhs[result_f ] muss gleich result_v sein

    • lhs[on_f ] muss zwischen on_min und on_max (jeweils inklusive) sein

    Wert hat dabei folgendes Format: type_f,type_v,result_f,result_v,on_f,on_min_f,on_max_f

    Alle Parameter werden durch Komma getrennt.

    • type_f

    • type_v filtert den Review Typ, falls es mehrere Reviews pro Asset gibt.

    • result_f

    • result_v result_v soll das Review-Ergebnis filtern, so dass nur Reviews zählen die auch erfolgreich waren.

    • on_f

    • on_min_f Datum

    • on_max_f Datum

    older_than (älter als)

    Attribut muss ein Datum enthalten, welches darauf überprüft wird, ob es älter ist als die unter Wert angegebene Zeitspanne.

    Beispiel

    (date_of_last_backup older_than three month)

    not_older_than (nicht älter als)

    Attribut muss ein Datum enthalten, welches darauf überprüft wird, ob es nicht älter ist als die unter Wert angegebene Zeitspanne.

    Beispiel

    (date_of_last_backup not_older_than three month)

    in_future

    Attribut muss ein Datum enthalten, welches darauf überprüft wird, ob es im Vergleich zu der unter Wert angegebene Zeitspanne noch in der Zukunft liegt .

    is_set (Wert ist gesetzt)

    Hier kann überprüft werden, ob irgendein Wert gesetzt wurde. Eine Angabe in Wert ist nicht nötig.

    m is_not_set (Wert ist nicht gesetzt)

    Hier kann überprüft werden, ob kein Wert gesetzt wurde. Eine Angabe in Wert ist nicht nötig.

    Beispiel

    (Startdatum is_not_set)

    is_empty (Feld ist leer)

    Hier kann überprüft werden, ob das zu überprüfende Feld leer ist. Eine Angabe in Wert ist nicht nötig.

    Beispiel

    (Startdatum is_empty)

    is_not_empty (Feld ist nicht leer)

    Hier kann überprüft werden, ob das zu überprüfende Feld einen Inhalt hat, also nicht leer ist. Eine Angabe in Wert ist nicht nötig.

    Beispiel

    (Startdatum is_not_empty)

    Gültige Werte für Zeiträume können sein:

    • three months

    • one year

    • one week ago

    • ...

    Diese werden zum aktuellen Datum berechnet.

    Filter kontrollieren

    Um zu kontrollieren, ob der Filter so korrekt ist und die gewünschten Ergebnisse liefert, kann er in der Suche ausgeführt werden. Dazu wird auf folgenden Button geklickt.

    filter-suche-oeffnen

    Es öffnet sich ein neuer Tab mit der ausführlichen Suchfunktion des VASGARD/IAN. Hier wird der Filterausdruck ausgeführt, die Ergebnisse angezeigt und können kontrolliert werden.


    War dieser Artikel hilfreich?

    What's Next