4.3 Filter

Neben der normalen Volltextsuche ist es auch möglich, die Trace-Ansicht direkt zu filtern. Eine gefilterte Trace-Ansicht zeigt nur die Zeilen an, die den angegebenen Kriterien von aktiven Filtern entsprechen. Zeilen, die nicht den Filterkriterien von aktiven Filtern entsprechen, und daher uninteressant sind, werden ausgeblendet.

Abbildung 25-9: Gefilterte Ansicht

Zeilen, auf die einer der aktiven Filter zutrifft, werden je nach Filter unterschiedlich leicht farblich hinterlegt. Somit ist auch erkennbar, welche der Tracezeilen auf denselben Filter passen.

Aus Gründen der Überschaubarkeit werden nur die ersten 5 angelegten Filter mit einer Pastell-Hintergrundfarbe (rot, gelb, grün, blau, violett) versehen, da eine Unterscheidung bei mehr als 5 Farben nur noch schwer möglich ist. Generell empfiehlt es sich statt mit zu vielen Filtern zu arbeiten, nur wenige Filter zu definieren, deren Filterkritieren sinnvoll kombiniert sind.

Bei den gefilterten Ergebnissen werden Zeilennummern und Tracezeiten weiterhin angezeigt, um so den örtlichen und zeitlichen Kontext für den Anwender ersichtlich zu machen.

Die Filter werden im Filterwerkzeug in einer Filterliste verwaltet. Einzelne Filter sowie die Filterliste können in zwei beschiedenen Modi bearbeitet werden – global und lokal. Dabei wirken sich globale Änderungen auf alle bereits geöffneten bzw. zukünftig geöffneten Trace-Ansichten aus. Lokale Änderungen wirken sich nur auf die aktive Ansicht aus. So werden beispielsweise neue Filter immer global angelegt, editiert oder gelöscht. Das heißt ein neu angelegter Filter steht immer allen Trace-Ansichten zur Verfügung. Ebenso wirken sich Änderungen an den Filterkriterien eines Filters auf alle Trace-Ansichten aus. Die Aktivierung eines Filters hingegen erfolgt nur im lokalen Kontext, d.h. auf die aktive Trace-Ansicht bezogen.

Abbildung 25-10: Filterwerkzeug – Filterliste mit aktivem Filter IDM Errors

Das Kästchen vor dem Filternamen zeigt dabei an, ob ein Filter aktiv ist (Haken ist gesetzt) oder nicht.

Das Filterwerkzeug bietet bereits drei vordefinierte Filter in der Filterliste an:

Filtername

Kriterien und Darstellung

IDM Errors

Nur Zeilen mit Tracecode [IE], Dumpstate oder ASSFAIL werden angezeigt.

Passende Trace-Zeilen werden rot hinterlegt.

IDM Messages

Nur Zeilen mit [E:, [F:, [W: oder [I: werden angezeigt.

Passende Trace-Zeilen werden gelb hinterlegt.

IDM Events

Nur Zeilen mit den Tracecodes [DE] und [WE] werden angezeigt.

Passende Trace-Zeilen sind grün hinterlegt.

Diese Filter sind fix definiert und können vom Anwender nicht modifiziert werden. Darüber hinaus ist es dem Anwender möglich eigene Filter zu definieren (siehe Kapitel 4.3.2 „Filter erstellen oder bearbeiten“).

Benutzerdefinierte Filter erscheinen dann mit den vordefinierten Filtern in der Filterliste.

Alle Filter, ob vordefiniert oder benutzerdefiniert, sind initial nicht aktiv. Erst durch Doppelklick auf den Filter in der Liste oder durch Selektieren des Filters und Betätigen der Filter-Schaltfläche on/off wird ein Filter aktiv geschaltet.

Folgende Aktionen lassen sich für Filter ausführen:

Neuen Filter anlegen. Globale Aktion, der Filter wird allen geöffneten Ansichten hinzugefügt. Neu angelegte Filter werden persistent für den nächsten Programmstart gespeichert.

Filter löschen. Globale Aktion, der Filter wird aus allen geöffneten Ansichten gelöscht.

Filter bearbeiten. Globale Aktion, die Änderungen am Filter gelten für alle geöffneten Ansichten.

Filter in der Reihenfolge nach oben schieben. Globale oder lokale Aktion. Als lokale Aktion wird die Filterreihenfolge nur für die aktive Ansicht geändert (siehe Kapitel 4.3.1 „Anmerkungen zur Filterreihenfolge“).

Filter in der Reihenfolge nach unten schieben. Globale oder lokale Aktion. Als lokale Aktion wird die Filterreihenfolge nur für die aktive Ansicht geändert (siehe Kapitel 4.3.1 „Anmerkungen zur Filterreihenfolge“).

Filter aktivieren oder deaktivieren. Lokale Aktion, der Filter wird nur für die aktive Ansicht aktiviert bzw. deaktiviert.

4.3.1 Anmerkungen zur Filterreihenfolge

Die Liste der aktiven Filter ist oder-verknüpft und wird bei der Filterung immer von oben nach unten abgearbeitet, d.h. weiter oben stehende Filter haben auch eine höhere Priorität. Gibt es beispielsweise eine Tracezeile, auf die zwei oder mehr Filter passen, so wird immer der höher priorisierte Filter gewinnen.

Beeinflussen kann man dies, indem man die Reihenfolge der Filter ändert und einzelne Filter nach oben oder unten schiebt.

Die Reihenfolge in der Filterliste kann sowohl global als auch lokal geändert werden. Solange im Tracefile Analyzer noch keine Trace-Ansicht geöffnet wurde, erfolgt das Verschieben eines Filters global. Das heißt die neue Reihenfolge wird auf alle zukünftig geöffneten Trace-Ansichten angewendet. Sobald jedoch mindestens eine Trace-Ansicht geöffnet wurde – es also eine aktive Trace-Ansicht gibt – werden Änderungen an der Reihenfolge nur noch lokal für die aktive Trace-Ansicht vorgenommen. Somit ist es möglich die Filterung für verschiedenen Trace-Ansichten unterschiedlich zu priorisieren.

4.3.2 Filter erstellen oder bearbeiten

Möchte man einen eigenen Filter anlegen oder einen bestehenden Filter bearbeiten, so öffnet sich der Dialog Filtereigenschaften:

Abbildung 25-11: Einfacher Filterdialog

In diesem Dialog kann ein einfacher Filter angelegt werden. Das heißt in diesem Fall wird ein Suchstring (Muster) definiert, der als Filterkriterium dient. Der Suchstring wird dabei unabhängig von Groß- und Kleinschreibung angewendet.

Beispiel

Man kann ".pbadd select" als Muster definieren, wenn man nach dem select-Event des Objektes PbAdd filtern möchte. Oder "Stammdaten["kunde"]" um nach einen bestimmten Eintrag eines assoziativen Arrays zu filtern.

Um mehrere und detailliertere Filterkriterien zu definieren, kann die Option Erweitert aktiviert werden. Der Filterdialog ändert sich dann und zeigt die Möglichkeiten für erweiterte Definitionen an:

Abbildung 25-12: Erweiterter Filterdialog

Als Bezeichner lassen sich sowohl einfache Objektbezeichner oder auch längere Objektpfade eingeben, z.B. WiMain oder WiMain.GbData.PbAdd.

Die Angabe von Attributnamen ist mit oder ohne vorangestellten Punkt erlaubt, z.B. width oder .width. Ähnlich verhält es sich mit Methoden, bei denen der Methodenname mit oder ohne Doppelpunkt angegeben werden kann, z.B. Add oder :Add.

Unter Schlüsselwort kann man nach verschiedenen IDM-spezifischen Begriffen filtern, die in die Kategorien Events, Builtins, Datentypen, Klassen, Funktionen und vieles mehr einzuordnen sind.

Bei String kann man nach einem Komplett- oder Teilstring eines in der Tracedatei vorkommenden Text-Wertes suchen. Die Angabe kann bei Komplettstring mit oder ohne Anführungszeichen erfolgen.

Eine numerischen Filterung wird durch das Kriterium Zahl definiert. Dabei werden unter anderem auch Index oder Parameter berücksichtigt. Zahlen, die Teil eines Werte-Strings sind, werden bei der Filterung nicht einbezogen.

Das Filterkriterium Dauer bezieht sich ausschließlich auf Tracedateien mit Tracetime-Angaben. Hier wird als Kriterium ein Wert mit der Einheit des kleinsten Tracetime-Bestandteils genommen.

Beispiel

Beim Tracetime-Format [hh:mm:ss] wird eine Angabe in Sekunden erwartet. Beim Tracetime-Format [hh:mm:ss:uuu] wird eine Angabe in Millisekunden erwartet.

Tracecodes können manuell und kommasepariert eingegeben werden. Alternativ kann man jedoch rechts über die Schaltfläche […] einen Hilfsdialog Tracecode Auswahl öffnen. Man erhält hier eine Übersicht über die möglichen Tracecodes. Darüber hinaus wird hier die Auswahl unterstützt, indem in Beziehung stehende Tracecodes zusätzlich vom Tracefile Analyzer vorausgewählt werden.

Abbildung 25-13: Tracecode Auswahl

Alle gesetzten Filterkriterien werden logisch mit und verknüpft und müssen zutreffen damit ein Filter passt.

Zusätzlich kann jeder Filter – egal ob einfach oder erweitert – negiert werden, indem die Option Filter umkehren aktiviert wird. Dann passt ein Filter nur, wenn die gewählten Kriterien nicht zutreffen.

Neu angelegte Filter werden persistent für den nächsten Programmstart gespeichert und gehen bei Programmende nicht verloren.

4.3.3 Anmerkungen zur Navigation in gefilterten Ansichten

Möchte man auf Basis seiner gefilterten Ansicht die Tracedatei nun eingehender analysieren, so kann man die in Kapitel 2.1.3 aufgeführten Navigationsmöglichkeiten (Schritt vorwärts, Schritt rückwärts, Schritt hinein usw.) nutzen. Tracezeilen, die durch die Navigationsmöglichkeiten angesprungen werden, aber keinem der aktiven Filter entsprechen, werden in diesem Falle additiv der gefilterten Trace-Ansicht hinzugefügt, sodass die Analyse Schritt für Schritt erweitert werden kann.

Abbildung 25-14: Gefilterte Trace-Ansicht mit durch Navigation hinzugefügten Tracezeilen 6299 und 6304, welche ursächlich für die Fehlermeldungen sind.