# SQUEEZE Admin-Handbuch # Systemvoraussetzungen Systemvoraussetzungen für Server und Clients # Systemvoraussetzungen des Servers Übersicht der Systemvoraussetzungen des Servers. ## Hardware / Virtual Maschine
Minimum | Empfehlung | |
---|---|---|
Betriebssystem | Linux/Windows | Linux/Windows |
CPU Takt | 2.2 GHz | 3.0 GHz |
CPU Kerne | 6 Cores | 8 Cores |
RAM | 8 GB | 16 GB |
Festplatte | HDD 7200 rpm | SSD |
Festplattenspeicher | 200 GB | 500 GB |
Netzwerk | 100 Mbit | 1000 Mbit |
OS | Version | Anmerkung |
---|---|---|
Windows | 7 | Uneingeschränkt unterstützt |
Windows | 10 | Uneingeschränkt unterstützt |
Windows | Server 2008 R2 | Uneingeschränkt unterstützt |
Windows | Server 2012 | Uneingeschränkt unterstützt |
Windows | Server 2012 R2 | Uneingeschränkt unterstützt |
Windows | Server 2016 | Uneingeschränkt unterstützt |
Ubuntu | 14.04 | |
Ubuntu | 16.04 | Uneingeschränkt unterstützt |
Ubuntu | 18.04 | Uneingeschränkt unterstützt |
Debian | 8 | |
Debian | 9 | Uneingeschränkt unterstützt |
Debian | 10 | Uneingeschränkt unterstützt |
Hersteller | Version |
---|---|
Microsoft | SQL Server 2005 |
Microsoft | SQL Server 2008 |
Microsoft | SQL Server 2012 |
Microsoft | SQL Server 2014 |
Microsoft | SQL Server 2016 |
MySQL | 5.5 - 5.7 |
MariaDB | 5.5.7 |
MariaDB | 10.0 - 10.2 |
Port | Beschreibung |
---|---|
80 | HTML Frontend und API |
443 | HTML Frontend und API (mit SSL) |
Port | Beshreibung |
---|---|
25 | SMTP für das versenden von Emails |
587 | SMTP für das versenden von Emails (mit Verschlüsselung) |
143 | IMAP um Email abzuholen |
993 | IMAP um Email abzuholen (mit Verschlüsselung) |
443 | EWS um Email abzuholen (mit Verschlüsselung) |
33?? | SAP RFC Verbindung (?? = SAP Instanznummer) |
Runtime | Version | Benötigt von |
---|---|---|
PHP | 7.3 | Server, Worker |
Java | 8 | Server, Worker |
Runtime | Version | Benötigt von |
---|---|---|
Erlang | 10.5 | RabbitMQ |
Java | In Abhängigkeit der Elasticsearch Version | Elasticsearch |
OS | Version | Anmerkung |
---|---|---|
Windows | 7 | Uneingeschränkt unterstützt |
Windows | 10 | Uneingeschränkt unterstützt |
Windows | 11 | Uneingeschränkt unterstützt |
Ubuntu | 16.04 | Uneingeschränkt unterstützt |
Ubuntu | 18.04 | Uneingeschränkt unterstützt |
Debian | 8 | Uneingeschränkt unterstützt |
Debian | 9 | Uneingeschränkt unterstützt |
Debian | 10 | Uneingeschränkt unterstützt |
Hersteller | Version | Anmerkung |
---|---|---|
Microsoft | Internet Explorer 11 | Uneingeschränkt unterstützt (bis Squeeze Version 1.12.9) |
Microsoft | Edge | Uneingeschränkt unterstützt |
Mozilla | Firefox | Uneingeschränkt unterstützt |
Chrome | Uneingeschränkt unterstützt |
Der für die Squeeze-Server Installation notwendige Installer wird von der Firma Dexpro-Solutions GmbH auf Anfrage zur Verfügung gestellt.
In Zukunft wird es ein entsprechendes Download-Portal geben, wo sowohl der Server - Installer als auch die Dateien für das Update auf die neueste Squeeze - Version heruntergeladen werden können.
##### Installation Squeeze - Server Squeeze kann auf jeder Partition eines Rechners installiert werden. Im Setup sind einige Pfade voreingestellt (D:.\\Squeeze). Für die Installations-Dokumentation wird die Server-Installation mit Version 1.5.0 auf der C:\\ Partition durchgeführt. Die Installation wird mit Doppelklick auf die Installer.exe gestartet und muss mit administrativen Benutzer-Rechten durchgeführt werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584610173568.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584610414269.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584610292189.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584610463733.png) Nachdem der Server-Installer die erforderlichen Dateien in das angegebene Verzeichnis (C:\\Squeeze) entpackt hat, startet die Installation automatisch. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584616545584.png) Nachdem das initiale Setup abgeschlossen ist, sollten geprüft werden ob alle Dienste installiert worden sind und diese bereits gestartet wurden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584616915283.png)Dienstname | Staus |
01\_SQUEEZE\_WebServer | Wird ausgeführt |
02\_SQUEEZE\_DB\_Server | Wird ausgeführt |
03\_SQUEEZE\_SearchEngine | Wird ausgeführt |
04\_SQUEEZE\_MessageQueue | Wird ausgeführt |
05\_SQUEEZE\_Worker | nicht gestartet |
Die Dienste 01 bis 04 sollten gestartet sein. Der Dienst 05 ist zu diesem Zeitpunkt nicht gestartet, dieser Dienst muss nach Abschluss der Server und - Mandanten-Konfiguration erst konfiguriert werden bis er gestartet werden kann.
##### Konfiguration Squeeze - Server Nachdem das eigentliche Server-Setup abgeschlossen ist, wird der Server konfiguriert. Dazu wird der Browser gestartet und in der Adresszeile des Browsers der gewünschte Mandanten-Name eingegeben.Es können mehrere technische Mandanten auf einem Squeeze Server konfiguriert werden. Jeder Mandant hat sein eigenes Repository und eine eigene Datenbank.
Im ausgelieferten Server-Setup ist bereits eine Lizenz für 300 Dokumente für den Mandanten localhost enthalten.
Die Mandanten-Installation für localhost wird für diese Dokumentation verwendet. Dazu wird im Browser in der Adresszeile [http://localhost](http://localhost) eingegeben. Daraufhin startet die Konfiguration des Squeeze-Servermandanten: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584627329054.png) Mit dem Button Next wird der nächste Dialog zur Konfiguration der Datenbank geöffnet, hier kann wahlweise zwischen MYSQL (MariaDB) und Microsoft SQL Server entschieden werden.Wenn MS SQL gewählt wird dann ist der Port 1433, sollte eine Instanz von MS SQL genutzt werden, dann muss der Port leer bleiben (dynamischer Port), bei MYSQL ist der Port 3306.
[](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634060002.png) In diesem Beispiel wird die ausgelieferte MariaDB genutzt. Die Felder können entsprechend angepasst werden. Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584627831788.png) Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634320436.png) - Admin Password: guest - Worker Password: squeeze Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628226160.png) Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634381073.png) - Password: squeeze Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628360769.png) Mit dem Button Next öffnet sich der nächste Dialog: Für die Demo-Installation wird kein SMTP Versand konfiguriert, da die verwendete Sandbox für die Installation keinen Internetzugang hat. Dazu wird im Feld "Use SMTP Zugang" der Wert auf False gesetzt [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634465227.png) Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628602957.png) Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628656559.png) Mit dem Button Next öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628693425.png) Mit dem Button Zur Startseite öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584628825343.png) Mit dem Button Anlegen öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634570662.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634651695.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634708894.png) Mit dem Button Jetzt Einrichten öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634786734.png) Mit dem Button Weiter öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634836804.png) Mit dem Button Weiter öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584634925708.png) API-Key: 7ce9c77c-50d5-4fd8-a707-a2f163d4b132 Mit dem Button Weiter öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584635004808.png) Mit dem Button Weiter öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584635045050.png) Mit dem Button Weiter öffnet sich der nächste Dialog: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584635082851.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584635160647.png) ##### Konfiguration des Workers C:\\SQUEEZE\\repository\\config\\worker\\config [](https://docs.squeeze.one/uploads/images/gallery/2022-06/image-1654158068385.png)Die Angabe des Servernames (FQDN) für den API Key ist Case-Sensitiv Wir empfehlen den Servernamen generell in Kleinbuchstaben zu schreiben.
# Serverinstallation Linux The following steps describe how to install on a Debian 10 server. Generally you can try to install on other Linux systems. This may work if all Squeeze dependencies like the correct PHP version, PHP modules and Apache extensions are present in your operating systems package repositories. ### Linux (Debian 10) #### 1. Prepare Debian for installation via apt Before installing Squeeze some third party applications need to be installed. Follow the steps below to install these applications.Please note that using a proxy to connect to the internet might need some additional configuration like: `export https_proxy=https://proxy.intra.net:proxy_port` or `export http_proxy=http://user:password@proxy.intra.net:proxy_port`
```shell apt update apt upgrade ``` #### 2. Install PHP 7.4 ```shell apt-get update apt-get install php7.4 php7.4-cli php7.4-common php7.4-imap php7.4-mysql php7.4-mailparse php7.4-bcmath php7.4-intl php7.4-gd php7.4-xml php7.4-xsl php7.4-mbstring php7.4-opcache php7.4-curl php7.4-zip php7.4-bz2 php7.4-soap php7.4-json php7.4-imagick libapache2-mod-php7.4 ``` #### 3. Install Apache To install Apache run the following command ```shell apt install apache2 ``` And enable the following modules ```hljs a2enmod proxy rewrite deflate filter headers ``` #### 4. Install MariaDB ```shell apt update apt install mariadb-server systemctl status mariadb ``` run the follwing command and follow the instructions to secure the installation: ```shell mysql_secure_installation ``` Create a new user for later use ```shell mysql --user=root mysql ``` ```SQL CREATE USER 'squeeze'@'localhost' IDENTIFIED BY 'secret'; GRANT ALL PRIVILEGES ON *.* TO 'squeeze'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` #### 5. Install RabbitMQ Run the following command to install RabbitMQ including the management web interface ```hljs apt-get install rabbitmq-server rabbitmq-plugins enable rabbitmq_management ``` If needed add a new user to RabbitMQ ```shell rabbitmqctl add_user username password rabbitmqctl set_user_tags username administrator rabbitmqctl set_permissions -p / username ".*" ".*" ".*" ``` #### 6. Install ElasticSearch Run the following command to install ElasticSearch ```shell nano /etc/apt/sources.list deb http://ftp.us.debian.org/debian sid main apt-get update apt install openjdk-8-jre-headless apt install gnupg2 wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-5.x.list apt update && apt upgrade apt install apt-transport-https uuid-runtime pwgen apt update apt install elasticsearch cd /usr/share/elasticsearch/bin ./elasticsearch-plugin install analysis-icu ./elasticsearch-plugin install mapper-attachments ```To be able to install the plugins behind a proxy please use the following commands:
EWS ist bei aktivierter Microsoft Exchange Server [extended protection](https://learn.microsoft.com/de-de/exchange/plan-and-deploy/post-installation-tasks/security-best-practices/exchange-extended-protection?view=exchserver-2019) nicht mehr verwendbar. In diesem Fall muss auf IMAP umgestellt werden.
### EWS BasicAuth Die BasicAuth für die Exchange Web Services wird im Oktober 2022 abgeschaltet. Aktuell ist jedoch nur diese zur Nutzung freigegeben. Um zu prüfen, ob die BasicAuth für ein System noch verfügbar ist, kann die folgende URL (ggf. Server durch den eigenen Exchange Server ersetzen) genutzt werden: ``` https://outlook.office365.com/EWS/Exchange.asmx ``` Nach dem Aufruf dieser URL erscheint ein Dialog zur Eingabe des Benutzernamens und des Passworts. Sofern diese Anmeldung erfolgreich ist und eine entsprechende Webseite angezeigt wird, ist BasicAuth verfügbar. ### EWS Verbindungstest Im Falle einer EWS Verbindung kann es hilfreich sein vorab einen Verbindungstest durchzuführen. Das gilt besonders dann, wenn es sich um einen eignen Exchange Server handelt. Der Verbindungstest kann mit der folgenden Seite durchgeführt werden: ```HTML https://testconnectivity.microsoft.com/tests/EwsTask/input ``` Auf der Seite müssen die Verbindungsdaten angegeben werden, die getestet werden sollen: [](https://docs.squeeze.one/uploads/images/gallery/2021-04/image-1617708831461.png) Sofern ein AutoDiscover für den Exchange Server eingerichtet wurde kann die Option **(1)** genutzt werden. Sollte es sich um einen eignen Exchange Server handeln für den kein AutoDiscover eingerichtet ist, dann muss die EWS Adresse manuell angegeben werden **(2)**. ### Auflistung der Konten Eine Liste der konfigurierten Konten kann über Reiter Emailkonten der Stapelklasse geöffnet werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584355051783.png) In dieser Bildschirmkopie ist zu sehen, dass zwei Konten definiert sind, die abgerufen werden sollen. In der Spalte Protokoll kann das Verfahren für den Import festgelegt werden (EWS, IMAP oder Deaktiviert). Über das [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584355769142.png) **Symbol** in der unteren Leiste können weitere Konten definiert werden. Über das [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584355927440.png) ### Neues Konto definieren [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584355644545.png) ### Shared Mailboxes abfragen Um mit einem Benutzer Zugriff auf ein Postfach zu erhalten, um damit Emails einer anderen shared mailbox abzurufen im Feld "Benutzer" zuerst den Zugriffsbenutzer eintragen und danach den shared mailbox Benutzer getrennt durch "/": Beispiel: **[benutzername@domain.de/shared-benutzername@domain.de](mailto:benutzername@domain.de/shared-benutzername@domain.de)** Beispiel mit NTLM Anmeldung: **[local.domain.net\\benutzername/mailbox@domain.de](mailto:benutzername@domain.de/shared-benutzername@domain.de)****Hinweis: Bei Verwendung von EWS müssen der "Valid" & "Error" Ordner auf oberster Ebene sein. Unterordner von z.B. "Posteingang" können nicht verwendet werden.**
### Task einrichten Damit die Emails automatisiert abgeholt werden, muss ein Task eingerichtet werden. Hier der Link zur Einrichtung des Jobs: [Email-Verarbeitung](https://docs.squeeze.one/books/squeeze-admin-handbuch/page/email-verarbeitung "Email-Verarbeitung") ### Übertragen von Standard Email Feldern Sofern beim Email Import Standard Email Felder wie Absender, Empfänger, Email Betreff ausgelesen werden sollen müssen die entsprechenden folgenden Felder technisch an jeder Dokumenten Klasse vorhanden sein:Feld-Typ | Bedeutung |
Text | Textfeld |
Date | Datumsfeld |
Amount | Betragsfeld (numerisch, 2 Nachkommastellen |
Table | Tabellenfeld |
Feld-Eigenschaft | Bedeutung |
Pflichtfeld | leere Felder werden im Webclient rot dargestellt, die Validierung ist nicht möglich solange das Feld nicht gefüllt ist |
Nur Lesen | Im Webclient kann das Feld nicht bearbeitet werden, Lokatoren können das Feld im Hintergrund füllen |
Versteckt | das Feld wird im Webclient nicht dargestellt |
Bestätigen | das Feld wird im Webclient blau dargestellt und muss vor der Validierung mit Enter bestätigt werden |
Feld-Konfiguration | Bedeutung |
Name | technischer Feldname |
Beschreibung | Anzeigenamen des Feldes |
Lokator | Auswahlfeld für bereits konfigurierte Lokatoren, die dem Feld zugewiesen werden können |
Subfield | relevant für die Endbeträge bei Eingangsrechnungen (NetAmount, TaxAmount, TotalAmount, TaxRate) |
Gruppe | Auswahlfeld mit den Gruppen dieser Dokumentenklasse (Feldgruppen -> Groups) |
Name im Zielsystem | technischer Name für die Exportschnittstelle für dieses Feld |
Lokatortyp | Bedeutung |
Regular Expression | Lokator für reguläre Ausdrücke |
KeyWord | Lokator für Schlüsselbegriffe |
Invoice Amounts | Lokator für Endbeträge und Steuersatz einer Rechnung (Nettobetrag, Bruttobetrag, Steuerbetrag und Steuersatz) |
Document Date | Lokator für Datumsangaben |
Keyword to Value | Lokator für Werte (reguläre Ausdrücke) die auf einen Schlüsselbegriff umgesetzt werden |
Value next to Keyword | Lokator für Werte (reguläre Ausdrücke) die in der Nähe eines bestimmten Schlüsselbegriffes |
Search for line items | Lokator für die Positionszeilenfindung |
Search for DB linked data | Lokator für Datenbanksuche (andere Lokatoren können als Source-Lokator angegeben werden) |
Barcode | Lokator für Barcodeerkennung |
Value from Regular Expression | Datenbanklokator für reguläre Ausdrücke (regex, result) |
Eigenschaft | Bedeutung |
Name | technischer Lokatorname |
Beschreibung | Anzeigenamen für den Lokator |
Lokator Typ | Auswahlfeld für Lokatortypen |
Wert | Auswahlfeld für Lokatorwerte (Text, Date, Amount) |
Seiten | Auswahlfeld für welche Seiten des Dokumentes der Lokator ausgeführt werden soll (Jede Seite, Erste Seite, Letzte Seite) |
ggf. Quelle | Auswahlfeld für Lokatoren, deren Ergebnismenge für diesen Lokator genutzt werden soll |
Aktiv | Auswahlfeld für die Aktivierung des Lokators (ja, nein) |
ignoriere Leerzeichen | das Suchmuster des Lokators ignoriert Leerzeichen |
Wichtig: Lokatoren können Ihr Suchmuster nur pro Textzeile finden, es gibt keine Möglichkeit mit Zeilenumbrüchen zu arbeiten.
**Mit dem Squeeze Invoice Template werden bereits verschiedene Lokatoren ausgeliefert:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583508559607.png)Wichtig: Diese Lokatoren können in jeder anderen Dokumentenklasse genutzt werden.
**Für jeden Lokator können entsprechende Ersetzungen konfiguriert werden:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583507987289.png) **Beispiele für Ersetzungen im Phone (Telefonnummer) - Lokator:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583508434759.png)Wichtig: Ersetzungen können immer nur für die Ersetzung eines Zeichens durch ein oder kein Zeichen konfiguriert werden.
# Testmodus für Lokatoren Lokatoren können mit Squeeze auf Dokumenten getestet werden. Der Squeeze - Webclient kann dafür in den "Test-Modus" umgeschaltet werden. Einfach hinter die bestehende URL im Browser folgenden Text einfügen: &debug=1. Diese Einstellung wird für Administratoren im Squeeze-Webclient in der aktuellen Browser-Session gespeichert. Nach der Umstellung auf den Testmodus stehen dem Benutzer während der Validierung von Dokumenten weitere Reiter zur Verfügung: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583511448733.png) Mit einem Klick auf den Reiter Testen öffnet sich der Testmodus. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583511568663.png) In dem grünen Auswahlfenster kann der Lokator den der Benutzer testen möchte ausgewählt werden: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583511775359.png) Nach dem der Lokator ausgewählt wurde, ändert sich die Anzeige. Auf der linken Seite wird der Testmodus für den Lokator dargestellt, auf der rechten Seite erscheint nicht mehr das Bild sondern der Konfigurationsdialog des ausgewählten Lokators. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583512323941.png) Beim Klick auf den Button Testen wird der ausgewählte Lokator ausgeführt. Nach dem die Ausführung des Lokators beendet ist erscheint ein zusätzliches Browserfenster mit Logausgaben. (das Log-Fenster kann einfach geschlossen werden) Auf der linken Seite werden jetzt die erkannten Werte in einer Liste dargestellt. Auf der rechten Seite ist wieder das Dokument zu sehen. Wenn der Benutzer nun mit der Maus über einen der Werte zeigt, wird auf der rechten Seite die Fundstelle dieses Wertes markiert. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583513547129.png) Der Benutzer kann nun wahlweise den Button Bearbeiten klicken, dann erscheint wieder der Konfigurationsdialog für den Lokator, hier kann die Konfiguration angepasst werden und der Test erneut ausgeführt werden.Besonders bei der Konfiguration eines Lokators für reguläre Ausdrücke, Schlüsselworte oder auch Positionen ist der Testmodus empfehlenswert.
Darüber hinaus gibt es im Testmodus die Möglichkeit die OCR-Textzeilen und die OCR Worte des Dokumentes anzuzeigen. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583513823594.png) Mit der Maus kann jetzt wieder auf die Textzeilen gezeigt werden, dabei wird die entsprechende OCR-Textzeile auf dem Dokument markiert. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583513969405.png) Nachdem der Benutzer einen neuen Lokator erfolgreich getestet hat, kann über den Reiter Aktionen und den Menüpunkt Ergebnis neu erstellen, das Dokument erneut verarbeitet werden, dabei wird nur die Lokatoren-Konfiguration mit den aktuellen Einstellungen angewendet.Hinweis: Bei Ergebnis neu erstellen, wird keine neue OCR-Erkennung durchgeführt, es wird lediglich die Lokatoren-Logik auf das OCR-Ergebnis neu angewendet.
# Lokator: Regular Expression **Der Lokator Regular Expression findet reguläre Ausdrücke in den OCR-Textzeilen des Dokumentes.** Das Ergebnis dieses Lokators ist das gefundene Suchmuster.Wie reguläre Ausdrücke funktionieren, ist nicht Bestandteil dieser Dokumentation, dafür gibt es im Internet sehr viele gute Beispiele und Möglichkeiten zum Testen von regulären Ausdrücken, z.B. [https://regex101.com/](https://regex101.com/)
Wichtig: Es können beliebig viele reguläre Ausdrücke konfiguriert werden, diese werden dann automatisch **oder** verknüpft gesucht.
Wichtig: reguläre Ausdrücke werden in Squeeze case insensitive gesucht, das bedeutet, Groß-Klein Schreibung muss nicht extra berücksichtigt werden.
Wichtig: Die regulären Ausdrücke werden in der Reihenfolge in der diese angelegt sind gesucht, das bedeutet für einen regulären Ausdruck der bereits gefunden wurde, kann kein weiterer, in der Liste nachfolgender regulärer Ausdruck gefunden werden.
**Klassische Beispiele für den Einsatz von Lokatoren für reguläre Ausdrücke:**Wichtig: für einige dieser regulären Ausdrücke müssen Ersetzungen konfiguriert werden
Beispiel | Wert | regulärer Ausdruck | Leerzeichen ignorieren |
IBAN | DExx xxxx xxxx xxxx xxxx xx | (DE\\d{20}) | ja |
Ust-ID | DE xxxxxxxx | ((DE)(\[1-9\]\\d{8})) | ja |
Beträge | 100,00 oder 1.000,00 | (\[-\\+\]?\[0-9\]{1,3}(\[ \]?\[,\\.\]?\[ \]?\[0-9\]{3})\*\[ \]?\[,\\.\]\[ \]?\[0-9\]{2}\[-\\+\]?(?!\[0-9.,\])) | nein |
Datum | 01.01.2020 | (\[0-9\]{1,2}\\.\[0-9\]{1,2}\\.\[0-9\]{4})|(\[0-9\]{1,2}\\.\[0-9\]{1,2}\\.\[0-9\]{2}) | ja |
Namen | Achim Redmann | (Achim Redmann) | nein |
Telefonnr. | +4940359840001 | (\[+\]?\[0-9\]{8,15}) | ja |
Emailadresse | info@dexpro-solutions.de | (\[a-zA-Z0-9\_\\-.\]{2,30}@\[a-zA-Z0-9-\]{2,30}\\.\[a-zA-Z\]{2,3}) | nein |
URL | www.dexpro-solutions.de | (www\\.\[a-zA-Z0-9-\]{2,30}\\.\[a-zA-Z\]{2,3}) | nein |
Jetzt müsste der Benutzer den neuen Lokator noch dem jeweiligen Dokumenten-Feld für die Bestellnummer zuweisen. Dies ist im Kapitel Dokumentenfelder beschrieben.
Wie die erkannte Bestellnummer gegen entsprechende Stammdaten plausibilisiert werden kann, ist in der Beschreibung für den Lokator Search for DB Link data beschrieben.
# Lokator: KeyWord **Der Lokator KeyWord findet Schlüsselwörter in den OCR-Textzeilen des Dokumentes.** Das Ergebnis dieses Lokators ist das konfigurierte Schlüsselwort.Wichtig: die Suche nach Schlüsselwörtern berücksichtigt immer nur ein Schlüsselwort.
Wichtig: Es können beliebig viele Schlüsselwörter konfiguriert werden, diese werden dann automatisch **oder** verknüpft gesucht.
Wichtig: Die Suche nach Schlüsselwörtern berücksichtigt eine gewisse Unschärfe. Im Detail bedeutet unscharf in diesem Lokator, das ein Zeichen des Schlüsselwortes abweichen kann und dennoch zu einem positiven Suchergebnis führen wird.
Wichtig: Schlüsselwörter werden in Squeeze case insensitive gesucht, das bedeutet, Groß-Klein Schreibung muss nicht extra berücksichtigt werden.
Die Anlage eines neuen Lokators für die Suche nach einem neuen Schlüsselwort, funktioniert analog zur Anlage eines regulären Ausdrucks, der Lokator Typ für die Schlüsselwortsuche ist KeyWord. # Lokator: KeyWord to Value **Der Lokator KeyWord to Value findet Schlüsselwörter in den OCR-Textzeilen des Dokumentes.**Der Unterschied zum normalen KeyWord Lokator besteht darin, das dem Schlüsselwort ein weiterer konfigurierbarer Wert zugewiesen werden muss.
Das Ergebnis dieses Lokators ist der konfigurierte Wert der dem Schlüsselwort zugeordnet ist.
Darüber hinaus gelten für die KeyWord to Value Suche alle Merkmale der normalen KeyWord Suche (siehe Lokator: KeyWord)
**Ein geeignetes Beispiel für die KeyWord to Value Suche ist z.B. die Rechnungsart.**zugewiesener Wert | mögliche Schlüsselwörter |
Rechnung | Rechnung, Anzahlungsrechnung, Invoice, Faktura, Dauerrechnung etc. |
Gutschrift | Gutschrift, Debit Note etc. |
Wichtig: Jedem Suchbegriff sollte ein Wert zugewiesen werden, da andernfalls das Lokator-Ergebnis für den Suchbegriff leer bleibt.
# Lokator: Value next to KeyWord **Der Lokator Value next to KeyWord findet Schlüsselwörter und in der Nähe des Schlüsselwortes befindliche Reguläre Ausdrücke.**In der Nähe bedeutet, der Lokator sucht rechts neben dem Schlüsselbegriff und unter dem Schlüsselbegriff nach einem passenden regulären Ausdruck.
Ein klassisches Beispiel für diesen Lokator ist die Suche nach Rechnungsnummern auf einer Rechnung. In der Konfiguration des Lokators gibt es einen Reiter für die Konfiguration der gewünschten Schlüsselbegriffe und einen Reiter für die regulären Ausdrücke. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584035734480.png)Die Konfiguration der der regulären Ausdrücke und der Schlüsselbegriffe ist analog zur Konfiguration der Lokatoren für KeyWords und des Lokators für reguläre Ausdrücke.
# Lokator: Invoice Amounts **Der Lokator Invoice Amounts findet die Endbeträge (Nettobetrag, Bruttobetrag und Steuerbetrag) und den Steuersatz einer Rechnung.**Dieser Lokator funktioniert nur in Kombination mit einem Betrags-Lokator der auf Basis regulärer Ausdrücke, numerische Werte mit 2 Nachkommastellen ermittelt. Darüber hinaus werden Stammdateninformationen zum gültigen Steuersatz benötigt.
**Die Funktionsweise dieses Lokators kann wie folgt beschrieben werden.** - Mittels des Betrags-Lokators werden zuerst alle Beträge der Rechnung gefunden - Auf der letzten Seite der Rechnung wird beginnend von unten nach oben der höchste Betrag ermittelt - In der Stammdaten-Tabelle taxrates (Steuersätze) werden mit dem Invoice Template alle europäischen Steuersätze landesspezifisch ausgeliefert - In der Stammdaten-Tabelle creditors (Bestandteil des ausgelieferten Invoice Templates) können kreditorspezifische Länderkennzeichen hinterlegt werden - Mittels des zum ermittelten Kreditor, passenden Länderkennzeichens, werden die für diese Rechnung gültigen Steuersätze ermittelt - Der Lokator Invoice Amount verwendet diese Informationen um zum höchsten gefundenen Bruttobetrag, mittels der gültigen Steuersätze, entsprechende passende Netto und Steuerbeträge zu finden.Wichtig: Diese Konfiguration funktioniert nur für einen Steuersatz. Für Rechnungen mit mehreren Steuersätzen wird es in zukünftigen Versionen entsprechende Funktionen geben. Aktuell gibt es für diese Rechnungen die Möglichkeit Endbeträge für mehrere Steuersätze kreditorspezifisch zu trainieren.
#### Konfiguration des Invoice Amounts Lokators:Voraussetzung für die Verwendung dieses Lokators ist ein Lokator für die Betragsfindung aufgrund regulärer Ausdrücke. Dieser Lokator wird mit dem Invoice Template ausgeliefert.
weitere Voraussetzungen sind die Stammdatentabellen taxrates und creditors. Beide Stammdatentabellen werden mit dem Invoice Template ausgeliefert.
[](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583773242111.png) Im Feld ggf. Quelle wird der konfigurierte Betragslokator hinterlegt. **Alternative Endbetragsermittllung für Rechnungen:** Da es vorkommen kann das einige Rechnungen die für die Endbetrags-Ermittlung notwendigen Werte (Brutto, Netto und Steuerbetrag) nicht enthalten (z.B. Rechnungen im Baugewerbe), kann für diese Rechnungen alternativ, die Endbetrags-Ermittlung nach dem Prinzip der Keyword-Suche konfiguriert werden. Für diese Konfiguration sind 3 weitere Keyword-Lokatoren (Nettobetrag, Bruttobetrag und Steuerbetrag) anzulegen. Diese Lokatoren sollten die gewünschten Schlüsselworte für die gesuchten Beträge finden. Diese Lokatoren können dann im Reiter Endbeträge entsprechend hinterlegt werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583774708763.png) #### Konfigurierbare Steuersätze je Land Seit der SQUEEZE Version 1.8.0 existiert eine weitere Möglichkeit zur Konfiguration dieses Lokators. Auf Grund der Mehrwertsteueranpassung zum 01.07.2020 wurde die Möglichkeit geschaffen, die gültigen Mehrwertsteuersätze je Land in der **Stammdatentabelle (taxrates)** zu hinterlegen. Hinzu kommt die Möglichkeit, der Betragserkennung mitzugeben, für welches Land gerade eine Betragserkennung durchgeführt werden soll bzw. welche Mehrwertsteuersätze zu nutzen sind. Das Land bzw. die Mehrwertsteuersätze können je Beleg variieren, daher kann unter dem neuen Reiter **Einstellungen** hinterlegt werden, in welchem Feld (**TaxCountryField**) das Länderkürzel steht, welches zur Ermittlung der Steuersätze genutzt werden soll. Sollte kein Land ermittelt worden sein, kann ein Standard Ländercode festgelegt werden (**DefaultTaxCountry**), welcher verwendet wird, um die Steuersätze zu ermitteln. Hier ein Beispiel: [](https://docs.squeeze.one/uploads/images/gallery/2020-06/image-1592885178367.png) # Lokator: Document Date **Der Lokator Document Date findet das erste Datum auf einer Dokumentenseite, von oben beginnend.**Dieser Lokator kann nur mittels eines weiteren Lokators basierend auf der Suche nach regulären Ausdrücken genutzt werden. Für diesen Lokator sollten entsprechende reguläre Ausdrücke konfiguriert sein.
Im Squeeze Invoice-Template wird ein Lokator mit verschiedenen regulären Ausdrücken zur Datums-Suche ausgeliefert. Dieser Lokator (Dates) wird dann als Quelle für den Beleg-Datums-Lokator genutzt. **Konfiguration des Dates-Lokators:** Allgemeine Eigenschaften: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584036662097.png) **reguläre Ausdrücke für den Date-Lokator:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584036796536.png) **Konfiguration des Beleg-Datum-Lokators:** Der Datums-Lokator wird als Quelle für den Beleg-Datums Lokator eingetragen. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584036873963.png) # Lokator: Search for DB linked data **Der Lokator Search for DB linked data findet auf Basis weiterer Lokatoren-Ergebnisse, Einträge in Datenbanken.**Ein klassisches Beispiel für die Verwendung dieses Lokators ist die Kreditorsuche bei Eingangsrechnungen.
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.Der Lokator für die Suche nach Kreditoren mittels Datenbanksuche ist Bestandteil des ausgelieferten Invoice Templates.
##### **Konfiguration des DB Link Locators** Die Konfiguration wird analog zu allen anderen Lokatoren durchgeführt. Der Lokator Typ für diesen Lokator ist Search for DB linked data. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584095013318.png) **Unter dem Reiter Datenbanksuche wird die Datenbank-Suche konfiguriert:** Diese Konfiguration wird am Beispiel der Kreditor-Suche erläutert. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584095390109.png) - Im oberen Teil der Konfiguration wird die Stammdaten-Tabelle für Kreditoren im Feld **Tabelle** ausgewählt. - Im Feld **Spalte** kann die Datenbank-Spalte dieser Tabelle für das Ergebnis der Datenbank-Suche ausgewählt werden. - In diesem Beispiel soll als Lokator-Ergebnis die Kreditor-Nummer zurückgegeben werden. Im unteren Tabellen-Bereich der Konfiguration werden die Source-Lokatoren für die Kreditor-Suche konfiguriert.Source Lokator (Quell-Lokator) | DB-Spalte der ausgewählten DB | Stop-Kennzeichen |
UstId (Lokator für die Ermittlung von Umsatzsteuer-IDs) | EUTaxId | Nein |
IBAN (Lokator für die Ermittlung von IBANs) | IBAN | Nein |
Email (Lokator für die Ermittlung von Emails) | Nein | |
URL (Lokator für die Ermittlung von URLs) | Webpage | Nein |
Phone (Lokator für die Ermittlung von Telefonnummern) | Phone | Nein |
Phone (Lokator für die Ermittlung von Telefaxnummern) | Fax | Nein |
Die Such-Ergebnisse der Source-Lokatoren werden in der DB-Spalte der entsprechenden Datenbank gesucht und der Wert der Ergebnis-Spalte zurückgegeben.
Die Reihenfolge wie die Ergebnisse der Source-Lokatoren in der Datenbank gesucht werden, kann in der Liste via Drag & Drop geändert werden. Der oberste Eintrag wird zuerst gesucht, der unterste Eintrag zuletzt.
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.
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 können weitere Lokatoren die bereits konfiguriert sind, ausgewählt und hinzugefügt werden.** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584114112306.png) - das Locator Feld ist ein Auswahlfeld mit allen Lokatoren die konfiguriert sind - das Feld DB Column gibt an in welcher Datenbankspalte das Lokatorergbnis in der Tabelle gesucht werden soll - für das Feld Stop kann entweder ja oder nein ausgewählt werden. ##### Eine weitere Verwendungsmöglichkeit dieses Lokators ist die Plausibilisierung entsprechender Lokator-Ergebnisse gegen Datenbankeinträge. So könnte man zum Beispiel mittels: - regulärer Ausdrücke - KeyWords - Value next to KeyWord-Suche folgende beispielhafte Merkmale auf dem Dokument ermitteln: - Bestell-Nummern, - Lieferschein-Nummern, - Auftrags-Nummern, - Mandanten-Namen und diese dann gegen geeignete Datenbankinformationen plausibilisieren. Dazu wird das Lokator - Ergebnis in der entsprechenden Datenbanktabelle gesucht und diese Datenbankspalte auch als Ergebnis-Spalte konfiguriert. Mittels dieser Konfiguration werden als Ergebnis nur Einträge die auch in der Datenbank gefunden werden zurückgegeben. ##### **Beispiel für Datenbank-Plausibilisierung**In dem abgebildeten Beispiel, wird die mittels eines regulären Ausdrucks ermittelte Bestellnummer, gegen eine Datenbank mit entsprechenden Bestellnummern plausibilisiert.
**Lokator für Erkennung der Bestellnummer (10-stellig numerisch) mittels regulärem Ausdruck:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584115622290.png) **Lokator für die Plausibilisierung der erkannten Bestellnummer gegen eine Datenbank:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584115295926.png) # 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.Die Suche nach Positionen ist im ausgelieferten Invoice-Template bereits konfiguriert.
Die Positions-Suche in Squeeze benötigt entsprechende Lokatoren mit deren Hilfe die Spaltenüberschriften der Positions-Tabelle gefunden werden.
##### **Konfiguration einer Standard-Positions-Suche für Eingangsrechnungen:** Die Lokatoren für die Suche nach Spaltenüberschriften können als KeyWord to Value konfiguriert werden. **Konfigurations - Beispiel für den Lokator der Spalte Menge:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118313531.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118354639.png) **Konfigurations - Beispiel für den Lokator der Spalte Einzelpreis:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118421973.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118443440.png) **Konfigurations - Beispiel für den Lokator der Spalte Positionsgesamtpreis:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118480882.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118517068.png)Die konfigurierten Suchbegriffe können je nach Anwendungsfall entsprechend angepasst und/oder erweitert werden.
**Diese Lokatoren können in der Konfiguration für das Positions-Tabellenfeld hinterlegt werden.** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118751285.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118773429.png) **Mit einem Doppelklick auf die Positions-Spalte Quantity (Menge) öffnet sich der Konfigurationsdialog für dieses Spaltenfeld:** In dem Feld Überschriften Lokator wird der entsprechend konfigurierte Lokator für die Erkennung der Mengen-Überschriften hinterlegt. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118931501.png) Nachdem für alle Spalten der Positions-Tabelle des Positionsfeldes, der entsprechende Überschriften Lokator konfiguriert worden ist, muss auf dem Reiter Allgemein für das Positionsfeld im Feld Lokator noch der Positions-Lokator konfiguriert werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584124350130.png) # 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.Die Suche nach Positionen ist im ausgelieferten Invoice-Template bereits konfiguriert.
Die Positions-Suche in Squeeze benötigt entsprechende Lokatoren mit deren Hilfe die Spaltenüberschriften der Positions-Tabelle gefunden werden.
##### **Konfiguration einer Standard-Positions-Suche für Eingangsrechnungen:** Die Lokatoren für die Suche nach Spaltenüberschriften können als KeyWord to Value konfiguriert werden. **Konfigurations - Beispiel für den Lokator der Spalte Menge:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118313531.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118354639.png) **Konfigurations - Beispiel für den Lokator der Spalte Einzelpreis:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118421973.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118443440.png) **Konfigurations - Beispiel für den Lokator der Spalte Positionsgesamtpreis:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118480882.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118517068.png)Die konfigurierten Suchbegriffe können je nach Anwendungsfall entsprechend angepasst und/oder erweitert werden.
**Diese Lokatoren können in der Konfiguration für das Positions-Tabellenfeld hinterlegt werden.** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118751285.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118773429.png) **Mit einem Doppelklick auf die Positions-Spalte Quantity (Menge) öffnet sich der Konfigurationsdialog für dieses Spaltenfeld:** In dem Feld Überschriften Lokator wird der entsprechend konfigurierte Lokator für die Erkennung der Mengen-Überschriften hinterlegt. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584118931501.png) Nachdem für alle Spalten der Positions-Tabelle des Positionsfeldes, der entsprechende Überschriften Lokator konfiguriert worden ist, muss auf dem Reiter Allgemein für das Positionsfeld im Feld Lokator noch der Positions-Lokator konfiguriert werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584124350130.png) # Stammdaten # Stammdaten Stammdaten dienen in Squeeze zur Erkennung und Plausiblisierung von Merkmalen auf den jeweiligen Dokumententypen. Stammdaten werden in Squeeze in der Datenbank als Tabelle angelegt. Dabei können beliebig viele unterschiedliche Spalten konfiguriert werden. Es können unbegrenzt viele Stammdatentabellen angelegt werden. **Klassische Beispiele für Stammdatentabellen:** - Kreditoren - Bestellnummern - Mandanten - Auftragsnummern - Vertragsnummern - ... Squeeze kann die auf dem Dokument gefundenen Merkmale in den Stammdaten plausiblisieren und / oder auf zugehörige Werte umsetzen. **Die Stammdaten können auf verschiedene Art und Weise aktualisiert / gepflegt werden:** - intervallgesteuerter CSV-Import - Webservice - Datenbankscript - manuelle Stammdatren-Erweiterung über den Squeeze-Webclient # Anlegen einer neuen Stammdatentabelle im Webclient das Anlegen einer neuen Stammdatentabelle in Squeeze muss initial via CSV-Upload aus dem Webclient erfolgen. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583422907324.png) Beim Klick auf den Reiter Stammdaten öffnet sich der Dialog für die Stammdatenkonfiguration. Folgende Stammdatentabellen werden aktuell mit dem Invoice Template ausgeliefert. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583423052577.png) Eine neue Stammdatentabelle wird über das + Symbol angelegt. Im nächsten Dialog wird der technische Name und der Anzeigenamen angegeben. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583423151188.png) # Konfiguration und Initialisieren einer neuen Stammdatentabelle via CSV-Upload Im Webclient wird die Konfiguration der Spalten für diese Stammdatentabelle durchgeführt. ### Stammdateneigenschaften Mit einem Doppelklick auf den Eintrag in der Liste öffnet sich der Konfigurationsdialog für die Stammdatentabelle. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583423584613.png) ### Spaltenkonfiguration Zuerst werden die Spalten konfiguriert. Beim Klick auf den Reiter Spalten öffnet sich der Dialog zum Konfigurieren der Tabellenspalten. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583423674420.png) Mit dem + Symbol können neue Spalten hinzugefügt werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583423961246.png) Hier werden folgende Informationen benötigt:Eigenschaft | Beschreibung |
Name | Technischer Name für der Datenbankspalte |
Beschreibung | Anzeigenamen für der Datenbankspalte |
Quelle | externer Spaltenname (z.B. die Spaltenüberschrift in einer CSV-Datei) |
Jede Stammdatentabelle in Squeeze benötigt mindestens eine ID-Spalte.
Es können dann beliebig viele eigene Spalten definiert werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583427009033.png) Test-Tabelle mit id-Spalte + 2 weitere Spalten: [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583427138190.png)Nachdem die Spalten konfiguriert sind, wird eine CSV-Datei benötigt um die Tabelle auf dem Datenbankserver initial zu erstellen.
Die CSV Datei muss die selben Überschriften enthalten, wie in der Spaltenkonfiguration unter Quelle angegeben worden ist. Die Reihenfolge der Überschriften spielt keine Rolle.
WICHTIG: die Schreibweise der Spaltenüberschriften in der CSV-Datei ist case-sensitive. Das bedeutet Groß-Kleinschreibung ist relevant.
**CSV-Datei Beispiel für die obige Tabelle:** [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583510696508.png) Für die Werte-Zeilen müssen keine ID´s angegeben werden. Die ID Spalte ist eine Auto-Inkrement Spalte und erzeugt eigene fortlaufende ID´s beim Upload. Nachdem die CSV-Datei erstellt wurde kann die Initialisierung der neuen Stammdatentabelle erfolgen mit einem Klick auf den Reiter Update. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583424647584.png) Im sich daraufhin öffnenden Dialog wird der Pfad zur CSV-Datei angeben, der Dateityp und der verwendete Spaltentrenner. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583424784439.png) Mit einem Klick auf den Update Button wird die neue Stammdatentabelle angelegt und die Werte aus der CSV-Datei (falls angegeben) werden eingetragen. Die übergeben Werte können mit einem Klick auf den Reiter Daten geprüft werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583432087455.png) Nach einem Upload werden die Werte nicht sofort angezeigt, in diesem Fall kann man die Aktualisierung über folgendes Symbol in der Symbolleiste am unteren Bildschirmrand ausführen. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583427622989.png) ### Daten hinzufügen Mit dem Webclient können manuell mit dem + Symbol weitere Werte hinzugefügt werden. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583427730417.png) Den neuen Datensatz mit dem Speichern Button bestätigen. [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1583432151735.png) # Intervall-gesteuerte Aktualisierung der Stammdaten mittels CSV-Upload Die Daten in Stammdatentabellen können jederzeit via CSV-Upload upgedatet werden. Im Hintergrund wird dabei eine neue Stammdatentabelle erstellt wodurch während der Aktualisierung die Ursprungstabelle weiterhin zur Verfügung steht. Zum Ende der Aktualisierung wird die Ursprungstabelle durch die aktualisierte Tabelle ersetzt. # Jobs Zeitlich gesteuerte Aufgaben # Email-Verarbeitung Um regelmäßig auf neue Emails zu prüfen, muss eine geplante Aufgabe eingerichtet werden. Unter Windows können dafür die geplanten Tasks genutzt werden. Unter Linux erfolgt die Einrichtung mit Hilfe von cron Jobs. ### Einrichtung unter Windows Unter Windows kann ein geplanter Task zur Regelmäßigen Prüfung der konfigurierten Postfächer genutzt werden. Um einen neuen Task einzurichten müssen folgende Schritte durchgeführt werden: #### 1. Aufgabenplanung öffnen Es kann eine eigener Unterordner für Squeeze aufgaben erstellt werden, wenn dies gewünscht ist [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346136560.png) Auf der rechten Seite kann über den Menüpunkt "Aufgabe erstellen..." die Aufgabe für den Import der Emails angelegt werden. #### 2. Aufgabe erstellen [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346394020.png) Der Name und die Beschreibung ist natürlich frei wählbar. Damit die Aufgabe unabhängig von der Anmeldung eines Benutzers ausgeführt wird und auch unabhängig von eventuellen Passwortänderungen ist, hat sich bewährt, das **System Konto** auszuwählen. Die Aufgabe "mit höchsten Privilegien" zu starten hat sich ebenfalls bewährt. #### 3. Trigger/Zeitpunkt festlegen [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584346802279.png) Das Intervall in dem die Emails abgerufen werden sollen ist ebenfalls frei definierbar. Bewährt hat sich ein Intervall von 5 Minuten im Produktivsystem. Für Testsysteme kann dieser Intervall natürlich auch kleiner gewählt werden, wenn schnell und viel getestet werden soll. #### 4. Aktion festlegen [](https://docs.squeeze.one/uploads/images/gallery/2020-03/image-1584347128210.png) Als Programm muss die php.exe der Squeeze Installation ausgewählt werden. Als Argumente müssen zwei Werte angegeben werden: - - Pfad zur EmailProcessing.php z.B. **C:\\SQUEEZE\\htdocs\\jobs\\EmailProcessing.php** - - Mandant für den die Emails abgerufen werden sollen z.B. **client.squeeze.net** Die vollständige Angabe der Argumente lautet also wie folgt: **C:\\SQUEEZE\\htdocs\\jobs\\EmailProcessing.php client.squeeze.net** # Datenbank Backup und Restore ### Backup Das sichern der SQUEEZE Datenbank(en) ist ein wichtiger Punkt der Administration. Um Sicherzustellen, dass im Fehlerfall nicht alle Daten verloren gehen, muss eine regelmäßiges Backup der Datenbanken durchgeführt werden. Für MariaDB und MySQL kann folgender Befehl genutzt werden: ```shell D:\SQUEEZE\mariadb\bin\mysqldump.exe --user=root --password="" --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --databases "datenbankname" --result-file="D:\Squeeze\Backup\datenbank.sql" ``` Der Schalter `--databases` ist nicht nur für die Selektion der Datenbank verantwortlich, sondern steuert ebenfalls, ob ein **Create Statement des Schemas** in den dump exportiert werden soll. Soll das Create Statement nicht erstellt werden, muss der Schalter `--databases` entfernt werden. ##### Backup aller Datenbanken Um alle Datenbanken eines Servers zu sichern kann der folgende Befehl genutzt werden ```shell mysqldump --user=root --password="" --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --routines --events --all-databases --result-file="D:\Squeeze\Backup\alle_datenbank.sql" ``` Entscheidend ist der Schalter `--all-databases` Dieser Schalter erfordert keine weiteren Parameter. Die Aufgabe des Backups sollte zeitlich geplant werden. Dazu kann die Aufgabenplanung des Betriebssystems genutzt werden. Die Parameter sind natürlich entsprechend der Installation anzupassen. ### Restore Um eine Datenbank aus einer Sicherung wiederherzustellen kann dieser Befehl genutzt werden:Sollte die Datenbank bereits bestehen, werden hiermit alle vorhandenen Daten mit denen des Backups überschrieben.
```shell D:\SQUEEZE\mariadb\bin\mysql.exe -u root -p "datenbankname" < "D:\Squeeze\Backup\datenbank.sql" ```Da jeder Mandant seine eigene Datenbank hat, ist die Aufgabe je Mandant/Datenbank zu planen.
# Exportschnittstellen # Otris Documents SOAP Eine der wohl am häufigsten genutzten Schnittstellen in Verbindung mit Squeeze ist die Otris Documents SOAP Schnittstelle. Diese Schnittstelle bietet die Möglichkeit bidirektional mit dem Documents System zu interagieren. ### Konfiguration Um ein Documents System per SOAP anzusprechen und Aktionen auszuführen, muss an der Squeeze Dokumentenklasse ein Export definiert werden: [](https://docs.squeeze.one/uploads/images/gallery/2020-04/image-1587535225375.png) [](https://docs.squeeze.one/uploads/images/gallery/2020-04/image-1587535528053.png) Beim Speichern der Konfiguration wird versucht eine Verbindung zum Server herzustellen. Gelingt dieser Verbindungsaufbau nicht erscheint die Fehlermeldung in einem neuen Dialog, wie hier zu sehen ist: [](https://docs.squeeze.one/uploads/images/gallery/2020-04/image-1587535684958.png) Wenn die Verbindung jedoch hergestellt werden konnte, wird die Konfiguration zu den definierten Exportschnittstellen hinzugefügt. ### Fehler wenn keine Internetverbindung besteht Die mit Documents ausgelieferte WSDL verweist auf ein Schema, welches bei W3C liegt. Sollte keine Internetverbindung bestehen, führt das zu einem Fehler, da das Schema nicht geladen werden kann. Um diesen Fehler zu umgehen und auf eine Interverbindung verzichten zu können, kann folgender Workaround genutzt werden: #### Sicherung der WSDL erstellen Im Soap Server Verzeichnis von Documents sollte eine Sicherung der Originalen WSDL erstellt werden: [](https://docs.squeeze.one/uploads/images/gallery/2021-04/image-1617723830297.png) #### Verweis zum Schema anpassen in der DOCUMENTS.wsdl muss nun der Verweis so angepasst werden dass auf eine xsd verwiesen wird, die im lokalen netzwerk erreichbar ist. Am einfachsten ist hier, auf den Documents Server selbst zu verweisen (z.B. mittels IP des Documents-Servers) [](https://docs.squeeze.one/uploads/images/gallery/2021-04/image-1617723990498.png) Die `xop.xsd` muss nun noch im public root Verzeichnis des Documents Servers abgelegt werden, damit diese auch für Squeeze erreichbar ist. Sobald diese Schritte erfolgt sind, sollte der Verbindungsaufbau mit Documents möglich sein. # SharePoint API Diese Schnittstelle bietet die Möglichkeit bidirektional mit dem SharePoint System zu interagieren. ### Kompatibilität - SharePoint Online - SharePoint On-Premises (2013-2019) ### Konfiguration Um ein Sharepoint System per REST/OData anzusprechen und Aktionen auszuführen, muss an der Squeeze Dokumentenklasse ein Export definiert werden: [](https://docs.squeeze.one/uploads/images/gallery/2021-02/image-1613569319628.png) #### Authentifizierung Meist wird als Authentifizierungsart die Benutzerauthentifizierung genutzt: [](https://docs.squeeze.one/uploads/images/gallery/2021-02/image-1613569510547.png) Beim Authentication Type ist "Benutzer" auszuwählen und die Felder "Benutzername" sowie "Passwort", eines Benutzers der dem SharePoint System bekannt ist, auszufüllen. Die Felder "ClientId" sowie "Client Secret" sind nur bei dem Authentication Type "App" relevant. #### Entität Um in das System zu exportieren, muss zunächst die Entität bestimmt werden, in welche exportiert werden soll: - Dokumentenbibliothek? - Liste? Nachdem dies ausgewählt wurde, kann im Feld "Entity ID" die entsprechende Liste oder Dokumentenbibliothek angegeben werden in der letztendlich der Export stattfindet. Für Dokumentenbibliotheken muss der technische Name angegeben werden, bei Listen der Anzeigename. [](https://docs.squeeze.one/uploads/images/gallery/2021-02/image-1613570041538.png) ##### Dokumentenbibilothek Für die Dokumentenbibliotheken gibt es noch zwei weitere Einstellungen. Export Folder Structure gibt den Pfad in der Dokumentenbibliothek an, in den exportiert werden soll. Dieser kann dynamisch aus Feldwerten der Felder der jeweiligen Dokumentenklasse angegeben werden. Hierzu in dem Feld den Pfad von links nach rechts mit Feldern der Dokumentenklasse auswählen: [](https://docs.squeeze.one/uploads/images/gallery/2021-02/image-1613570206614.png) Die letzte Einstellungsmöglichkeit gibt an, ob SQUEEZE den Export-Pfad erstellen soll, falls dieser nicht vorhanden ist. Ist der Pfad nicht vorhanden und SQUEEZE soll diesen nicht erstellen, wird ein Fehler beim Export eines Vorgangs durch den SharePoint zurückgegeben. #### Feldwerte exportieren Mit den Namen im Zielsystem (externe Feldnamen) können die Spalten eines Listeneintrages bzw. weitere Spalten/Details eines Eintrags einer Dokumentenbibliothek angegeben werden. [](https://docs.squeeze.one/uploads/images/gallery/2021-02/image-1613570520380.png) Diese können in der Dokumentenklasse bei den Feldern angegeben werden. #### Positionen exportieren Jedes "Table"-Feld (in dem Beispiel die "LineItems") kann als JSON exportiert werden, wenn ein Zielname definiert wurde. Dabei muss das Zielfeld mehrzeilig sein. #### Reservierte Zielnamen Der reservierte Zielname "ContentTypeID" gibt das SQUEEZE Feld an, welches den Inhaltstyp des exportierten Vorgangs angibt. Hier reicht es, den Namen anzugeben, SQUEEZE holt sich die ID selbst vom SharePoint. Hierbei handelt es sich um die globalen Inhaltstypen (Root) des SharePoints. # Benutzer und Rollen # Rollenfilter & Feldbedingungen ## Rollenfilter Rollenfilter (im Folgenden kurz "Filter") gehören zum Autorisierungskonzept von SQUEEZE und unterstützen bei feldbasierter Authorisierung von Dokumenten. Mittels Filtern ist es möglich für unterschiedliche Benutzergruppen andere Dokumente (auch innerhalb einer Dokumentenklasse) zu berechtigen. - - - - - - ### Konfiguration Jeder Rolle können beliebig viele Filter hinzugefügt werden. Ein Filter steht im Bezug zu einer Dokumentenklasse und berechtigt den Zugriff (lesend & schreibend) auf alle Dokumente dieser Klasse. ### Auswertung Rollenfilter werden mit einem **logischen Oder** ausgewertet. D. h., wenn einer Rolle mehrere Filter zu der selben Dokumentenklasse zugeordnet sind, dann reicht bereits eine positive Auswertung des ersten Filters (und seiner [Feldbedingungen](#bkmrk-feldbasierte-berecht)) aus, um Zugriff auf das Dokument zu erhalten. Dieses Verhalten gilt auch dann, wenn ein Benutzer Mitglied mehrerer Rollen mit wiederum diversen Filtern ist. **Zusammengefasst:** Ein Benutzer erhält Zugriff auf ein Dokument, sobald mindestens eine seiner Rollen über einen Rollenfilter den Zugriff gewährt. ## Feldbedingungen Soll nur auf eine Teilmenge der Dokumente einer Dokumentenklasse berechtigt werden, können Rollenfilter um Feldbedingungen ergänzt werden. Diese erlauben die Filterung von Dokumenten auf Basis ihrer Feldwerte. ### Konfiguration An einem Filter können beliebig viele Feldbedingungen definiert werden. Eine Bedingung ist zusammengesetzt aus: - Dem Feld dessen Inhalt geprüft werden soll - Dem Kompartor, der zur Prüfung genutzt wird - Dem Vergleichswert (kann von einigen Komparatoren ignoriert werden)Aktuell können nicht alle konfigurierbaren Filter korrekt ausgewertet werden. Die Filterung auf ein Textfeld mit einem "Größer als" Komparator (bspw. "Lieferantenname größer als 20") würde zu einem Suchfehler führen. Die Konfiguration solcher Filter ist zwar (noch) möglich, sollte aber vermieden werden.
SQUEEZE 1 unterstützt mehr Komparatoren als SQUEEZE 2. Sollten Sie einen Komparatoren nutzen, der nicht mehr unterstützt wird, kontaktieren Sie bitte den Support, wenn Sie migrieren möchten.
### Auswertung Feldbedingungen werden anders als Rollenfilter mit einem **logischen Und** verknüpft ausgewertet. Es müssen also alle Bedingungen erfüllt sein, damit ein Rollenfilter den Zugriff auf ein Dokument gewährt. ### Zusammenspiel mehrerer Rollenfilter Wenn für einen Benutzer mehrere Rollenfilter (mit wiederum diversen Feldbedingungen) ausgewertet werden, dann spielen Rollenfilter **ohne** Feldbedingungen keine Rolle mehr und werden ignoriert. **Ein Beispiel:** - Eine Rolle hat zwei Filter. Der erste Filter hat keine Feldbedingungen. Der zweite Filter hat eine Feldbedingung. - Bei der Auswertung dürfen Nutzer der Rolle nur Dokumente sehen, die durch den zweiten Filter freigegeben werden. ### Zusammenspiel mit vererbten Rollen Ist ein Nutzer Mitglied mehrerer Rollen ([durch explizite Zuordnung oder Rollen-Vererbung](https://docs.squeeze.one/books/squeeze-admin-handbuch/page/rollen "Rollen")), so werden Rollenfilter und Feldbedingungen dieser Rollen bei der Auswertung berücksichtigt. # Rollen ## Rollen Rollen können genutzt werden, um den Dokumentenzugriff zu verwalten und die Verwendung von Funktionen wie Benutzerverwaltung zu authorisieren. Das zugrundeliegende Authorisierungskonzept ist [RBAC](https://de.wikipedia.org/wiki/Role_Based_Access_Control). ### Konfiguration Es können beliebig viele Rollen angelegt werden. Jede Rolle verfügt über einen Namen und eine Beschreibung. Außerdem muss **jeder** Rolle eine Eltern-Rolle zugeordnet werden. Durch diese Zuordnung entsteht eine Rollenhierarchie, welche bspw. genutzt werden kann, um Organisationsstrukturen abzubilden. ### Benutzerzuordnung & Vererbung Ein Benutzer kann zu beliebig vielen Rollen hinzugefügt werden. **Der zugeordnete Benutzer ist implizit Mitglied aller Sub-Rollen der zugeordneten Rolle.** Diese Vererbung forciert, dass Berechtigungen von Sub-Rollen auf die Eltern-Rolle übertragen werden. Mehr dazu im Abschnitt [Rollenfilter & Feldbasierte Berechtigung](https://docs.squeeze.one/books/squeeze-admin-handbuch/page/rollenfilter-feldbasierte-berechtigung "Rollenfilter & Feldbasierte Berechtigung") # SQUEEZE Admin FAQ # Wie können alle Dokumente gelöscht werden? Während einer Testphase kann es nötig sein alle Dokumente eines Systems löschen zu wollen/müssen. Für diese Anforderung gibt es **ab der Version 1.8.0** eine API Funktion: [](https://docs.squeeze.one/uploads/images/gallery/2020-06/image-1591683988871.png) Diese Funktion kann nur von Benutzer der Gruppe **root** durchgeführt werden. Des Weiteren wird ein Passwort benötigt, welches beim Support angefragt werden kann. # Neue Seite # Aufgabe: Periodischer Worker Neustart Für einen periodischen Neustart des Workers benötigen wir folgendes Script, welches als ".bat" gespeichert wird.