Adressbuch Connector für SQL-Datenbanken

End of life

*** Diese Lösung steht nur bis STARFACE 6.7.3.* zur Verfügung. Kunden mit Modulupdatevertrag erhalten einen Zugang zum modernen Nachfolger www.sync.blue ***



Die Downloads finden Sie auf folgender Seite: http://support.starface.modul-manufaktur.de/x/EYAt 


Systemanforderungen

Getestete SQL-Server

  • PostgreSQL (auch PSQL oder Postgres genannt)
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • Pervasive SQL
  • SAP HANA

SQL

Zum Abgleich von Kontaktdaten mit einem der oben gelisteten SQL-Server sind folgende Voraussetzungen zu erfüllen:

Eine SQL-Tabelle oder View mit den abzugleichenden Kontaktdaten.

Ein autorisierter Benutzer-Account, der das Recht hat, die abzugleichende Tabelle/View auszulesen.

Server befindet sich im gleichen Netzwerk, bzw. ist vom Netzwerk der STARFACE aus erreichbar.

Eine Tabelle/View, die zu jedem Kontakt ein eindeutiges Identifikationsmerkmal aufweist (siehe Abschnitt 2 - Hilfestellung SQL-View).

Hilfestellung SQL-View

Eine SQL-View (Sicht) ist nichts weiter als eine künstliche Tabelle innerhalb eines Datenbanksystems. Sie unterscheidet sich in soweit von "echten" Tabellen, als dass in ihr keine neuen Datensätze angelegt werden können. Sie dient, wie der Name sagt, dem Zweck, eine einfache Sicht auf eine eventuell komplexere Datenstruktur zu bieten. Eine Sicht ist dann hilfreich, wenn die Kontaktdaten z.B. über mehrere Tabellen verteilt sind. Da das Modul Addressbuch fuer Exchange und SQL Datensätze nur aus einer einzigen Tabelle/View abgreift, kann eine View bei der Bereitstellung der Kontaktdaten hilfreich sein.


Was muss ich beachten?

Beim erstellen der View ist auf jeden Fall zu beachten, dass jeder Kontakt, also jede Zeile der View, ein eindeutig identifizierbares Merkmal aufweist. In der Regel nennt man ein solches Merkmal ID. Hier ein Beispiel:

IDfirst_namelast_namecompany_namephonephone_homephone_mobileemail
1JohnDoeGlobal Ltd.+49 123 123456+49 234 234567+49 345 345678john@doe
2JaneRoeGlobal Inc.+49 456 456789+49 567 567890+49 678 678901jane@roe


Dieses eindeutige Identifikationsmerkmal muss nicht zwingend inkrementell numerisch (ansteigende Ganzzahl) sein. So kann die ID auch folgende Form haben:

GUIDfirst_namelast_namecompany_namephonephone_homephone_mobileemail
a1e9baac-b551-11e6-80f5-76304dec7eb7JohnDoeGlobal Ltd.+49 123 123456+49 234 234567+49 345 345678john@doe
b1e9bdb8-a65b-80f6-40f5-a6304dac44abJaneRoeGlobal Inc.+49 456 456789+49 567 567890+49 678 678901jane@roe

Es ist einzig und allein entscheidend, dass eine ID vorhanden ist. Es ist für das Modul auch nicht weiter wichtig, wie der Name der Spalte lautet. So kann die Spalte etwa, wie hier im Beispiel, 'ID' oder auch 'GUID', aber auch jeden anderen beliebigen Namen tragen. Der Name der Spalte wird in der Modulkonfiguration hinterlegt und kann somit frei gewählt werden. Wichtig ist nur, dass eine solche Spalte in der Tabelle/View existiert.


Wie erstelle ich eine View?

Wie bereits erwähnt, stellt eine View eine (vereinfachte) "Sicht" auf eine vorhandene Datenstruktur dar. Im folgenden Beispiel gehen wir von einer einfachen Tabelle mit dem Namen 'contacts' aus.

Tabelle 'contacts':

IDfirst_namelast_namephone_officeemployee_iddepartment_id
1JohnDoe+49 123 123456id_abab23af23-01
2JaneRoe+49 234 234567id_cbcb42af42-04

In der oben abgebildeten Tabelle befinden sich neben den für den Adressbuchabgleich relevanten Daten (ID, first_name, last_name, phone_office) auch die Mitarbeiter- und Abteilungs-Nummer (employee_id, department_id).
Exemplarisch soll nun eine View mit dem Namen 'contacts_view' erzeugt werden, die nur die Daten ID, first_name, last_name und phone_office wiedergibt.

Beim erstellen einer einfachen View sind keine syntaktischen Unterschiede zwischen den verwendeten Datenbanksystemen zu verzeichnen. Somit ist der Aufruf für alle unterstützen Datenbanksysteme identisch:


CREATE VIEW contacts_view AS SELECT ID, first_name, last_name, phone_office FROM contacts;


Die oben abgebildete Anweisung erzeugt somit eine Tabellensicht wie folgt:

IDfirst_namelast_namephone_office
1JohnDoe+49 123 123456
2JaneRoe+49 234 234567

Erneut ist darauf hinzuweisen, dass die View zwingend ein eindeutiges Identifikationsmerkmal (hier ID) enthält. Andernfalls kann das Modul nicht funktionieren.

Warum ist die ID so wichtig?

Die ID ist deshalb so wichtig, da das Modul mit ihrer Hilfe nachvollziehen kann, welche Kontakte vom Modul angelegt wurden. Somit können bereits abgeglichene Kontakte identifiziert werden. Wenn sich innerhalb der entfernten Datenbank etwa die Telefonnummer eines Kontakts ändert, kann mit Hilfe der ID festgestellt werden, dass eben jener Kontakt nun eine neuen Telefonnummer hat und demnach zu updaten ist.

Installation

Bitte Beachten Sie unsere Anleitung zur Installation von Modulen.

Allgemeine Konfiguration

Synchronisation

Timer-Intervall: Legt den zeitlichen Intervall der Synchronisation fest.

Datenblockgröße: Während der Synchronisation wird die Gesamtanzahl der abzugleichenden Daten in Blöcke unterteilt, um Speicherüberlauf bei sehr großen Datenmengen zu verhindern. Die Blockgröße kann Einfluss auf die Synchronisationsgeschwindigkeit haben. Bei Systemen mit geringem Arbeitsspeicher oder mit vielen, gleichzeitig betriebenen Modulen, sollte eine kleine Blockgröße gewählt werden.


Zielordner

Ordner: Gibt die Nummer des Ordners an, in dem die abzugleichenden Kontakte angelegt werden. Den Ordner mit der Nummer '0' waehlen, um die Kontakte ins globale Adressbuch "all" zu kopieren.


Priorisierung

Legt fest, welche Datenquelle bei kollidierenden Datensätzen den Vorrang erhält. Das Vergleichs-Feld bestimmt, welches Merkmal zur Kollisionsfindung herangezogen wird.

DAS HIER GESETZTE FELD MUSS IN BEIDEN DATENQUELLEN IN JEDEM FALL EINEN WERT ENTHALTEN, SPRICH: DARF WEDER NULL NOCH LEER SEIN!



Datenquelle: Legt fest, welche der beiden Datenquellen bei sich überschneidenden Datensätzen bevorzugt wird.

Vergleichs-Feld: Setzt das Feld, welches als gemeinsames Kriterium gelten soll. Zur Auswahl stehen:

Rufnummer

Mobil

Privat

Fax

E-Mail

SQL-Server Konfiguration

Datenbank-Typ: Wählen Sie hier Ihren Datenbank-Hersteller aus.

Host: Der Pfad zum entfernten Datenbank-Server. Hier kann sowohl eine IP oder auch ein Hostname eingetragen werden.

Verwenden Sie einen Microsoft SQL Server, können Sie als "Host" auch den Instanznamen optional angeben, z.B.:

192.168.0.100\SQLEXPRESS

Port: Der Port, auf dem der Datenbank-Server eine Verbindung zulässt.

Datenbankname: Der Name der Datenbank, welche die Tabelle zum Abgleich der Adressbuchdaten enthält.

Benutzername: Der Name des Benutzers, der sich beim Login am Datenbank-Server authentifiziert.

Passwort: Das Passwort des Benutzer-Accounts.

SQL-Tabellen-Konfiguration

Das Modul kann in zwei Konfigurationsstufen (partieller Sync, partieller Sync mit Feedback) betrieben werden. Jede Konfigurationsstufe setzt die Felder der vorherigen Stufe voraus.
Soll innerhalb eines Sync-Intervalls z.B. immer ein Vollabgleich vollzogen werden, so sind die Felder im Unterbereich 'Partieller Sync' frei zu lassen.

Die Einstellung 'Partieller Sync mit Feedback' erfordert darüber hinaus, dass der im vorherigen Tab angegebene Benutzer über Schreibrechte auf die Tabelle verfügt. 

Tabellenname

Der Name der Tabelle, welche die Datensätze zum Abgleich mit dem STARFACE-Adressbuch bereitstellt.

Partieller Sync

Bei einem partiellen Sync werden nur die Datensätze ersetzt, deren Zeitstempel höherwertig sind als der des letzten Abgleichs. Geben Sie im Folgenden die korrespondierenden Spaltennamen ihrer SQL-Tabelle an.

ID: Geben Sie hier zwingend den Spaltennamen des eindeutigen Schlüssels zur Identifizierung eines Datensatzes ein, z.B. ein ganzzahliger Primärschlüssel oder auch eine GUID. 

Erzeugt: Gibt das Datum der Erstellung des Datensatzes an. Dieses Feld muss einen numerischen, ganzzahligen Datentyp mit einem Unix-Timestamp (Sekunden seit 1970) enthalten.

Aktualisiert: Gibt das Datum der letzten Aktualisierung des Datensatzes an. Dieses Feld muss einen numerischen, ganzzahligen Datentyp mit einem Unix-Timestamp (Sekunden seit 1970) enthalten.

Entfernt: Gibt das Datum des Entfernens des Datensatzes an. Dieses Feld muss einen numerischen, ganzzahligen Datentyp mit einem Unix-Timestamp (Sekunden seit 1970) enthalten.


Partieller Sync mit Feedback

Der partielle Sync mit Feedback ist nahezu identisch zum partiellen Sync, nur informiert das Modul die entfernte Datenbank darüber hinaus, welche Datensätze erfolgreich mit dem STARFACE Adressbuch abgeglichen wurden.

Synchronisiert: Gibt das Datum des letzten Abgleichs des Datensatzes an mit dem STARFACE-Adressbuch an. Dieses Feld muss einen numerischen, ganzzahligen Datentyp mit einem Unix-Timestamp (Sekunden seit 1970) enthalten.

Datenfelder

Ausnahme

Die Felder "Vorname" und "Name" müssen angegeben werden und als Abfrageergebnis mindestens einen leeren String zurückerhalten damit die STARFACE den Datensatz speichern kann.


Geben Sie hier die Spaltennamen der zu synchronisierenden Felder an. Alle hier angegebenen Felder werden importiert. Freigelassene Felder werden nicht importiert.

Beispiel-Konfiguration mit Microsoft SQL

Starten Sie z.B. einen kostenfreien Microsoft SQL Server 2017 Express mit Hilfe von Docker auf einem Host-Betriebssystem Ihrer Wahl (hier Mac OS):

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=yourStrong(!)Password' -e 'MSSQL_PID=Express' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu

Wechseln Sie danach in Ihre Docker-SQL-Server-Umgebung:

docker ps
<Lesen Sie jetzt die Container ID nach)
docker exec -it <Container ID> bash

Erstellen Sie eine Datenbank "contacts":

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'create database phonebook;'

Erstellen Sie danach die Tabelle mit Kontakten (wenn noch nicht vorhanden):

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q 'create table phonebook.dbo.contacts( id int, name varchar(500), lastname varchar(500), mobile varchar(500), phone varchar(500) );'


Erstellen Sie nun einen Beispielkontakt:

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'yourStrong(!)Password' -Q "INSERT INTO phonebook.dbo.contacts (id, name, lastname, mobile, phone) VALUES (1, 'Oliver', 'Baltz', '+4915140375199', '+492364887300')"


Erstellen Sie nun eine Modulkonfiguration:

Aktivieren Sie nun Ihre neue Modulkonfiguration und Sie sollten im Tab "Allgemein" diesen Log-Output sehen:

Der Kontakt "Oliver Baltz" sollte nun in Ihrem STARFACE Adressbuch zu finden sein.

Verwendung

Nach erfolgreicher Einrichtung wird die STARFACE die übermittelten Rufnummern anhand der importierten Daten aus ihrer Datenbank auflösen und in den Endgeräten anzeigen. 

FAQ

Frage/ProblemAntwort/Lösung
Das STARFACE Adressbuch füllt sich mit mehr und mehr Kontakten. Vorhandene STARFACE Kontakte werden nicht aktualisiert, sondern neu angelegt.Bitte geben Sie zwingend in der Modulkonfiguration den Tabellen-Namen für "ID" an im Abschnitt "Partieller Sync" (auch, wenn ein Voll-Sync gewünscht ist).

Weitere Informationen

Haben wir Ihnen geholfen?

Konnten Sie mit dieser Dokumentation alle Ihre Fragen zum Produkt klären und es wie gewünscht in Betrieb nehmen? Wir freuen uns über Ihre Verbesserungsvorschläge - sowohl zum Produkt, als auch zu unserer Dokumentation. Nehmen Sie gerne mit uns Kontakt auf. Vielen Dank!

Kennst Du schon den Nachfolger der Modul-Manufaktur? www.sync.blue