Mapping-JSON-Format

Das Mapping wird als JSON-Datei neben der EXE gespeichert.

Vollständiges Beispiel

{
  "mappingName": "OutlookSync",
  "outlookAccount": "user@company.com",
  "outlookFolderPath": "ExternalContacts",
  "serverName": "localhost",
  "databaseName": "MyDatabase",
  "useSqlAuth": true,
  "username": "sa",
  "password": "DPAPI:BASE64...",
  "rootTable": "STAP",
  "primaryKeyColumn": "IDSTAP",
  "relations": [
    {
      "targetTable": "STTK",
      "sourceColumn": "IDSTAP",
      "targetColumn": "IDSTAP",
      "enabled": true,
      "singleRow": true,
      "primaryKeyColumn": "IDSTTK",
      "timestampColumn": "LastModified",
      "copyColumns": ["IDST"]
    }
  ],
  "fieldMappings": [
    {
      "outlookField": "FirstName",
      "sourceType": 0,
      "tableName": "STAP",
      "columnName": "VN"
    },
    {
      "outlookField": "Email1Address",
      "sourceType": 1,
      "tableName": "STTK",
      "columnName": "B",
      "filterColumn": "TKArt",
      "filterValue": "170"
    },
    {
      "outlookField": "Title",
      "sourceType": 0,
      "tableName": "C2kat",
      "columnName": "CtgDesc",
      "joinColumn": "Anrede"
    }
  ],
  "customOutlookFields": ["Kontakt-ID"],
  "primaryMatchKey": {
    "outlookFields": ["Email1Address"],
    "dbExpressions": ["STTK.B"]
  },
  "syncDirection": 0,
  "conflictPolicy": 0,
  "deletePolicy": 0
}

Schlüssel-Referenz

Root-Level

Schlüssel Typ Beschreibung Pflicht
mappingName String Frei wählbarer Name (wird als Dateiname) Ja
outlookAccount String E-Mail-Adresse des Outlook-Profils Ja
outlookFolderPath String Kontakt-Ordner in Outlook Ja
serverName String SQL Server Hostname/IP Ja
databaseName String Datenbankname Ja
useSqlAuth Boolean SQL-Authentifizierung verwenden Nein (default: false)
username String SQL Server Login Bedingt
password String DPAPI:BASE64… oder Klartext Bedingt
rootTable String Wurzeltabelle Ja
primaryKeyColumn String PK-Spalte der Wurzeltabelle Ja
customOutlookFields String[] Benutzerdefinierte Outlook-Felder Nein
syncDirection Integer Sync-Richtung (Enum) Nein (default: 0)
conflictPolicy Integer Konflikt-Regel (Enum) Nein (default: 0)
deletePolicy Integer Löschverhalten (Enum) Nein (default: 0)

Relation-Objekt

Schlüssel Typ Beschreibung Default
targetTable String Verknüpfte Tabelle
sourceColumn String FK-Spalte in der Wurzeltabelle
targetColumn String PK-Spalte in der Zieltabelle
enabled Boolean Relation aktiv true
singleRow Boolean true = OUTER APPLY + TOP 1 statt LEFT JOIN true
primaryKeyColumn String PK der Zieltabelle (für Write-Back) „“
timestampColumn String Timestamp-Spalte für „Neuerer gewinnt“ „“
copyColumns String[] Denormalisierte Spalten, die beim INSERT via Subquery aus der Wurzeltabelle kopiert werden (→ SQL-Builder) []

FieldMapping-Objekt

Schlüssel Typ Beschreibung Default
outlookField String Ziel-Feld im Outlook-Kontakt
sourceType Integer Zuordnungstyp (Enum) 0
tableName String Quelltabelle
columnName String Quellspalte
filterColumn String Diskriminator-Spalte (nur fsRelated) „“
filterValue String Filter-Wert (nur fsRelated) „“
joinColumn String Disambiguation bei Mehrfach-Relationen „“

Enum-Werte

TFieldMappingSource (sourceType)

Wert Name SQL-Muster
0 fsDirect alias.[Col] AS [Field]
1 fsRelated LEFT JOIN + WHERE filterColumn = filterValue
2 fsExpression Freies SQL-Fragment (Blacklist-geprüft)

TSyncDirection (syncDirection)

Wert Name Beschreibung
0 Manuell Diff anzeigen, Benutzer entscheidet
1 DB → Outlook Automatisch nach Outlook
2 Outlook → DB Automatisch in die DB

TConflictPolicy (conflictPolicy)

Wert Name Beschreibung
0 Benutzer fragen Orange markieren, Benutzer wählt
1 DB gewinnt DB-Wert übernehmen
2 Outlook gewinnt Outlook-Wert übernehmen
3 Neuerer gewinnt Timestamp-Vergleich

TDeletePolicy (deletePolicy)

Wert Name Beschreibung
0 Ignorieren Gelöschte überspringen
1 Markieren Als gelöscht markieren
2 Löschen Auf Gegenseite löschen

Abwärtskompatibilität

Fehlende Schlüssel werden beim Laden mit den Default-Werten ergänzt. Ältere Mapping-Dateien funktionieren ohne Änderung.


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

Zuletzt geändert: den 19.02.2026 um 23:47