Sub-Suchfilter #

Sub-Suchfilter #

Was ändert sich? #
Nach der Installation des Add-ons werden die Filterfunktionen um zwei weitere Operatoren erweitert. Diese finden Sie jeweils im dritten Feld Ihres Filtereintrags mit den Angaben in Filter und nicht in Filter. Wählen Sie eine der beiden Angaben aus, wird das nachfolgende Feld zu einem Button .
Mit Klick auf den Button öffnet sich ein neues Suchfilter-Fenster. Dieses Fenster gliedert sich in drei Abschnitte, der Datenquelle, dem eigentlichen Filter und einem Rückgabe-Feld.
In diesem Sub-Suchfilter können anhand der Filterbedingungen auch weitere Sub-Suchfilter aufgerufen werden. Eine Skalierung auf weitere Datenbanktabellen ist also möglich, um die Suchergebnisse noch weiter einzuschränken.
Grundlegendes #
An das Thema herangehen #
Subsuchfilter sind nicht ganz einfach zu verstehen. Damit man sich dem Thema richtig nähern kann, sollte man die einzelnen Schritte in Form einfacher Filter pro Modul aufbauen. Hierfür gibt es bereits viele Beispiele und auch eine ausführliche Beschreibung unter Filtereinstellungen. Die Einzelfilter je Modul ergeben mit Hilfe von Subsuchfiltern dann zusammengefasst einen komplexen Filter mit einem Ergebnis.
Am besten kann man das mal mit einer komplexen Formel in einer Tabellenkalkulation vergleichen. Auch hier kann ich mich direkt an eine komplexe Formel wagen und hoffe auf ein richtiges Ergebnis oder ich baue meine Einzelschritte erst mal Stück für Stück auf und beziehe mich dann auf das Ergebnis, um mit dem Ergebnis der ersten Formel in einer weiteren Formel weiter zu rechnen.
Jeder Einzelfilter liefert mir also ein Teilergebnis für meinen Gesamtfilter mit Subsuchfiltern.
Hier mal ein relativ einfaches Beispiel zwischen zwei Modulen (Kontakte und Verträge) mit dem Ziel eine Liste aller Kontakte zu erhalten, die aktive Produktverträge besitzen, um diese dann über eine Serien-E-Mail anzuschreiben.
Teilschritte und Ergebnisse #
Vertragsliste #
Das Modul mit dem Filter aller Verträge enthält verschiedenste Vertragsarten in verschiedenen Status. Da stehen Produktverträge (in unserem Beispiel Standardvertrag), Mitarbeiterverträge, Lieferentenverträge und ggf. viele andere Vertragsarten Ihres Unternehmens.
Uns interessieren aber nur die aktiven Produktverträge, da wir ja nur die Kunden anschreiben wollen. Somit benötigen wir hier also bereits einen einfachen Filter, welcher wie folgt aussieht:
Das Ergebnis ist nun eine Liste mit allen aktiven Standardverträgen aller Kunden. In diesen Spalten fehlen natürlich weitere Angaben unserer Kunden und auch das Anschreiben dieser Kunden über eine Serien-E-Mail ist nicht möglich.
Kontaktliste #
In den Kontakten ist es schwieriger zu Filtern, da ich mir hier nur alle Kontakte anzeigen lassen kann. Momentan weiß ich ja nicht, welcher Kontakt einen aktiven Vertrag hat. Somit bleibt mir erst mal nur die Gesamtliste aller Kontakte.
Ergebnisse zweier Filter #
Das Ergebnis sind also zwei separate Ergebnislisten, die miteinander abgeglichen werden sollen.
In einer Tabellenkalkulation würden Sie dies ggf. mit einem SVERWEIS vornehmen. Hier müssen Sie nun die Kontaktnamen zwischen den beiden Listen vergleichen. Da Sie aber Strings vergleichen, müssen Sie so sicherstellen, dass Verträge tatsächlich nur mit einem Kontakt und nicht zusätzlich mit einem Ansprechpartner verknüpft sind. – Ziemlich kompliziert, oder?
Vereinen würden die Kontakte an dieser Stelle die internen Datensatz-Nummern (interne Kontakt-ID), doch gerade diese sehe ich in der Listenansicht nicht direkt.
Wie wird ein Filter angelegt? #
Wählen Sie zunächst das Modul aus, für welches Sie das Ergebnis angezeigt bekommen möchten. Wir erinnern uns: wir benötigen eine Liste aller Kontakte, die aktive Produktverträge besitzen, um diese dann über eine Serien-E-Mail anschreiben zu können. Damit bleiben wir bei unserem Beispiel und erstellen einen Filter aus dem Modul Kontakte heraus. Dabei erinnern wir uns, wir sehen grundlegend alle Kontakte, da wir ja nicht wissen, welcher dieser Kontakte einen aktiven Vertrag hat. Wir starten also immer auf der erwarteten Ergebnisseite.
Legen Sie die Filterbedingungen fest, welche Ihre Kontakte vorfiltern und einschränken, z.B. nur aktive Kontakte. Sollten Sie keine konkreten einschränkenden Filterbedingungen haben, benötigen wir dennoch ein eindeutiges Feld, welches in Ihren Datensätzen des anderen Moduls vorkommen. In unserem Beispiel also im Modul Verträge.
Eindeutig sind Verträge über das Feld Kontakt mit den Kontakten verknüpft. Gespeichert werden in den Verträgen die internen Kontakt-ID´s (Kontakt.interne ID) auch wenn Ihnen hier der Kontaktname angezeigt wird. Da wir uns nun auf die Verträge beziehen wollen, suchen wir in einem weiteren Filter (in Filter).
Wählen Sie diesen Operator erscheint ein weiterer Button
Klicken Sie auf wird ein neues Filterfenster geöffnet für den nächsten Schritt. Wählen Sie hierbei als Kein Text verfügbar das Modul aus, für welches Sie den nächsten Filterschritt planen. In unserem Beispiel sind dies die Verträge.
Auch hier können Sie weitere Einschränkungen nach Ihren Wünschen vornehmen. Dabei haben wir uns entscheiden, dass wir einen weiteren Filterschritt wünschen, um in den Posten eines Vertrages nach einem speziellen Posten zu suchen. Da uns weiterhin nur die aktiven Verträge interessieren, wurden zwei weitere Bedingungen hinzugefügt.
Das wichtigste ist nun das Rückgabe-Feld. Die Liste zeigt alle Felder, welche in Ihrem System im Modul Verträge enthalten sind – klar, haben wir ja als Datenquelle Verträge gewählt. Wir erhalten nun anhand dieses Filters hoffentlich eine Vertragsliste. Nun könnten wir natürlich jedes beliebige Feld verwenden, doch haben wir uns im ersten Filterschritt des Kontaktfilters auf die Kontakt-ID festgelegt. In welchem Feld befindet sich diese? In unserem Fall ist das das Feld Kontakt im Modul Verträge.
Da wir uns für eine weitere Filterbedingung entschieden haben, müssen wir nun auch noch diesen Filter erstellen. In unserem Beispiel sind dies die Posten der verschiedenen Verträge. Klicken Sie daher erneut auf und es wird ein weiteres Filterfenster geöffnet für den dritten Schritt. Wählen Sie hierbei wieder eine Datenquelle aus, für welches Sie den nächsten Filterschritt planen. In unserem Beispiel ist das Verträge Artikelliste. Diese Daten sind weitestgehend mit den Artikeldaten gleich, beinhalten aber darüber hinaus viele weitere Felder oder selbst angelegte Felder.
Wir suchen also ganz gezielt nach einer Artikelnummer in den verschiedenen Verträgen. Auch hier benötigen wir als wichtigsten Wert das Rückgabe-Feld. Dieser Wert ist nicht direkt ersichtlich, doch alle Posten unserer Verträge haben ein Feld gemeinsam, auf welches sie sich beziehen – die Vorgangs-ID (list_id). In diesem Feld steht also die interne ID unseres Vorgangs, also des Vertrages. Würden Sie die Posten in Angeboten, Aufträgen oder einem Rechnungsvorgang suchen, wäre das Feld sogar dasselbe. Denn auch dabei handelt es sich um Vorgänge mit einer entsprechenden Artikelliste.
Diese Bedingungen und Einschränkungen können Sie nach unten weiter skalieren oder sich auch innerhalb eines Subsuchfilters für weitere Einschränkungen entschließen.
Möglich wäre also einschränkend eine weitere Filterung z.B. auf verknüpfte Angebote im Zeitraum eines bestimmten Jahres. Enden Ihre Einstellungen bereits vorher, können Sie diesen Schritt überspringen.
Beenden Sie nun die jeweiligen Filterbedingungen über die Button . Im Fall eines dauerhaften Filters können Sie diesen ebenfalls so abschließen. Einen Schnellfilter würden Sie nun .
Das Ergebnis ist eine Kontaktliste mit den Kontakten, die die entsprechenden Verträge mit den darin enthaltenen Posten haben.
Die richtige Datenquelle finden #
Wie sind verschiedene Daten vernetzt? Diese Frage ist in Subsuchfiltern die wichtigste. Wie ist also sie Artikelliste mit dem Vertrag verknüpft? Wie dann der Vertrag mit dem Kontakt? Wie hängen Projektmitglieder mit dem Projekt zusammen und die angezeigten Projekte mit einem Kontakt?
Man benötigt also etwas Wissen, wie die Datenbank im Hintergrund funktioniert. Daher sind nachfolgend die wichtigsten Felder und Verknüpfungen aufgelistet. Die Tabellen zeigen die verschiedenen möglichen Datenquellen eines Subsuchfilters.
In der Felderverwaltung finden Sie darüber hinaus auch die selbst angelegten Felder.
Überblick über die gängigsten Rückgabewerte #
Das richtige Rückgabe-Feld #
Betrachten Sie Ihren Subsuchfilter, erhalten Sie eine entsprechende Ergebnisliste für jeden Filter und Subsuchfilter. Dabei benötigen Sie meistens jedoch nur ein einziges Feld, welches für den Vergleich von zwei Listen benötigt wird. Grundlegend können Sie jedes Feld für den Vergleich nutzen, doch ID´s und Zahlen sind für einen Vergleich einfacher als Texte. Sie erinnern sich an SVERWEIS der Tabellenkalkulation?
Gehen wir von unserem Beispiel aus, beginnen wir mal mit dem zweiten Subsuchfilter des Artikels, den wir suchen. Dabei durchsuchen wir in einer Liste (Verträge Artikelliste) alle Daten nach dem Artikel ART-10005. Diese Liste enthält alle gespeicherten Felder dieser Posten. Das theoretische Ergebnis unseres Subsuchfilters enthält nun alle Artikel ART-10005, auch jener Verträge, die wir gar nicht wissen wollen. Benötigt wird jedoch nur ein Feld, welches wir auch in den Verträgen selbst haben, um diese miteinander zu vergleichen. Sie können also nur Felder vergleichen, die in Ihren Listen auf beiden Seiten enthalten sind.
Da wir diesen Subsuchfilter mit dem ersten Subsuchfilter der Verträge – der Vertragsliste – vergleichen, stellt sich die Frage nach gleichen Datenfeldern. Hierbei eignet sich unsere ID des Vertrages. Diese ID nennt sich jedoch in der Artikelliste Vorgangs-ID, denn diese Listen gibt es auch für Angebote, Ausgangsrechnungen etc.
Hier kommt der erste Subsuchfilter ins Spiel. Bei diesem schränken wir die Liste weiter ein. Diese Liste zeigt uns alle aktiven, nicht gekündigten Produktverträge. Durch den Vergleich mit dem zweiten Subsuchfilter wird das Ergebnis direkt auf die Verträge begrenzt, die auch den gesuchten Artikel enthalten.
Überlegen wir uns nun, was die Verträge und Kontakte gemeinsam haben? Relativ schnell kommen wir damit auf das Feld der Kontaktverknüpfung, denn die Liste aller Kontakte lässt sich mit der Liste der gefundenen Verträge und dem Feld Kontakt vergleichen. In dem Feld sehen Sie war den Namen des Kontaktes, in der Datenbank jedoch steht an dieser Stelle die interne Kontakt-ID. Diese lässt sich nun auch mit der Kontakt-ID meiner Kontaktliste vergleichen.
Damit man sich unter dem Rückgabe-Wert was vorstellen kann, sollten Sie sich folgende Fragen stellen:
- Welches Feld habe ich in den Daten meiner ersten Datenliste und auch in den Daten meines Subsuchfilters?
Dabei ist es unerheblich, ob Sie einen Filter und einen Subsuchfilter oder zwei Subsuchfilter vergleichen wollen. - In welcher Form liegen die Daten idealerweise vor?
Geeigneter für einen Vergleich sind immer eindeutige Werte, wie Zahlen bzw. ID´s - In welchem Feld finde ich diesen Vergleichswert innerhalb meines Subsuchfilters?
Dieses Feld ist der Rückgabe-Wert!
Die interne ID des ersten Filters bezieht sich auf die ID der Kontakte. Die interne ID des Subsuchfilters bezieht sich auf die Verträge. Eventuell haben Sie einen Treffer, aber nicht die gewünschten.
Die interne ID der Kontakte befindet sich im Feld Kontakt in den Verträgen > das ist somit mein Rückgabe-Feld.
Einschränkungen #
Es kann vorkommen, dass es Felder gibt, welche keine Daten enthalten. Diese befinden sich ggf. in der Liste der Felder für die Rückgabe, sind jedoch leer. Zu diesen Feldern zählen viele automatisch berechnete Felder. Eine Liste der Felder können wir Ihnen hierbei nicht aufschlüsseln.
Beispiele:
- Der Gesamtpreis eines Posten innerhalb einer Artikelliste ist ein berechnetes Feld. Dieser Wert setzt sich aus den Feldern Menge und Einzelpreis und ggf. einem Rabatt zusammen. Man kann sich also nicht alle Verträge ausgeben lassen, welche Posten mit einem Gesamtpreis höher als 300,- € besitzen.
- Artikelbeschreibungen werden immer aktuell aus der Beschreibung der Artikelverwaltung geholt und sind nur in Sonderposten mit eigener Beschreibung in den entsprechenden Feldern zu finden.
Einbeziehung des Suchfeldes #
Das flexible Suchfeld eines Moduls können Sie auch für die Filter und Subsuchfilter verwenden. So können Sie in Ihrem Subsuchfilter in der ersten oder auch einer anderen Ebene das Suchfeld einbauen. Hierzu nutzen Sie die übliche Variable <#search_field#> für Texte und Felder, die dies ermöglichen. Der in das Suchfeld eingegebene Text wird dann in Ihrem Filter sowie den Subsuchfiltern in die Felder eingebaut, die diese Variable enthalten.
Durch eine solche Angabe können Sie so z.B. die Kontakte mit aktiven Verträgen filtern, welche verschiedene Artikel aufweisen. Tragen Sie die Artikelnummer nun nicht mehr fest in Ihren Subsuchfilter ein sondern ersetzen Sie diese durch die Variable. So können Sie in das Suchfeld verschiedene Artikelnummern eintragen.
Beispiele für einige Filter in Verbindung mit Subsuchfiltern #
Die nachfolgenden Beispiele sind ein winziger Ausschnitt aus den Möglichkeiten, welche sich über die Filtererweiterung auswerten lassen.
Kontaktliste mit Verträgen und Posten #
Kontaktliste mit aktiven Verträgen, welche einen bestimmten Artikel enthalten.
Anforderung:
Sie möchten eine Liste aller Kunden erhalten, welche aktive (laufende) Verträge besitzen, in denen ein bestimmter Artikel in den Posten des Vertrages enthalten ist.
Gedanken:
Wir gehen davon aus, dass nur aktive Kunden (Kontakte) auch laufende Verträge haben. Daher kann für die Abfrage auf eine weitergehende Einschränkung der Kontaktliste verzichtet werden. Benötigt werden für diesen Filter mindestens 3 Datenquellen. Ausgehend vom Ergebnis – einer Kontaktliste – werden also die Kontakte berührt. Weiterhin benötigen wir die Verträge – welcher meiner Kontakte hat also einen aktiven Vertrag? Und zuletzt benötigen wir innerhalb der Verträge die Daten auf der Artikelliste. Diese müssen wir nach einem gewünschten Artikel durchsuchen.
Weiterhin müssen wir uns Gedanken machen, welche Daten wie in den einzelnen Datenfeldern verwendet werden. Der Kontakt an sich ist klar. Ein Vertrag für einen Kontakt enthält aber nicht den Kontaktnamen sondern eine Verknüpfung auf die ID des Kontaktes. Hier benötigen wir also die ID des Kontaktes aus den Verträgen. In welchem Kontaktfeld steht also meine ID des Kontaktes drin. → Ergebnis bis hier hin wäre also eine Liste mit Kontakten, welche Verträge haben. Dieser Subsuchfilter muss damit weiter eingeschränkt werden, denn wir wollen ja nur die aktiven Verträge, welche nicht gekündigt sind erhalten. Der Filter ist also so zu erweitern, dass er mir meine aktiven Verträge anzeigt. Über welche Felder dies in Ihrem Fall speziell geschieht kann individuell sein. → Jetzt wäre mein Ergebnis eine Kontaktliste mit allen Kontakten, die nicht gekündigte Verträge besitzen.
Damit wir jedoch zum Ergebnis der Verträge mit einem gewünschten Artikel kommen, ist ein weiterer Subsuchfilter erforderlich. Wie sind also die Daten zwischen den Posten eines Vertrages und dem Vertrag vernetzt? Die Liste der Posten, also die Registerkarte
des Vertrages, enthält wieder eine Tabelle. Diese wird im Feld Datenquelle als Verträge Artikelliste bezeichnet. Unser Artikel befindet sich also in dieser Liste. Jetzt müssen wir also nur noch den gewünschten Artikel mittels Filter eindeutig identifizieren. Etwas herausfordernd ist es nun, den richtigen Rückgabewert zu erhalten. In der Liste der Rückgabewerte befindet sich nämlich eine Vertrags-ID und eine Vorgangs-ID. Es kann also unter Umständen mehrere Verknüpfungen geben. Da es sich bei einem Vertrag auch um einen Vorgang handelt, ähnlich einem Angebot, Auftrag, einer Ausgangsrechnung etc., ist hier als Rückgabewert die Vorgangs-ID die richtige.
Fazit:
Benötigt wird ein Filter über die Kontakte mit zwei Subsuchfiltern über Verträge und Vertragsposten.
Aufbau:
Erstellen Sie über das Modul Kontakte Ihren ersten Filter. Verbunden sind die Verträge über eine Feldverknüpfung mit den Kontakten, der internen ID. Diese sollte also auch in unserem ersten Subsuchfilter der Vertragsliste stecken. Die Vertragsliste ist hier auf die aktiven und nicht gekündigten Verträge gefiltert und wird durch den zweiten Subsuchfilter erweitert, welcher sich nun auf die interne ID der Verträge bezieht, die in der Artikelliste der Verträge ebenfalls vorkommt. Im zweiten Subsuchfilter suchen wir nun nach dem Artikel.
Die wichtigsten Informationen sind nun die Rückgabefelder. Im zweiten Subuchfilter ist dies die Vorgangs-ID und im ersten Subsuchfilter der Kontakt mit seiner ID.
Projekt-Registerkarte anhand der Mitglieder #
Das nachfolgende Beispiel zeigt für das Modul Kontakte, wie Sie ein eigenes Register aufbauen können. Beachtet werden dabei die Mitglieder der Projekte in Bezug auf die Kontakte.
- Gehen Sie in einen beliebigen Kontakt auf die unteren Registerkarten und wählen Sie über die Registerkarte Anpassen den Punkt .
- Wählen Sie als Datenquelle Projekte aus und suchen Sie anhand interne ID > in Filter >

Die angezeigten Felder, Sortierung, Gruppierung sowie die Berechtigung haben wir an dieser Stelle nicht näher betrachtet. Nehmen Sie die für Sie erforderlichen Einstellungen selbst vor. - Stellen Sie nun den Subsuchfilter ein. Hier wählen Sie als Datenquelle Projekt Mitglieder. Hierbei durchsuchen wir jetzt die Projektmitglieder auf Basis ihrer zugeordneten Kontakte. Also benötigen wir die Kontakt-ID (cid) > enthält Objekt-ID > <#id#>. Die Formel können Sie über den Stift hinter dem Feld und der Auswahl interne ID auswählen.

Wichtig ist der Bezug auf enthält Objekt-ID, da Sie Mitglieder in Form von Kontakten oder auch Kontakten inkl. Personen einem Projekt zuordnen können. Gerade die Projektzuordnungen mit Mitglieder mit Personenzuordnung würden andernfalls nicht in der Liste erscheinen. - Vergessen Sie das Rückgabe-Feld nicht. Hier muss wieder Bezug auf die Projekt-ID (pid) genommen werden.
Kontakte ohne Aktivitäten #
Übersicht über alle Kontakte, welche keine Aktivitäten (z.B.: Termine, Aufgaben, Anrufe, Notizen, E-Mails, Tickets, Projekte) besitzen. Was Sie in diesem Fall als Aktivität definieren, obliegt Ihnen. Zählen Projekte oder Tickets dazu oder doch eher Verträge? Der Aufbau ist also immer derselbe. Je mehr Module Sie als Aktivität definieren, um so mehr Subsuchfilter benötigen Sie.
- Beginnen Sie auch hier im Modul Kontakte, denn Sie wollen ja eine Kontaktliste ohne Aktivität als Ergebnis.
- Erstellen Sie einen neuen Kontaktfilter. Ob Sie nun einen gespeicherten Filter, Schnellfilter für die einmalige Ausführung oder gar eine Registerkarte nutzen möchten, entscheiden Sie am Ende.
Die angezeigten Felder, Sortierung, Gruppierung sowie die Berechtigung haben wir an dieser Stelle nicht näher betrachtet. Nehmen Sie die für Sie erforderlichen Einstellungen selbst vor. - Je gewünschter Aktivität wählen Sie Kontakt.interne ID > in Filter > . Für jede weitere Aktivität nutzen Sie am Ende der Zeile das Plus .
- Jede neue Zeile beginnen Sie mit UND > Kontakt.interne ID > in Filter > . Das UND ist deshalb wichtig, da Sie nur Kontakte haben wollen die keine der ausgewählten Aktivitäten besitzen. Würden Sie ODER verwenden, werden alle Kontakte angezeigt bekommen, in denen nur eine einzige Ihrer Aktivitäten nicht vorhanden ist.

Ggf. benötigen Sie weitere Suchangaben, die sich auf Kontaktfelder (z.B. Aktiv, Region, Ort etc.) beziehen. - Stellen Sie nun je Zeile über den Button die Aktivität ein. Dazu wählen Sie als Datenquelle die gewünschte Aktivität aus.

- Das Rückgabe-Feld ist in jedem Subsuchfilter für jede Aktivität gleich.

Liste aller Stücklistenartikel, welche geänderte Artikel enthalten #
Ziel dieses Filters mit Subsuchfilter soll eine Übersicht über Artikel sein, welche Stücklisten-Artikel geänderte Artikel enthalten. Es kann also sein, dass ein Preis eines Artikels angepasst wird (Tischplatte) und diese Tischplatte wird in verschiedenen Stücklistenartikeln mit verschiedenen Beinen und Untergestellen immer wieder verwendet. Nun soll also auch in den Stücklistenartikeln der Preis für das Gesamtprodukt überprüft werden.
Man benötigt also eine Liste mit allen Artikeln, in denen der geänderte Artikel enthalten ist.
- Starten Sie hier im Modul Aktikelverwaltung und nutzen Sie dort z.B. einen Schnellfilter. In unserem Beispiel grenzen wir jetzt den Artikel nicht genau ein sondern suchen explizit nach Stücklistenartikeln in denen Artikel enthalten sind, die Heute geändert wurden. Der zweite Subsuchfilter sucht hier nur nach dem aktuellem Tag. Den Zeitraum können Sie durch Anpassung im zweiten Subsuchfilter verändern.
- Erstellen Sie einen Filter in der obersten Ebene. Hier suchen wir also nach Stücklistenartikeln und ergänzen diese Suche jetzt um den ersten Subsuchfilter.

- Im ersten Subsuchfilter durchsuchen wir also die Stücklistenartikel (Datenquelle Artikelverwaltung Stückliste) nach dem Artikeltyp Typ (type) > enthält > article und erweitern diesen um die Suche nach dem geänderten Artikel mit UND > Artikel-ID (article_id) > in Filter > . Als Rückgabefeld nutzen Sie die Vorgang-ID (list_id).

- Im zweiten Subsuchfilter suchen wir nun nach den eigentlich geänderten Artikeln (Datenquelle Artikel) im Zeitraum des aktuellen Tages. Diesen Zeitraum können Sie individuell durch andere Formeln eingrenzen. Hier ist das Rückgabefeld die interne ID des Artikels interne ID.

Es handelt sich also auf jeden Fall um keinen Stücklistenartikel und wird begrenzt um zwei Datumszeilen, in welchen das Änderungsdatum der Artikel begrenzt wird zwischen Heute 00:00:00 und 23:59:59.
Kontaktübersicht der aktiven Kundenprojekte #
Gewünscht wird eine Übersicht über alle Kontakte, welche aktive Kundenprojekte haben. Voraussetzung hierbei ist natürlich, dass Sie Kundenprojekte als solche klassifiziert haben und eben zwischen Kundenprojekten oder internen Projekten unterscheiden. Selbstverständlich können Sie das Beispiel auch für eine andere Projektklassifizierung verwenden.
- Da wir als Ergebnisliste eine Kontaktliste erwarten, starten wir mit einem Startfilter im Modul Kontakte. Die Kontakte selbst grenzen wir jetzt so ein, dass wir nur aktive Kontakte mit der Kategorie Kunde haben wollen.
So könnten Sie auch inaktive Kontakte mit aktiven Projekten finden. Es gibt also unzählige Varianten für diesen Filter.

- Über den ersten Subsuchfilter suchen wir nun nach den Projekten, in denen die Kontakte (als Projektmitglieder) enthalten sind. Dazu wählen wir als Datenquelle die Projekt Mitglieder aus. Der Rückgabewert ist hier die Kontakt-ID (cid).
Gleichzeitig benötigen wir eine weitere Suche, um die Projekte selbst wieder einzugrenzen. Hierzu wird der erste Subsuchfilter also mit der Suche auf die Projekt-ID (pid) > in Filter > eingeschränkt.

- Im zweiten Subsuchfilter wählen wir als Datenquelle die Projekte aus. Der Rückgabewert ist hier die interne ID der betroffenen Projekte.
Diese Optionen stellen hier nur ein Beispiel für aktive Projekte mit der Kategorie Kundenprojekt dar. Sie können selbstverständlich beliebige Eingrenzungen auf Projektfelder vornehmen.

Liste aller Objekte mit Gruppenzeilen #
Das nachfolgende Beispiel soll eine Vertragsliste liefern, in denen es Gruppenzeilen gibt. Auch dieses Beispiel eignet sich wieder dazu auch in ähnlicher Form nach bestimmten Artikeln oder Bestandteilen einer Postenliste eines Objektes zu suchen. So können Sie dieselbe Suche auch für Angebote, Aufträge, Ausgangsrechnungen, Eingangsrechnungen, Lieferscheinen oder Gutschriften verwenden. Also überall da, wo es Artikel in einer Postenliste gibt.
- Starten wir also in unserem Beispiel wieder im Modul Verträge, da wir ja eine Vertragsliste erhalten wollen. Je nach gewünschtem Ergebnis wechseln Sie also in das entsprechende Modul Ihrer Wahl.
- Legen Sie dort einen Grundfilter an. Diesen können Sie beliebig auf Felder Ihrer Objekte einschränken. Wir nutzen in diesem Beispiel lediglich die Vorgehensweise für den Subsuchfilter, indem wir die Suche auf die interne ID > in Filter > verwenden.

- Nun legen Sie den Subsuchfilter an, in welchem Sie die Eingrenzung auf Artikel oder Gruppenzeilen oder anderen Merkmalen Ihrer Suche vornehmen. In diesem Beispiel suchen wir explizit nach Gruppenzeilen in den verschiedenen Listen und einem beliebigen Text der Gruppenbezeichnung.

Unser Typ (type) > enthält > groupline und wird in der zweiten Zeile mit UND verbunden, um nach einer bestimmten Bezeichnung (name) zu suchen.



















