Vertec Suche

Das allgemeine Vertec Suchfeld erscheint in der Classic App oben rechts:

In der Desktop App und der Cloud App kann der Suchbegriff direkt in die Adresszeile eingegeben werden:

Eine weitere Möglichkeit in Desktop App, Cloud App und Web App ist die Navigationsansicht globale Suche:

Die Suche basiert auf einem Vertec SQL-Ordner. In diesem Ordner wird die Suche formuliert. In den Systemeinstellungen > Allgemein ist bereits ein Suchordner vordefiniert. Er heisst Vertec Suche und wird von Vertec automatisch angelegt und als Suchordner eingetragen. Sie finden ihn im Vertec unter öffentliche Ordner.

Damit die Suche funktioniert, muss der Rootordner mit dem Vertec Such-Ordner für den Benutzer sichtbar sein. Möchten Sie den Ordner an einem anderen Ort haben, z.B. weil die Benutzer keinen Zugriff auf die öffentlichen Ordner haben, können Sie ihn in einen anderen / neuen Rootordner verschieben, den alle Benutzer sehen, und den Pfad in den Systemeinstellungen entsprechend anpassen.

Dieser Suchordner sucht standardmässig in Adresseintrag.alias und Projekt.code, beschrieb und betreffend.

Aufbau der Suchabfrage

Da die Vertec Suche Objekte von verschiedenen Klassen liefern soll, muss als Klasse für den SQL-Ordner die gemeinsame Basisklasse aller möglichen Ergebnisobjekte verwendet werden. Die oberste Klasse und damit die Basisklasse von allen Vertec Objekten ist BusinessClassesRoot, deshalb wird als Klasse für die Vertec Suche BusinessClassesRoot angegeben.

BusinessClassesRoot jedoch hat keine Attribute definiert und erlaubt als Datenfelder via SQL nur BOLD_ID und BOLD_TYPE. Die eigentliche SQL-Abfrage muss deshalb in Unterabfragen formuliert werden, welche über den SQL-Operatoren in via Bold_ID mit der Tabelle BusinessClassesRoot verknüpft sind.

Die Syntax ist wie folgt:

((Type-Filter) and (bold_id in (select bold_id from Tabelle where Eigenschaften-Filter))
  • Type-Filter: Der sogenannte bold_type ist die Information, zu welcher Klasse das Objekt gehört. Jede Klasse kann also eindeutig einem bold_type zugewiesen werden. Die ganze Abfrage ist viel schneller, wenn jeweils angegeben wird, zu welchem bold_type die Objekte in der Tabelle gehören. Es kann damit auch gefiltert werden (siehe weiter unten)
  • Tabelle: Hier wird angegeben, in welcher Tabelle gesucht werden soll.
  • Eigenschaften-Filter: Die sogenannte Where-Clause. Hier wird der Eintrag mit den eingegebenen Suchbegriff verglichen.

Die Struktur der SQL sieht immer gleich aus und kann beliebig erweitert werden mit dem Befehl "or".

Standardsuche Vertec

Die Standardsuche, wie sie von Vertec mitgeliefert wird, sieht wie folgt aus:

((bold_type in (102,84,85,345,88) and exists(select 1 from adresseintrag adr where 
adr.bold_id=businessclassesroot.bold_id and adr.alias like '%\1%'))) or ((bold_type=18) and
exists(select 1 from projekt proj where proj.bold_id=businessclassesroot.bold_id and (proj.code
like '%\1%' or proj.beschrieb like '%\1%' or proj.betreffend like '%\1%')))

Durchsucht das Feld Alias von allen Adressen sowie die Felder Code, Beschrieb und Betreffend von Projekten.

Standard-Suche erweitert um den Ort der Adressen

Sucht zusätzlich im Feld Ort (Standardort) von Adressen:

((bold_type in (102,84,85,345,88) and exists(select 1 from adresseintrag adr where 
adr.bold_id=businessclassesroot.bold_id and (adr.alias like '%\1%' or adr.standardort like '%\1%'))))
or ((bold_type=18) and exists(select 1 from projekt proj where proj.bold_id=businessclassesroot.bold_id
and (proj.code like '%\1%' or proj.beschrieb like '%\1%' or proj.betreffend like '%\1%')))

Standard-Suche erweitert mit Aktivitäten (bold_type 304)

Sucht zusätzlich im Titel von Aktivitäten.

((bold_type in (102,84,85,345,88)) and (bold_id in (select bold_id from adresseintrag adr where adr.alias like '%\1%'))) or
((bold_type=18) and (bold_id in (select bold_id from projekt proj where proj.code like '%\1%' or proj.beschrieb like
'%\1%' or proj.betreffend like '%\1%'))) or ((bold_type in (304)) and (bold_id in (select bold_id from Aktivitaet where titel
like '%\1%')))

Standardsuche erweitert mit Phasen (bold_type 176)

Sucht zusätzlich in Code und Beschreibung von Projektphasen.

((bold_type in (102,84,85,345,88)) and (bold_id in (select bold_id from adresseintrag adr where adr.alias like '%\1%'))) or
((bold_type=18) and (bold_id in (select bold_id from projekt proj where proj.code like '%\1%' or proj.beschrieb like '%\1%' or
proj.betreffend like '%\1%'))) or ((bold_type=176) and (bold_id in (select bold_id from projektphase phase where phase.code
like '%\1%' or phase.beschreibung like '%\1%')))

Suche mit Filter

Die Suche wird nach bold_type gefiltert, damit sie schneller ist. Da gewisse (Unter-)Klassen in der Datenbank zusammen in einer Tabelle zusammengefasst sind, kann in solchen Fällen mit der bold_type auch gefiltert werden. Firmen, Kontakte, Personen, EinfacheAdressen und Paare zum Beispiel befinden sich alle in der Tabelle Adresseintrag, haben jedoch je eine unterschiedliche bold_type.

Als Beispiel wird die obige Adress-Abfrage auf Firmen und Kontakte (bold_type 84 und 85) eingeschränkt:

((bold_type in (84,85)) and bold_id in (select bold_id from adresseintrag where alias like '%\1%')))

bzw. in der Standard-Suche:

((bold_type in (84,85)) and (bold_id in (select bold_id from adresseintrag adr where adr.alias like '%\1%'))) or
((bold_type=18) and (bold_id in (select bold_id from projekt proj where proj.code like '%\1%' or proj.beschrieb like
'%\1%' or proj.betreffend like '%\1%')))

Eruieren der bold_type

Die Bold_Types sind nur in der Datenbank zu finden. Die entsprechende Tabelle heisst "bold_type", man kann also auf der Datenbank eine Abfrage machen mit "select * from bold_type".

Hier eine Auflistung der gängigsten Tabellen, Felder und bold_type:

Klassenname   bold_type    TabelleFelder
Firma 84 Adresseintrag alias, name, zusatz, bemerkung
Kontakt 85 " "
Person 88 " "
Einfache Adresse 102 " "
Paar 345 " "
Aktivitaet 304 Aktivitaet titel, bemerkung
Projekt 18 Projekt code, beschrieb, betreffend, bemerkung
Projektphase 176 Projektphase code, beschreibung, bemerkung
Projektbearbeiter 33 Projektbearbeiter name, kuerzel, bemerkung
OffeneLeistung 67 OffeneLeistung text, bemerkung
VerrechneteLeistung 70 VerrechneteLeistung text, bemerkung
OffeneSpesen 77 OffeneSpesen text, bemerkung
VerrechneteSpesen 80 VerrechneteSpesen text, bemerkung
OffeneAuslage 282 OffeneAuslage text, bemerkung
VerrechneteAuslage 283 VerrechneteAuslage text, bemerkung
AuslagePosition 338 AuslagePosition text, bemerkung

Weitere Tabellen sind direkt in der Datenbank zu finden.


01.02.2010 | 21.03.2016: Release 6.0: Artikel angepasst.
Produktlinien: Standard, Expert
Module: Leistung & CRM