Beispiel Feldzuordnung per Skript
Dieses Beispiel zeigt, wie Sie im Universal Sync (SDK) per C#-Skript einen neuen Wert dynamisch an das Zielsystem übertragen – auch bei Aktualisierungen (nicht nur bei Neuanlagen).
Kernaussage: Nicht direkt in
Helper.SetObjectschreiben.
Zielsysteme persistieren bei Updates in der Regel nur erkannte Änderungen.
Das AustauschobjektHelper.SetObjectbesitzt keine Änderungserkennung – Änderungen würden bei Updates ignoriert.
Lösung: Wert in der Quelle bereitstellen und eine Feldzuordnung (Mapping) zur Laufzeit ergänzen.
- Quelle erweitern: Neuer Wert wird in
Helper.GetObject(JObject) hinzugefügt. - Mapping ergänzen: Per
Helper.Mappings(JArray) eine neue Zuordnung von Quellpfad → Zielpfad definieren. - Pfadnotation: Punktnotation inkl. Objektname (z. B.
Quelle.NeuesDatum→Ziel.LetzterSync).
Voraussetzungen
- Sync-Typ: Universal Sync (SDK) mit Datensatzskript
- Zugriff auf den SDK-Helper
- Newtonsoft.Json wird bereitgestellt (z. B.
JObject,JArray)
Minimalbeispiel
using System; using System.Collections.Generic; using SIS; using SIS.Public; using SIS.Public.Models; using Newtonsoft.Json.Linq; public class CSScript { // SDK helper public SisHelper Helper { get; set; } // Your operation to return json data public string Execute() { //Neues Feld der Quelle hinzufügen Helper.GetObject.Add("NeuesDatum", DateTime.Now); //Neue Feldzuordnung hinzufügen JObject NewMapping = []; NewMapping.Add("SourcePath", "Quelle.NeuesDatum"); NewMapping.Add("TargetPath", "Ziel.LetzterSync"); Helper.Mappings.Add(NewMapping); return null; } }
Ergebnis:
Der neue Wert steht in der Quelle bereit und wird über die dynamisch ergänzte Zuordnung zuverlässig ins Ziel geschrieben – auch bei Updates.
Kurzreferenz
- Quelle lesen/anpassen:
Helper.GetObject(JObject) - Ziel (Austauschobjekt):
Helper.SetObject(JObject) – nicht für Änderungserkennung geeignet - Mappings lesen/ergänzen:
Helper.Mappings(JArraymit Objekten:SourcePath,TargetPath, optionalSourceColumn,TargetColumn) - Logging:
Helper.InsertLog(message, level)(Level:0=Message,1=Error,2=Warning,3=Info,4=Feedback,5=Debug)