SDK (Software Development Kit) Konnektor

Der SDK Konnektor dient als Entwicklungsplattform zur Anbindung individueller Systeme an Syncler.
Mit diesem Konnektor lassen sich C#-basierte Skripte erstellen, um benutzerdefinierte Schnittstellen zu realisieren.
So können eigene Routinen zum Erstellen von Schemata, Lesen und Schreiben von Daten sowie für Abfragen implementiert werden.

Eine Anleitung zur Planung der Entwicklung finden Sie hier: Konnektor-Entwicklung SDK


Übersicht

Der SDK-Konnektor ermöglicht es Entwicklern, eigene Konnektoren mit beliebiger Logik zu erstellen.
Dazu können C#-Skripte ausgeführt werden, die zur Laufzeit in Syncler eingebunden und verarbeitet werden.
Der Konnektor kann sowohl mit Universal Syncs als auch mit speziellen SDK-Syncs verwendet werden.

In On-Premises-Installationen unterliegt die Skriptausführung keinen Einschränkungen.
In der Cloud ist die Speicher- und Laufzeitdauer begrenzt. Wird ein Limit überschritten, wird das Skript mit einer Fehlermeldung abgebrochen.

Die verfügbaren Bibliotheken entsprechen der Transformation „C# Code Script“.

Weitere Informationen: Der SDK-Helper


OAuth-Unterstützung

Der SDK-Konnektor unterstützt einen generischen, codebasierten OAuth-Grant-Flow.
Der erzeugte Code steht in Skripten als Parameter OAuthCode zur Verfügung.
Nach der Ausführung des Schema-Skripts wird der Code gespeichert und kann z.B. zum Abrufen eines Refresh Tokens genutzt werden.


Schemaobjekte

Das Schema wird durch ein JSON Schema Skript erzeugt.
Das Skript enthält die Methode Execute, die beim Abrufen des Schemas ausgeführt wird und ein JSON-Array mit Schemaobjekten zurückgeben muss.
Diese Objekte müssen dem Standard https://json-schema.org/ entsprechen.

Primärschlüssel werden mit einem String-Array uniqueidentifier angegeben, während das Änderungsfeld mit der Eigenschaft updated definiert wird.

Beispiel:

[
  {
    "title": "address",
    "properties": {
      "street": { "title": "Street", "type": "string", "maxLength": 60 },
      "housenumber": { "type": "integer", "title": "Housenumber" },
      "addressid": { "type": "integer", "title": "Record ID", "readOnly": true },
      "updateddate": { "title": "Updated at", "type": "string", "format": "date-time" },
      "country": { "title": "Country", "type": "string", "enum": ["DE", "AT", "CH"] }
    },
    "required": ["street"],
    "updated": "updateddate",
    "uniqueidentifier": ["addressid"]
  }
]

Lesen von Schema-basierten Daten

Das Lesen erfolgt über ein JSON-Daten-Lesen Skript.
Über den Helper stehen alle relevanten Parameter der Anfrage zur Verfügung, inklusive Schemaobjekt (Helper.TargetObject) und Seitennummer.

Bei aktivierter seitenweiser Verarbeitung wird das Skript mehrfach ausgeführt, bis keine Daten mehr vorhanden sind (max. 50 Aufrufe).
Das Skript muss ein JSON-Array mit den Datensätzen gemäß Schema zurückgeben.


Lesen von Abfrage-basierten Daten

Das Abfrage-Lesen wird durch ein JSON Abfrage Skript realisiert.
Dieses wird sowohl zur Erzeugung des Abfrage-Schemas als auch zur Ausführung der Abfrage verwendet.
Über Helper.GetParam<bool>("GetQuerySchema") kann zwischen Schemaerstellung und Ausführung unterschieden werden.


Schreiben von Daten

Das Schreiben erfolgt über ein JSON-Daten-Schreiben Skript.
Das zu verarbeitende Objekt ist über Helper.SetObject verfügbar.
Der Rückgabewert muss das Objekt mit einer generierten ID oder einem Aktualisierungsdatum enthalten.
Diese Informationen werden für Sync-Abbildungen oder Änderungsverfolgung verwendet.


Einstellungen

Der SDK-Konnektor verfügt über wenige feste Parameter, um Zugangsdaten sicher zu verwalten.
Diese werden über Platzhalter in den Skripten verfügbar gemacht.

Einstellung Beschreibung Parametername
Authentifizierung URL Platzhalter für eine URL Url
Benutzername Platzhalter für den Benutzernamen Username
Passwort Geschützter Platzhalter; der Wert kann nicht extern ausgelesen werden Password
Authorization URL URL für OAuth-Authorization OAuthUrl
Account ID Platzhalter für Account-ID OAuthAccountId
Client ID Platzhalter für Client-ID OAuthClientId
Secret Platzhalter für das Client-Secret OAuthSecret
Redirect URL URL für OAuth-Redirect, wird automatisch kodiert an die Authorization URL angehängt OAuthRedirectUrl
API URL Alternative API-Endpunkt-URL ApiUrl
API Key Platzhalter für API-Schlüssel ApiKey