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 |