Der SDK-Helper

Der Helper ist in Skripten der Kommunikationsweg zur Anwendung und stellt darüberhinaus unterstützende Funktionen zur Verfügung. Parameter aus Verbindung und Prozessen können damit ausgetauscht werden.

Neben dem Helper und einigen .Net Basisfunktionen steht auch noch die Bibliothek Newtonsoft.Json zur Verfügung, die vorallem das Lesen und Erzeugen von Json-Daten stark vereinfacht.

Alle Eigenschaften und Funktion des Helper beziehen sich immer auf den aktuellen Account.

Eigenschaften

Folgende Eigenschaften stehen am Helper zur Verfügung. Einige werden nur intern vom Helper genutzt oder indirekt über Methoden gesetzt.

Helper.IsCancelled (bool)

Die Wert zeigt an, dass das Skript einen Abbruch angefordert hat. Der Wert wird auch mit der Methode Cancel gesetzt. Der Wert wird in den SDK-Prozessen, der SDK-Verbindung und der Transformation ausgewertet.

Helper.ConnectionId (int)

Die ID der aktuellen Verbindung. Dieser Wert kann für API-Aufrufe verwendet werden.

Helper.ProcessId (int)

Die ID des aktuellen Prozesses. Dieser Wert kann für API-Aufrufe verwendet werden. Wird von den Methoden IncreaseComplementaryMappings, IncreaseParallelMappings und InsertLog verwendet.

Helper.ClientNumber (int)

Die Client-Number des aktuellen Prozesses. Dies ist ein Prozessparameter, der für die Datenstrukturierung genutzt werden kann. Die Methoden GetDataMappingComplementaryBySourceId und GetDataMappingParallelByTargetId schränken das Ergebnis mit diesem Wert ein, realisieren das aber mittels Abfrage direkt.

Helper.WhereClause (string)

Dies ist der Prozess-Filter für die Abfrage von Quelldaten. In den SDK-Prozessen wird der Wert zurück an den Prozess gegeben und kann damit die Prozessausführung direkt beeinflussen.

Helper.ForceQueryAll (bool)

Dies ist der Prozessparameter für die Aktivierung des kompletten Lesens ohne Änderungseinschränkung. In den SDK-Prozessen wird der Wert zurück an den Prozess gegeben und kann damit die Prozessausführung direkt beeinflussen.

Helper.ConflictAction (string)

Dies ist der Prozessparameter für die Behandlung von Konflikten. Die möglichen Werte sind USE_SOURCE, USE_TARGET, SKIP, IGNORE und SOURCE_CHANGES.

Helper.ErrorAction (string)

Dies ist der Prozessparameter für die Behandlung von Fehlern. Die möglichen Werte sind REPEAT_ALL, REPEAT_DIFFERENCES, QUERY_NEXT, IGNORE und STOP.

Helper.ClientWhereClause (string)

Dies ist der Prozessparameter für die Suche nach Übereinstimmungen bei unbekannten Datensätzen.

Helper.DublettActionNoMatch (string)

Dies ist der Prozessparameter für die Behandlung von keinem Treffer bei der Übereinstimmungssuche. Die möglichen Werte sind SKIP, SKIP_WITH_WARNING, WRITE, REPEAT und REPEAT_WRITE.

Helper.DublettActionOneMatch (string)

Dies ist der Prozessparameter für die Behandlung von einem Treffer bei der Übereinstimmungssuche. Die möglichen Werte sind SKIP, SKIP_WITH_WARNING, MAPPING_ONLY, MAPPING_AND_SYNCH und WRITE_NEW.

Helper.DublettActionMultipleMatches (string)

Dies ist der Prozessparameter für die Behandlung von mehreren Treffern bei der Übereinstimmungssuche. Die möglichen Werte sind SKIP, SKIP_WITH_WARNING, MAPPING_ONLY_FIRST, MAPPING_AND_SYNCH_FIRST und WRITE_NEW.

Helper.SecondWhereClause (string)

Dies ist der Prozess-Zweitfilter für die Auswahl von transformierten Quelldaten. In den SDK-Prozessen wird der Wert zurück an den Prozess gegeben und kann damit die Prozessausführung direkt beeinflussen.

Helper.SourceObject (string)

Der aktuelle Quellobjekttyp in Prozessskripten.

Helper.TargetObject (string)

Der aktuelle Zielobjekttyp in Prozessskripten. In der SDK-Verbindung definiert der Wert das aktuell angeforderte Objekt.

Helper.SourceType (string)

Der Typ der Quellverbindung in Prozessskripten.

Helper.TargetType (string)

Der Typ der Zielverbindung in Prozessskripten.

Helper.SourceSchemaObject (JObject)

Ein Schemaobjekt zur Beschreibung des aktuellen Quellobjekttyps.

Helper.TargetSchemaObject (JObject)

Ein Schemaobjekt zur Beschreibung des aktuellen Zielobjekttyps. In der SDK-Verbindung definiert der Wert das aktuell angeforderte Objekt.

Helper.Statement (string)

Die Abfrage der aktuellen Abfrageanforderung. Dies wird in JSON Abfrage Skript übergeben.

Helper.Action (JObject)

Dieses Objekt beschreibt die aktuellen Ausführungsparameter.

Helper.Page (int)

Dieser Wert wird beim Lesen mit Paging mit jeder Ausführung erhöht. Der Startwert ist 0.

Helper.SkipLoading (bool)

Dieser Wert wird von der Methode SkipLoad gesetzt. In den SDK-Prozessen führt der Wert true zum Überspringen des Lesens aus der Quelle.

Helper.InnerException (string)

Dieser Wert wird vom Datensatzskript in den SDK-Prozessen verwendet. Er wird als Fehlermeldung in den Prozess gegeben, wenn das Ergebnis Failed lautet. In diesem Fall muss ein Wert zugewiesen sein.

Helper.GetObject (JObject)

In den SDK-Prozessen wird hier der aktuelle Datensatz an das Datensatzskript übergeben.

Helper.GetChildObjects (JArray)

Im SDK-Prozess für geschachtelte Daten enthält dieses Array die Liste der transformierten Positionsdatensätze. Der Objektparameter „DELETE“ führt je nach Verbindung zum Löschen der Position.

Helper.SetObject (JObject)

Dieses Objekt repräsentiert das aktuelle Zielobjekt. In den SDK-Prozessen wird das Zielobjekt für das Datensatzskript übergeben. In der SDK-Verbindung und dem JSON-Daten schreiben Skript ist hier das Zielobjekt enthalten.

Helper.SetObjectChanges (JObject)

Dieses Objekt repräsentiert die Änderungen des aktuellen Zielobjektes und steht in der SDK-Verbindung zur Verfügung. Sobald der Datensatz über einen Primärschlüssel verfügt können so die tatsächlichen Änderungen in den Daten ermittelt werden.

Helper.DeleteSetObject (bool)

Dieses Objekt soll von der Verbindung gelöscht werden.

Helper.Mappings (JArray)

Diese Liste enthält alle Feldzuordnungen, die im aktuellen Prozess definiert sind. In den SDK-Prozessen werden Änderungen an dieser Liste für das Schreiben übernommen. Die Eigenschaften des einzelen Objektes sind SourcePath (string), SourceColumn (SchemaColumn), TargetPath (string) und TargetColumn (SchemaColumn).

Methoden

Folgende Methoden stehen im Helper direkt oder über Eigenschaften zur Verfügung.

Helper.Cancel()

Fordert einen Abbruch der aktuellen Ausführung an. Die Anforderung wird in SDK-Prozessen, der SDK-Verbindung und in Transformationen ausgewertet.

Helper.SkipLoad()

Fordert das Überspringen der Lese-Operation an. Die Anforderung wird in SDK-Prozessen ausgewertet und überspringt das Lesen der Quelldaten.

Helper.GetParam

Parameter:

  • string Name

Rückgabewert: string

Liefert einen Parameterwert aus der Parameterliste über den Namen des Parameters. Wenn der Parameter nicht vorhanden ist, wird eine leere Zeichenkette zurückgeliefert.

Helper.GetParam<T>

Parameter:

  • string Name

  • T DefaultValue = default

Rückgabewert: T

Liefert einen Parameterwert aus der Parameterliste über den Namen des Parameter in einem bestimmten Typ. Wenn der Parameter nicht vorhanden ist, wird der DefaultValue verwendet. Die Typangabe kann bei einem typisierten Defaultvalue auch weggelassen werden. Abhängig vom Typ des Parameters wird der Wert oder Verweis geliefert.

Helper.GetParamOrNull<T>

Parameter:

  • string Name

Rückgabewert: T

Liefert einen Parameterwert aus der Parameterliste über den Namen des Parameter in einem bestimmten Typ. Wenn der Parameter nicht vorhanden ist, wird Null verwendet. Diese Notation kann für explizites Nullable verwendet werden. z.B. DateTime?

Helper.SetParam<T>

Parameter:

  • string Name

  • T Value

Speichert einen Parameter in der Parameterliste. Sollte der Parameter bereits vorhanden sein, wird der Wert aktualisiert. Die Typangabe kann bei typisierten Value auch weggelassen werden.

Helper.FieldStringToColumnObject

Parameter:

  • string FieldString

Rückgabewert: JObject

Mit dieser Methode kann eine Zeichenkette, z.B. aus einem Filter, die in Feldnotation übergeben wird, in ein JObject mit ansprechbaren Eigenschaften umgewandelt werden.

Helper.GetDataMappingBySourceId

Parameter:

  • int ProcessId

  • string SourceId

Rückgabewert: SisDataMapping

Ruft eine Datenabbildung aus der Datenbank des aktuellen Accounts über die Quell-ID ab. Datenabbildungen sind Prozess-bezogen und enthalten eine Quell- und Ziel-Identifikation.

Helper.GetDataMappingByTargetId

Parameter:

  • int ProcessId

  • string TargetId

Rückgabewert: SisDataMapping

Ruft eine Datenabbildung aus der Datenbank des aktuellen Accounts über die Ziel-ID ab. Datenabbildungen sind Prozess-bezogen und enthalten eine Quell- und Ziel-Identifikation.

Helper.GetDataMappingComplementaryBySourceId

Parameter:

  • int ProcessId

  • string SourceId

  • string TargetObject = null

Rückgabewert: List<SisDataMapping>

Ruft eine Liste von Datenabbildungen entgegengerichteter Prozesse zum aktuellen Prozess aus der Datenbank des aktuellen Accounts über eine Quell-ID ab. Zusätzlich kann das Target-Objekt eingeschränkt werden. Dies kann erforderlich sein, wenn zwei unterschiedliche Objekte das gleiche Zielobjekt haben. Die Arbeit mit komplementären Datenabbildungen ist für das Konfliktmanagement und die Zielerkennung bei bidirektionalen Synchronisationen relevant.

Helper.GetDataMappingParallelByTargetId

Parameter:

  • int ProcessId

  • string TargetId

Rückgabewert: List<SisDataMapping>

Ruft eine Liste von Datenabbildungen paralleler Prozesse zum aktuellen Prozess aus der Datenbank des aktuellen Accounts über eine Ziel-ID ab. An diesen muss die Änderungsinformation des Ziels angepasst werden, da dort ansonsten ein Konflikt erkannt wird.

Helper.SaveDataMapping

Parameter:

  • SisDataMapping Mapping

Rückgabewert: SisDataMapping

Speichert eine neue oder aktualisiert eine bestehende Datenabbildung.

Helper.IncreaseOwnDataMapping

Parameter:

  • SisDataMapping DataMapping

  • object NewUpdatedInfoA

  • object NewUpdatedInfoB

  • bool OnlyA = false

  • bool OnlyB = false

Diese Methode aktualisiert die Änderungsinformation von Quelle und Ziel für die aktuelle Datenabbildung. Zum Auflösen eines Konflikts können die einzelnen Informationen gezielt per Parameter aktualisiert werden.

Helper.IncreaseComplementaryMappings

Parameter:

  • string CurrentSourceId

  • string CurrentTargetId

  • object NewUpdatedInfoA

  • object NewUpdatedInfoB

  • bool OnlyA = false

  • bool OnlyB = false

Diese Methode sucht und aktualisiert oder legt komplementäre Datenabbildungen an. Bei Neuanlagen oder in Konfliktsituationen kann dies auch nur partiell erfolgen.

Helper.IncreaseParallelMappings

Parameter:

  • string CurrentSourceId

  • string CurrentTargetId

  • object NewUpdatedInfoA

  • object NewUpdatedInfoB

  • bool OnlyA = false

  • bool OnlyB = false

Diese Methode sucht und aktualisiert oder legt parallele Datenabbildungen an. Bei Konfliktsituationen kann dies auch nur partiell erfolgen.

Helper.GetProcessInfoList

Parameter:

  • int? SourceConnectionId = null

  • int? TargetConnectionId = null

Rückgabewert: List<SisProcessInfo>

Liefert eine Liste von Informationsobjekten zu den Prozessen des aktuellen Accounts. Die Abfrage kann auf bestimmte Verbindungen eingeschränkt werden.

Helper.GetProcessInfoComplementary

Parameter:

  • int ProcessId

Rückgabewert: List<SisProcessInfo>

Liefert eine Liste von Informationsobjekten zu den komplementären Prozessen einen Prozesses.

Helper.GetProcessInfoParallel

Parameter:

  • int ProcessId

Rückgabewert: List<SisProcessInfo>

Liefert eine Liste von Informationsobjekten zu den parallelen Prozessen einen Prozesses.

Helper.InsertLog

Parameter:

  • SisLog Log

Speichert einen Protokolleintrag in der Datenbank des aktuellen Accounts.

Helper.InsertLog

Parameter:

  • string Message

  • int Level

Speichert einen Protokolleintrag in der Datenbank des aktuellen Accounts. Mit dem Level wird der Typ des Eintrags festgelegt. 0 = Meldung, 1 = Fehler, 2 = Warnung, 3 = Nachricht, 4 = Rückmeldung, 5 = Debug

Helper.InsertMessage

Parameter:

  • string Message

  • int Level

Speichert eine Nachricht in der Broadcast-Datenbank des aktuellen Accounts. Diese Nachrichten werden in der Benutzeroberfläche angezeigt, aber nicht dauerhaft vorgehalten. Mit dem Level wird der Typ des Eintrags festgelegt. 0 = Meldung, 1 = Fehler, 2 = Warnung, 3 = Nachricht, 4 = Rückmeldung, 5 = Debug

Helper.InvokeUrl

Parameter:

  • string Url

  • string Method

  • JObject Header

  • string Data

  • bool Base64 (default: false)

Rückgabewert: string

Diese Methode führt einen HTTP-Request aus und liefert die Antwort als Zeichenkette zurück. Zusätzliche Header können als JObject übergeben werden. Einzelne Properties werden als einzelner Header-Parameter übernommen. Mit dem Parameter Base64 werden die abgerufenen Daten binär in Base64 konvertiert und zurückgegeben.

Helper.GetParameterList

Parameter:

  • string Name

  • string ConnectionId = null

  • string ProcessId = null

Rückgabewert: List<SisParam>

Ruft eine Parameterliste aus der internen Datenbank ab. Jeder Parameter hat einen Namen, einen Wert und eine ID. Zusätzlich können Parameter noch einer Verbindung oder einem Prozess zugeordnet werden. Das ist für die Strukturierung und Bereinigung sinnvoll.

Helper.SaveParameter

Parameter:

  • SisParam Parameter

  • string ConnectionId = null

  • string ProcessId = null

Speichert einen Parameter in der internen Datenbank.

Helper.DeleteParameter

Parameter:

  • int ParameterId

Löscht einen Parameter aus der internen Datenbank.

Helper.InvokeGetData

Parameter:

  • string ConnectionId

  • string TargetObject

  • List<SisParam> GetParams

Rückgabewert: JArray

Ruft Daten aus einer Verbindung ab. Das Schemaobjekt wird über TargetObject festgelegt. Die Liste der Parameter steuert die Abfrage. Dabei unterstützen nicht alle Verbindungen den gleichen Umfang an Optionen. Übliche Namen von Parametern sind: GETDATA_ID, GETDATA_RELATED_ID, GETDATA_RELATED, GETDATA_WHERE, GETDATA_MODIFIED, GETDATA_ORDER, LAST_SYNC_DATE, LAST_SYNC_VERSION Die Ausführung erfolgt über die Syncler API.

Helper.InvokeSetData

Parameter:

  • string ConnectionId

  • string TargetObject

  • JObject JsonObject

Rückgabewert: JObject

Speichert Daten über eine Verbindung. Das Schemaobjekt wird über TargetObject festgelegt. Zusätzliche Parameter, wie „DELETE“ (bool) können über die Eigenschaft „Params“ am JsonObjekt mitgegeben werden.

Helper.ServiceCall

Parameter:

  • string Method

  • string Url

  • string Data

Rückgabewert: string

Führt einen Aufruf der Syncler API aus. Als Url muss nur der Endpunkt übergeben werden.

Helper.InsertAction

Parameter:

  • int ProcessId

  • DateTime ExecuteDate

  • bool IsAdhoc

  • List<SisParam> ActionParams

Speichert einen neuen Warteschlangeneintrag für einen Prozess.

Parameter

SisParam.Name

Parameter Name (string)

SisParam.Value

Parameter Wert (object)

SisParam.ID

Parameter ID (int) Wird beim Speichern in der Datenbank gesetzt.

SisParam.GetValue()

Parameter Wert als String

SisParam.GetValue<T>(DefaultValue)

Parameter Wert als Typ T oder Default

SisParam.GetValueOrNull<T>()

Parameter Wert als Typ T oder Null

SisParam.HasValue()

Parameter hat einen Wert (bool)

Datenabbildung

SisDataMapping.ID

Interne Datenbank ID (int)

SisDataMapping.ProcessId

Zugeordneter Prozess (int)

SisDataMapping.Description

Datensatzbeschreibung (string)

SisDataMapping.SourceRecordId

ID des Quelldatensatzes (string)

SisDataMapping.TargetRecordId

ID des Zieldatensatzes (string)

SisDataMapping.LastSyncDate

Letztes Datum der Synchronisation (DateTime)

SisDataMapping.TargetIsDeleted

Zieldatensatz wurde gelöscht (bool)

SisDataMapping.LastSyncInfo

Parameterliste mit Änderungs- und Zusatzinformationen (List<SisParam>)

Prozessbeschreibung

SisProcessInfo.ID

Prozess ID (int)

SisProcessInfo.Name

Prozessname (string)

SisProcessInfo.DisplayName

Voller Prozessname (string)

SisProcessInfo.SourceObject

Names des Quelldatensatzes (string)

SisProcessInfo.TargetObject

Name des Zieldatensatzes (string)

SisProcessInfo.SourceConnectionId

Quellverbindung ID (int)

SisProcessInfo.TargetConnectionId

Zielverbindung ID (int)

SisProcessInfo.ClientNumber

Mandantennummer (int)

SisProcessInfo.IsScheduled

Zeitsteuerung ist aktiv (bool)

SisProcessInfo.SourceType

Typ der Quellverbindung (string)

SisProcessInfo.TargetType

Typ der Zielverbindung (string)

SisProcessInfo.ProcessType

Typ des Prozesses (string)

Protokoll

SisLog.CreatedDate

Erstelldatum (DateTime)

SisLog.Level

Level der Nachricht 0 (message) - 5 (debug) (int)

SisLog.ProcessId

Zugeordneter Prozess (int)

SisLog.ActionId

Zugeordneter Warteschlangeneintrag (int)

SisLog.RecordType

Names des Datensatzes (string)

SisLog.RecordId

ID des Datensatzes (string)

SisLog.LogMessage

Meldung (string)