Die laufende Nummer des Mandanten
Die laufende Nummer des Mandanten dient in Syncler als Mandanten-/Kontexttrennung für Syncs.
Sie strukturiert Datenflüsse logisch, steuert Zugriffs- und Zielsteuerung pro Datensatz und beeinflusst sowohl Statusfelder in Drittsystemen als auch die Datensatz-Abbildungen (Mappings).
Zweck & Wirkung
- Isolation von Datenflüssen: Syncs mit unterschiedlicher Mandantennummer arbeiten logisch getrennt – auch dann, wenn Quelle/Ziel identisch sind.
- Statusfelder in Zielsystemen: Systeme wie Sage CRM, CAS oder Salesforce können nummerierte Sync-Statusfelder führen (z. B.
sis_status1,sis_status2). Diese beziehen sich jeweils auf die konfigurierte Mandantennummer des Syncs. - Zugriffssteuerung: Nur Syncs mit passender Nummer dürfen einen Datensatz lesen/aktualisieren – damit wird auch das Zielrouting bestimmt.
- Mapping-Sichtbarkeit: Ein Sync sucht, erzeugt und aktualisiert ausschließlich Datensatz-Abbildungen seiner eigenen Mandantennummer.
Regeln im Betrieb
Statusfelder
- Pro Mandantennummer werden (falls vorgesehen) eigene Statusindikatoren im Fremdsystem gepflegt.
- Ein Sync verändert nicht die Statusfelder anderer Mandantennummern.
Datensatz-Abbildungen (Mappings)
- Lookup, Anlage und Aktualisierung erfolgen nur innerhalb derselben Mandantennummer.
- Abbildungen anderer Mandantennummern werden ignoriert (keine Kollisionen, keine Vermischung).
Doppelte Anlage (bewusst gesteuert)
- Durch unterschiedliche Mandantennummern können gezielt Duplikate (separate Ziel-Datensätze) für unterschiedliche Zwecke/Instanzen erzeugt werden – mit getrennten Lebenszyklen.
Konfiguration (Kurz)
- Ort: Pro Sync in den Einstellungen (Mandant/Kontext).
- Wertbereich: Ganzzahl > 0 (Namenskonvention/Belegungsplan festlegen).
- Konsistenz: In bidirektionalen Setups müssen beide Richtungen dieselbe Mandantennummer verwenden, sofern kein bewusstes Duplizieren gewünscht ist.
Beispiel 1
Szenario: Zwei Datensätze aus verschiedenen ERP-Mandanten sollen auf einen Firmen-Datensatz im CRM komprimiert werden.
- Sync A (Mandant 1): Sage 100 -> Sage CRM
- Sync B (Mandant 2): Sage 100 -> Sage CRM
- Sync C (Mandant 1): Sage CRM -> Sage 100
- Sync D (Mandant 2): Sage CRM -> Sage 100
Effekte:
- CRM führt
SyncStatus_1undSyncStatus_2. - Es existieren eigene Datensatz-Abbildungen für Mandant 1 und Mandant 2.
- komprimierte Feldzuordnungen (z.B. Firmenname oder Adresse) werden auf die Mandanten verteilt; Mandant 1 -> CRM -> Mandant 2
flowchart LR A[ERP Mandant A]:::erp --> L1[Sync A<br/>Nummer 1]:::step B[ERP Mandant B]:::erp --> L2[Sync B<br/>Nummer 2]:::step L1 --> K[CRM<br/>1 Ziel-Datensatz - Status1, Status2]:::crm L2 --> K K --> L3[Sync C<br/>Nummer 1]:::step K --> L4[Sync D<br/>Nummer 2]:::step L3 --> C[ERP Mandant A]:::erp L4 --> D[ERP Mandant B]:::erp classDef erp fill:#eef,stroke:#88f,color:#000; classDef step fill:#ffd,stroke:#cc3,color:#000; classDef crm fill:#efe,stroke:#4a4,color:#000;
Beispiel 2
Szenario: Ein Firmen-Datensatz soll in zwei getrennten Integrationspfaden verarbeitet werden.
- Sync A (Mandant 1): Sage CRM ↔ ERP (operativer Datenfluss)
- Sync B (Mandant 2): Sage CRM ↔ Data Warehouse (analytischer Datenfluss)
Effekte:
- CRM führt
SyncStatus_1undSyncStatus_2. - Es existieren eigene Datensatz-Abbildungen für Mandant 1 und Mandant 2.
- Änderungen in Pfad A beeinflussen nicht die Mappings/Status von Pfad B.
- Bei Bedarf können in Pfad B separate Zielobjekte angelegt werden, ohne Pfad A zu berühren.
Beispiel 3
Szenario: Ein ERP-Datensatz soll in zwei getrennten Integrationspfaden verarbeitet werden und zwei Datensätze im CRM erzeugen.
- Sync A (Mandant 1): Sage 100 -> Sage CRM
- Sync B (Mandant 2): Sage 100 -> Sage CRM
- Sync C (Mandant 1): Sage CRM -> Sage 100
- Sync D (Mandant 2): Sage CRM -> Sage 100
Effekte:
- CRM führt
SyncStatus_1oderSyncStatus_2. - Es existieren eigene Datensatz-Abbildungen für Mandant 1 und Mandant 2.
- komprimierte Feldzuordnungen (z.B. Firmenname oder Adresse) werden auf die Mandanten verteilt; CRM 1 -> ERP -> CRM 2
flowchart LR
A[ERP Mandant A]:::erp
subgraph CRM
C1[CRM Account 1]:::crm
C2[CRM Account 2]:::crm
end
B[ERP Mandant A]:::erp
A --> C[Sync A<br/>Mandant 1]:::step --> C1
A --> D[Sync B<br/>Mandant 2]:::step --> C2
C1 --> E[Sync C<br/>Mandant 1]:::step --> B
C2 --> F[Sync D<br/>Mandant 2]:::step --> B
classDef erp fill:#eef,stroke:#88f,color:#000;
classDef crm fill:#efe,stroke:#4a4,color:#000;
classDef step fill:#ffd,stroke:#cc3,color:#000;
Best Practices
- Bidirektionale Flüsse angleichen: Beide Richtungen mit derselben Nummer betreiben, um Doppelerstellungen zu vermeiden – außer sie sind ausdrücklich gewünscht.
- Migration: Beim Wechsel der Mandantennummer entstehen neue Mappings. Altes Setup sauber stilllegen (Statusfelder/Mappings bereinigen), um Inkonsistenzen zu vermeiden.
- Tests trennen: Für Testläufe eigene Nummer verwenden, damit produktive Mappings/Status unberührt bleiben.
Häufige Stolpersteine
- Gemischte Nummern in einer Kette: Unterschiedliche Mandantennummern in aufeinanderfolgenden Syncs verhindern Mapping-Wiederverwendung.
- Unbeabsichtigte Duplikate: Abweichende Nummern in (scheinbar) identischen Flüssen führen zu doppelten Ziel-Datensätzen.
- Konfliktmanagement greift anders: Konflikte werden mandantenweise bewertet – fehlende Abstimmung der Nummern kann Diagnosen erschweren.