# Lokator: Search for line items

Der Lokator **Search for line items** findet Positionszeilen auf Dokumenten anhand entsprechender Spalten-Überschriften und unter diesen Spalten befindlichen Werten.

<p class="callout warning">**Wir bitten darum die die Seite [Unterschiede zu Squeeze 1 (Lokatoren)](https://docs.squeeze.one/books/squeeze-2-admin-handbuch/page/unterschiede-zu-squeeze-1 "Unterschiede zu Squeeze 1") aufmerksam zu lesen, wenn Sie bereits mit Squeeze 1 (der alten Benutzeroberfläche) arbeiten / gearbeitet haben.**</p>

<p class="callout info">Die Suche nach Positionen ist im ausgelieferten Invoice-Template bereits konfiguriert.</p>

<p class="callout info">Die Positions-Suche in Squeeze benötigt entsprechende Lokatoren mit deren Hilfe die Spaltenüberschriften der Positions-Tabelle gefunden werden.</p>

#### Funktionsweise

Die Erkennung von Tabellen mittels dieses Lokators funktioniert in folgenden Schritten:

- Spalten der Tabelle werden über ihre Überschriften ermittelt *(nutzt Überschriften-Lokator)*
- Werte werden innerhalb der gefunden Spalten *gesucht (nutzt Wert-Lokator)*
- Gefundene Werte werden zu Zeilen zusammengefasst

#### Schrittweise Konfiguration

Zur Konfiguration einer Positionserkennung gehören folgende Punkte.

##### 1. Überschriften &amp; Wert-Lokatoren

Sowohl die Überschriften, als auch die Werte werden über normale Lokatoren gefunden. Hier bietet sich bspw. ein "Regular Expression"-Lokator an.

Für jede zu extrahierende Spalte wird also 1 Überschriftenlokator und 1 Wert-Lokator benötigt.

##### 2. Tabelle inkl. Tabellen-Spalten konfigurieren

Als nächstes müssen die Lokatoren an den Tabellen-Spalten konfiguriert werden.

Sollte bis jetzt noch gar keine Tabelle an der zu extrahierenden Dokumentenklasse existieren, dann muss diese zuerst inkl. Spalten konfiguriert werden.

An jeder Tabellenspalte kann 1 Überschriftenlokator und 1 Wert-Lokator konfiguriert werden.

##### 3. Verknüpfung von Tabelle und Tabellen-Lokator (Search for line items)

Zuletzt muss ein Tabellen-Lokator (Search for line items) konfiguriert werden. Diese Konfiguration geschieht an zwei Stellen:

1. An der Tabelle muss der angelegte Lokator ausgewählt werden.
2. Am Lokator muss die Tabelle ausgewählt werden, für welche der Lokator extrahieren muss.

<p class="callout danger">**Achtung: Aktuell kann ein Tabellen-Lokator (Search for line items) nur für die Extraktion einer einzigen Tabelle eingesetzt werden.**  
  
D. h. für jede Tabelle (unabhängig davon, zu welcher Dokumentenklasse sie gehört), muss ein neuer Tabellen-Lokator eingerichtet werden.  
  
Das gilt **nicht** für die Überschriften- und Wert-Lokatoren, welche wiederverwendbar sind.</p>

<p class="callout info">Das folgende Screenshot zeigt eine Warnung im Konfigurations-Dialog einer Tabelle. Diese Warnung soll dabei helfen mögliche Fehlerquellen auszuschließen.</p>

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

### Beispiel: Konfiguration einer Standard-Positions-Suche für Eingangsrechnungen

Beispiel: Überschriften-Lokator für die Spalte Menge:

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

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

<p class="callout info">Überschriften-Lokatoren für andere Überschriften sind wie auf den dargestellten Bildern, normale Lokatoren, welche bspw. via regulärem Ausdruck die Überschriften finden.</p>

<p class="callout info">Die konfigurierten Suchbegriffe können je nach Anwendungsfall entsprechend angepasst und/oder erweitert werden.</p>

<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal;">Beispiel: Verwendung der Überschriften- und Wert-Lokatoren an der Tabellenspalte Menge:</span>**<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal;">  
</span>**

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

##### <span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal;">Beispiel: Verwenden des Tabellen-Lokators an der Tabelle</span>**<span style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal;">  
</span>**

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

## Lokatoreingenschaften

### LineItemCutOff

Sollten in der Positionslesung Zeilen mit Werten erscheinen die nicht zu den Positionen des Beleges gehören, kann in der Stammdatentabelle "lineitemcutoff" eine Kombination aus Kreditor-Nr. und Schlüsselbegriff (Reg-Ex) eingetragen werden um diese zu Ignorieren. Dies kann explizit für eine Zeile geschehen oder die Auslesung der Positionen kann ab einem Bestimmten Schlüsselbegriff beendet werden.

Ein Beispiel:

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

Würde die erste Position einen ungewünschten Wert enthalten, könnte man Sie für diesen und zukünftige Belege kreditorspezifisch ausschließen. Hierzu ist ein Schlüsselwert/RegEx (in diesem Fall "XPS 15 9570") und die Kreditor-Nr. (in diesem Fall "1234567890") nötig. Diese Werte müssen nun über einen neuen Eintrag in der Stammdatentabelle "lineitemcutoff" eingetragen werden. Hierbei ist zu beachten, dass ein "X" im Feld Ausschlusszeile zu setzen ist.

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

Sollen nach einem bestimmten Begriff keine Zeilen mehr ausgelesen werden gibt es bei gleicher Vorgehensweise nur einen kleinen Unterschied. Diesmal muss im Feld Positionsende das "X" gesetzt werden. Soll die Zeile, welche den eingetragenen Begriff enthält, auch nicht ausgelesen werden und die Positionslesung danach beendet werden. Muss das "X" in beiden Feldern eingetragen werden.

Nach erneuter Extraktion des Beleges erscheinen die ausgeschlossenen Zeilen nicht mehr.