# Lokator: Search for DB linked data

Der Lokator DB-Link-Lokator **(Search for DB linked data)** findet auf Basis von konfigurierbaren Filtermerkmalen den Wert der für das entsprechende Feld vorgesehen ist. Mittels entsprechender Lokatoren für die Suche nach IBAN-Nummern, Umsatzsteuer-IDs, Steuernummern, Telefon - und Fax-Nummern, Email-Adressen oder Internet-Adressen wird in einer entsprechenden Datenbank nach passenden Einträgen gesucht und zu diesen Einträgen die Kreditor-Nummer zurückgegeben.

1. [Konfiguration des DB Link Locators](#bkmrk-konfiguration-des-db-0)
2. [Beispiel für Datenbank-Plausibilisierung ](#bkmrk-beispiel-f%C3%BCr-datenba)
3. [Lokatorenfilterung](#bkmrk-lokatorenfilterung)

##### **Konfiguration des DB-Link-Locators** 

Im folgenden gehen wir auf die beispielhafte Konfiguration eines Lokators ein, der zur Ermittlung von Kreditorennummern eingesetzt wird.

<p class="callout info">**Der Lokator für die Suche nach Kreditorennummern mittels der Datenbank-Suche ist Bestandteil des ausgelieferten "Invoice Templates" und ist ein klassisches Beispiel für die Verwendung dieses Lokators bei Eingangsrechnungs-Erkennung.**</p>

Die Konfiguration wird analog zu allen anderen Lokatoren durchgeführt. Der Lokator Typ für den Db-Link-Lokator ist **"Search for DB linked data"** und muss über das Auswahlfeld innerhalb der Lokatoren-Konfiguration im Tab **"Allgemein"** ausgewählt werden.

[![image-1688372712478.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688372712478.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688372712478.png)  
Wie man nun erkennt sind neben des Typen-Merkmals auch die weiteren allgemeinen Merkmale, entsprechend unseres Beispiels, eingepflegt

Um nun die Datenbanksuche und die Filtermerkmale zu konfigurieren müssen wir den Tab **"Datenbanksuche"** öffnen und die **Stammdaten-Tabelle** sowie die **Ausgabespalte** definieren.

[![image-1688381823233.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688381823233.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688381823233.png)

Für die Umsetzung des konkreten Beispiels werden wir hier als Stammdaten-Tabelle die **"Liste aller Lieferanten"** wählen und die **Ausgabespalte** mit **"Nummer"** definieren. Auf die Konfigurationsmerkmale **Filterspalte**, **Filterfeld** und **Filterlokator** (ab Squeeze 2.5.0) gehen wir im [Abschnitt Lokator-Filter](#bkmrk-lokatorenfilterung) weiter ein.  
  
Im Unteren Abschnitt des Tabs "**Datenbanksuche"** können nun die ersten **Filtermerkmale(Quell-Lokatoren)**, im Tabellenabschnitt, konfiguriert werden:

[![image-1688371726185.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688371726185.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688371726185.png)

<table border="1" id="bkmrk-source-lokator-%28quel"><thead><tr><td>Source Lokator (Quell-Lokator)</td><td>DB-Spalte der ausgewählten DB</td><td>Stop-Kennzeichen</td></tr></thead><tbody><tr><td>UstId (Lokator für die Ermittlung von Umsatzsteuer-IDs)</td><td>EUTaxId</td><td>Nein</td></tr><tr><td>IBAN (Lokator für die Ermittlung von IBANs)</td><td>IBAN</td><td>Nein</td></tr><tr><td>Email (Lokator für die Ermittlung von Emails)</td><td>Email</td><td>Nein</td></tr><tr><td>URL (Lokator für die Ermittlung von URLs)</td><td>Webpage</td><td>Nein</td></tr><tr><td>Phone (Lokator für die Ermittlung von Telefonnummern)</td><td>Phone</td><td>Nein</td></tr><tr><td>Phone (Lokator für die Ermittlung von Telefaxnummern)</td><td>Fax</td><td>Nein</td></tr></tbody></table>

<p class="callout info">Die Such-Ergebnisse der Source-Lokatoren werden in der DB-Spalte der entsprechenden Datenbank gesucht und der Wert der Ergebnis-Spalte zurückgegeben.</p>

<p class="callout info">Die Reihenfolge wie die Ergebnisse der Source-Lokatoren in der Datenbank gesucht werden, kann in der Liste via Drag &amp; Drop geändert werden. Der oberste Eintrag wird zuerst gesucht, der unterste Eintrag zuletzt.</p>

<p class="callout info">Für das Stop-Kennzeichen kann entweder **ja** oder **nein** ausgewählt werden. **Ja** bedeutet, wenn nur ein Ergebnis in der Datenbank gefunden wird, wird der Wert der konfigurierten Ergebnis-Spalte zurückgegeben und die Suche beendet. **Nein** bedeutet, unabhängig ob es Treffer in der Datenbank gibt, es wird immer mit dem nächsten Lokator in der Liste weiter gesucht. </p>

Für die IBAN bedeutet diese Konfiguration, alle via IBAN-Lokator gefundenen IBANs werden in der Datenbankspalte IBAN gesucht, wenn eine oder mehrere passende IBANs gefunden werden, werden die Kreditor-IDs dieser Zeilen zurückgegeben.

**Mit dem Symbol "Neuer Eintrag" können weitere Lokatoren die bereits konfiguriert sind, ausgewählt und hinzugefügt werden.**

[![image-1688371793234.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688371793234.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688371793234.png)

- das Feld **"Quellen-Lokator"** ist ein Auswahlfeld mit allen Lokatoren die konfiguriert sind
- das Feld **"DB Spalte"** gibt an in welcher Datenbankspalte das Lokatorergbnis in der Tabelle gesucht werden soll
- für das Feld **"Stop"** kann ja/nein gewählt werden und bestimmt ob die weitere Suche nach einem eindeutigen Treffer fortgeführt werden soll, wenn ein Wert für das Filtermerkmal **"Quellen-Lokator"** gefunden wurde.

##### **Verwendungsmöglichkeit als Datenbank-Plausibilisierung** 

So könnte man zum Beispiel unter Verwendung anderer Lokatortypen wie:

- [Regex Lokatoren](https://docs.squeeze.one/books/squeeze-2-admin-handbuch/page/lokator-value-from-regular-expression "Lokator: Value from Regular Expression")
- [KeyWord Lokatoren](https://docs.squeeze.one/books/squeeze-2-admin-handbuch/page/lokator-keyword-to-value "Lokator: KeyWord to Value")
- [Value next to KeyWord Lokatoren](https://docs.squeeze.one/books/squeeze-2-admin-handbuch/page/lokator-value-next-to-keyword "Lokator: Value next to KeyWord")

folgende eindeutigen Werte auf dem Dokument ermitteln:

- Bestell-Nummern,
- Lieferschein-Nummern,
- Auftrags-Nummern,
- Mandanten-Namen

und als Quell-Lokatoren in dem Tabellenabschnitt des **DB-Link Lokators** hinzufügen.

---

In dem folgenden Beispiel, wird die mittels eines regulären Ausdrucks ermittelte Bestellnummern, gegen eine Datenbank mit entsprechenden Bestellnummern plausibilisiert.

**Regex-Lokator für Erkennung der Bestellnummer (10-stellig numerisch) mittels regulärem Ausdruck:**

[![image-1648644299907.png](https://docs.squeeze.one/uploads/images/gallery/2022-03/scaled-1680-/image-1648644299907.png)](https://docs.squeeze.one/uploads/images/gallery/2022-03/image-1648644299907.png)

**DB-Link Lokator für die Plausibilisierung der erkannten Bestellnummer gegen eine Datenbank:**

[![image-1688381976971.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688381976971.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688381976971.png)

##### **Lokatorenfilterung (ab Squeeze 2.5.0)**

Der DB-Link-Lokator bietet ab der Version 2.5.0 drei neue Filtermerkmale um die Datenbankeinträge die zu Prüfen sind vorab einzugrenzen. Unter dem Tab "**Datenbanksuche**" können nun die drei neue Merkmale zur Filterung definiert werden.

1. **Filterspalte**
    - die Datenbank Spalte die als Basis des Vergleichs herangezogen wird
2. **Filterfeld**
    - das Dokumentenklassen-Feld das verwendet werden soll, um auf die Filterpalte zu vergleichen
3. **Filter-Lokator**
    - ein bereitsbestehender Lokator der ebenfalls verwendet werden soll, um auf die Filterspalte zu vergleichen

[![image-1688380370985.png](https://docs.squeeze.one/uploads/images/gallery/2023-07/scaled-1680-/image-1688380370985.png)](https://docs.squeeze.one/uploads/images/gallery/2023-07/image-1688380370985.png)

Folgendes Beispiel beschreibt die Formel für eine erfolgreiche Datensatz Identifizierung:

<table border="1" id="bkmrk-filtermerkmal-ergebn" style="border-collapse: collapse; width: 50.1243%; height: 133px;"><tbody><tr style="height: 46px;"><td style="width: 49.5392%; height: 46px;">**Filtermerkmal-Ergebnis**</td><td style="width: 58.9608%; height: 46px;">**Filtermerkmal**</td></tr><tr style="height: 29px;"><td style="width: 49.5392%; height: 29px;">A</td><td style="width: 58.9608%; height: 29px;">Filterspalte</td></tr><tr style="height: 29px;"><td style="width: 49.5392%; height: 29px;">B</td><td style="width: 58.9608%; height: 29px;">Filterfeld</td></tr><tr style="height: 29px;"><td style="width: 49.5392%; height: 29px;">C</td><td style="width: 58.9608%; height: 29px;">Filter-Lokator</td></tr></tbody></table>

**Formel:** `Wahr wenn: A = B = C`

Alle Ergebnisse die dieser Formel entsprechen können nun durch die weiteren Quell-Lokatoren Filter validiert werden. Ein konkretes Beispiel wie man mit diesem Filter umgehen kann finden Sie [hier](https://docs.squeeze.one/books/squeeze-2-solution-templates/page/mandantenspezifische-kreditorfilterung "Mandantenspezifische-Kreditorfilterung").