Mapping-Designer

Der Mapping-Designer ersetzt den früheren 6-Schritte-Assistenten durch ein integriertes 3-Zonen-Layout im Stil von IDE-Property-Editoren.

Aufbau: 3-Zonen-Layout

Mapping-Designer: Feld-Mapping

Zone Position Inhalt
Step-Tree Links Baumstruktur mit allen Konfigurations-Schritten
Dependency-Tree Mitte Kontextabhängige Detail-Ansicht (Tabellen, Relationen, Felder)
PropertyGrid Rechts Editierbare Eigenschaften des ausgewählten Knotens

Die drei Zonen sind durch Splitter getrennt — die Breiten können per Drag angepasst werden und werden gespeichert.

Step-Tree-Knoten

Gruppe Knoten
Quellen Server-Verbindung
Datenstruktur Wurzeltabelle, Beziehungen
Zuordnung Feld-Mapping, Match-Keys
Optionen Sync-Richtung, Konflikt-Regel, Löschverhalten
Test Vorschau, SQL-Test

Schritt: Quellen / Server

Server-Verbindung

Konfiguriert die Datenquellen (Outlook-Konto und SQL Server).

Feld Beschreibung Pflicht
Mapping-Name Frei wählbarer Name (wird als Dateiname verwendet) Ja
Outlook-Konto E-Mail-Adresse des Outlook-Profils Ja
Outlook-Ordner Kontakt-Ordner (z.B. „Contacts“, „ExternalContacts“) Ja
Server SQL Server Hostname/IP (z.B. localhost, server\instanz) Ja
Datenbank Datenbankname (Dropdown nach Verbindungstest) Ja
SQL-Authentifizierung Checkbox — wenn aktiviert, Benutzer/Passwort-Felder Nein
Benutzername SQL Server Login (nur bei SQL-Auth) Bedingt
Passwort Wird DPAPI-verschlüsselt gespeichert Bedingt

Kommandos:

  • Daten abrufen — Stellt die Verbindung her, lädt Tabellenliste und Outlook-Ordner. Zeigt WaitForm mit Fortschrittsmeldung.
  • Verbindung testen — Prüft nur die DB-Verbindung ohne Tabellen zu laden.

Freigegebene Postfächer: Stores ohne direkte Outlook-Account-Zuordnung (freigegebene Postfächer, PST-Dateien) erscheinen mit dem Suffix (Shared) in der Kontenliste.


Schritt: Wurzeltabelle

Wählen Sie die Haupttabelle, die Ihre Kontaktdaten enthält.

Dependency-Tree: Zeigt die verfügbaren Tabellen mit Zeilenanzahl.

Feld Beschreibung
Tabelle Wurzeltabelle (Combo mit allen verfügbaren Tabellen)
Primärschlüssel PK-Spalte (Combo, automatisch aus sys.foreign_key_columns vorgeschlagen)
Timestamp-Spalte Optionale Spalte für „Neuerer gewinnt“-Vergleich

Schritt: Beziehungen (Relations)

Beziehungen

Definiert Tabellenbeziehungen (JOINs) zwischen Wurzeltabelle und verwandten Tabellen.

Automatische Erkennung (zwei Phasen)

  1. Echte FK-Constraints aus sys.foreign_key_columns
  2. Namensmuster-Fallback — z.B. Spalte IDSTAP in Tabelle STTK wird als FK auf STAP.IDSTAP erkannt

Dependency-Tree: Zeigt erkannte Relationen mit Quell-/Zieltabelle und JOIN-Bedingung. Checkbox aktiviert/deaktiviert einzelne Relationen.

Feld Beschreibung
Zieltabelle Verknüpfte Tabelle
Quellspalte FK-Spalte in der Wurzeltabelle
Zielspalte PK-Spalte in der Zieltabelle
Primärschlüssel PK der Zieltabelle (für Write-Back)
Einzelzeile true = OUTER APPLY + TOP 1 (verhindert Zeilen-Vervielfachung)
Timestamp-Spalte Optionale Timestamp-Spalte der Relation

Kommandos:

  • Daten abrufen — Erkennt Relationen automatisch
  • Join prüfen — Zeigt Statistik: Matches, Waisen, Match-%

Schritt: Feld-Mapping

Feld-Mapping

Ordnet Outlook-Kontaktfelder den Datenbankspalten zu.

Dependency-Tree: Zeigt alle konfigurierten Feld-Zuordnungen mit Quelltyp, Tabelle und Spalte.

Feld Beschreibung
Outlook-Feld Ziel-Feld im Outlook-Kontakt (52 Standard + Custom)
Tabelle Quelle: Wurzeltabelle oder eine verwandte Tabelle
Spalte Spalte in der gewählten Tabelle (Combo)
Filter-Spalte Nur bei 1:N-Tabellen: Diskriminator-Spalte
Filter-Wert Wert zur Filterung (z.B. TKArt = 170 für E-Mail)

Drei Zuordnungstypen

Typ SQL-Muster Beispiel Wann verwenden
Direkt (fsDirect) alias.[Col] STAP.VNFirstName 1:1-Spaltenzuordnung
Gefiltert (fsRelated) LEFT JOIN + WHERE STTK.B [TKArt=170]Email1Address 1:N-Tabelle mit Diskriminator
Ausdruck (fsExpression) SQL-Fragment CONCAT(VN, ' ', NN)FullName Berechnete Felder

Tabellen-Disambiguation: Wenn eine Tabelle in mehreren Beziehungen vorkommt (z.B. C2kat für Anrede UND Titel), wird sie im Tabellen-Dropdown mit dem Quell-Spaltennamen disambiguiert: C2kat [via Anrede], C2kat [via Titel].


Schritt: Match-Keys

Definiert, welche Felder einen Kontakt eindeutig identifizieren für den Vergleich zwischen DB und Outlook.

Primär-Key (Pflicht)

Felder, die einen Kontakt zweifelsfrei zuordnen. Typische Konfigurationen:

  • E-Mail-Adresse (bester Match bei gepflegten E-Mails)
  • Kunden-ID als Custom UserProperty
  • Kombination aus Name + Firma

Fallback-Key (Optional)

Wird verwendet, wenn der Primär-Key keinen Treffer liefert. Typisch: Vorname + Nachname + Firma.

Felder mit „Email“ oder „MAIL“ im Namen werden automatisch vorgeschlagen.


Schritt: Vorschau und SQL-Test

SQL-Test

Vorschau: Zeigt eine Zusammenfassung des konfigurierten Mappings (Mapping-Name, Wurzeltabelle, Anzahl Beziehungen und Feld-Zuordnungen).

SQL-Test:

  • SQL-Memo (oben): Zeigt das automatisch generierte SELECT-Statement mit allen JOINs, Aliasen und Filter-Bedingungen
  • Test-Abfrage (Button): Führt das SQL aus und zeigt Ergebnisse im Grid
  • Ergebnis-Grid (unten): Bis zu 100 Zeilen der Abfrage

Für Support: Kopieren Sie das generierte SQL und führen Sie es direkt in SSMS aus, um Probleme mit der Datenbankstruktur zu diagnostizieren.


Schritt: Sync-Optionen

Option Werte Standard Beschreibung
Sync-Richtung Manuell, DB→Outlook, Outlook→DB Manuell Bestimmt ob Diff angezeigt oder automatisch synchronisiert wird
Konflikt-Regel Benutzer fragen, DB gewinnt, Outlook gewinnt, Neuerer gewinnt Benutzer fragen Wie Konflikte (beide Seiten geändert) aufgelöst werden
Löschverhalten Ignorieren, Als gelöscht markieren, Auf Gegenseite löschen Ignorieren Was mit gelöschten Kontakten passiert

Kommandoleiste

Am unteren Rand des Mapping-Designers befindet sich eine Kommandoleiste:

Button Beschreibung
Daten abrufen Lädt DB-Schema, Tabellen, Relationen — kontextabhängig per Step
Alle validieren Prüft alle Pflichtfelder und zeigt Ergebnisse in der Statuszeile
Zurücksetzen Setzt das Mapping auf ein leeres Template zurück
Speichern Speichert die .mapping.json-Datei

Die Statuszeile links in der Kommandoleiste zeigt Validierungsergebnisse und Fehlermeldungen.


Wolfgang van der Stille @ EMSR DATA d.o.o. — Outlook Sync

Zuletzt geändert: den 19.02.2026 um 21:26