# Erstellen eines Syncjobs
Hier werden Beispiele dargestellt, wie unterschiedliche Syncjobtypen erstellt werden können. Wichtig ist hierbei, dass mindestens der Name des Syncjobs (name), die Synchronisierungsrichtung (syncDirection) sowie das Synchronisationsziel (syncTargetSystem) angegeben werden müssen.
Für den Namen kann ein Wert frei ausgesucht werden, für die Synchronisierungsrichtung ist einer der folgenden Werte erlaubt:
syncDirection:
- "ToElo"
- "ToThirdSystem"
- "TwoWay"
Als Synchronisationsziel werden aktuell die folgenden Werte unterstützt:
syncTargetSystem:
- "Sharepoint"
- "OneDrive"
# Veröffentlichungsauftrag
Nachfolgendes Beispiel zeigt das Anlegen eines Veröffentlichungsauftrags, bei dem Dokumente und Ordner von ELO nach Sharepoint übertragen werden. In der Beispiel-Request sind alle für die Ausführung benötigten Pflichtfelder gesetzt.
Weitere optionale Felder können noch angegeben werden.
Eine Übersicht über den Aufbau eines Syncjob-Objektes mit allen Feldern findet sich hier: SyncJobEntity
Falls Werte fehlen, die zur Ausführung benötigt werden, wie z.B. die Synchronisierungs Quell- und Zielpfade, können diese auch nachträglich per Update hinzugefügt bzw. gefüllt werden.
Dies wird in dem Beispiel Aktualisieren eines Syncjobs näher erklärt.
Information
Bei Veröffentlichungsaufträgen werden keine Maskenangaben benötigt, da die Drittsysteme Metadaten unterschiedlich handhaben. Sollen die Metadaten trotzdem übernommen werden, kann dies über die Metadatenzuordnung spezifiziert werden.
POST /odata/syncjobs?repository=repo1
Content-Type: application/json
Header: Authorization: <bearer_token>
{
"name":"Publish ELO -> Sharepoint",
"syncDirection": "ToElo",
"syncTargetSystem": "Sharepoint",
"eloSystemSyncTarget":{
"folderName":"<elo-folder-name>",
"folderId":"<elo-folder-id-int>"
},
"sharepointSyncTarget":{
"listId":"<sharepoint-list-id>",
"siteId":"<sharepoint-site-id>",
"name":"<sharepoint-target-display-name>"
}
}
# Archivierungsauftrag
In nachfolgendem Beispiel wird ein Archivierungsauftrag erstellt, welcher den Inhalt eines SharePoint Online-Ordners in einen ELO-Ordner archiviert. In der Beispiel-Request sind alle für die Ausführung benötigten Pflichtfelder gesetzt.
Weitere optionale Felder können noch angegeben werden.
Eine Übersicht über den Aufbau eines Syncjob-Objektes mit allen Feldern findet sich hier: SyncJobEntity
POST /odata/syncjobs?repository=repo1
Content-Type: application/json
Header: Authorization: <bearer_token>
{
"name":"New SyncJob",
"syncDirection": "ToElo",
"syncTargetSystem": "Sharepoint",
"masks":[
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"DocMask"
},
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"FolderMask"
}
],
"eloSystemSyncTarget":{
"folderName":"<elo-folder-name>",
"folderId":"<elo-folder-id-int>"
},
"sharepointSyncTarget":{
"listId":"<sharepoint-list-id>",
"siteId":"<sharepoint-site-id>",
"name":"<sharepoint-target-display-name>"
}
}
# Synchronisierungsauftrag
In nachfolgendem Beispiel wird gezeigt, wie ein Synchronisierungsaufrag mit allen für die Ausführung benötigten Pflichtfeldern direkt angelegt werden kann.
Weitere optionale Felder können noch angegeben werden.
Eine Übersicht über den Aufbau eines Syncjob-Objektes mit allen Feldern findet sich hier: SyncJobEntity
POST /odata/syncjobs?repository=repo1
Content-Type: application/json
Header: Authorization: <bearer_token>
{
"name":"Sync ELO <-> Sharepoint",
"syncDirection": "TwoWay",
"syncTargetSystem": "Sharepoint",
"masks":[
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"DocMask"
},
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"FolderMask"
}
],
"eloSystemSyncTarget":{
"folderName":"<elo-folder-name>",
"folderId":"<elo-folder-id-int>"
},
"sharepointSyncTarget":{
"listId":"<sharepoint-list-id>",
"siteId":"<sharepoint-site-id>",
"name":"<sharepoint-target-display-name>"
}
}
# Auftrag mit allen Eigenschaften
Je nach Auftragstyp können unterschiedliche Eigenschaften angegeben werden. Eigenschaften, die für den jeweiligen Auftragstyp nicht existieren, werden ignoriert.
Nachfolgendes Beispiel zeigt, welche Eigenschaften bei einem Syncjob generell angegeben werden können:
POST /odata/syncjobs?repository=repo1
Content-Type: application/json
Header: Authorization: <bearer_token>
{
"name":"New SyncJob",
"syncDirection": "ToElo",
"syncTargetSystem": "Sharepoint",
"isActive":true,
"masks":[
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"DocMask"
},
{
"eloMaskId":"<mask-id-int>",
"name":"<mask-display-name>",
"type":"FolderMask"
}
],
"eloSystemSyncTarget":{
"folderName":"<elo-folder-name>",
"folderId":"<elo-folder-id-int>"
},
"settings":[
{
"category":"Approvals",
"name":"MaxSyncDocumentSize",
"value":"5242880", // Example: 5MB in Byte
"hierarchyContext":"SyncJob"
},
{
"category":"Approvals",
"name":"MaxSyncableDocuments",
"value":"50", // Example: 50 Documents
"hierarchyContext":"SyncJob"
},
{
"name":"ShMetadataMappings",
"category":"MetadataMappings",
"value":"{\"eloField\":\"Ordner\\\\ELOINDEX\",\"thirdSystemField\":\"3\\\\Shared Documents\\\\Title\"}",
"hierarchyContext":"SyncJob"
},
{
"name":"ShOnlineMetadataExportType",
"value":"AsJson",
"hierarchyContext":"SyncJob"
},
{
"name": "MaxFolderReferencesDepthPublish",
"value": "50",
"hierarchyContext": "SyncJob"
},
{
"name": "ShOnlineArchivedEntriesReplacementMode",
"value": "ReplaceByUrlFile",
"hierarchyContext": "SyncJob"
},
{
"name": "SyncConflictResolutionStrategy",
"value": "1",
"hierarchyContext": "SyncJob"
}
],
"sharepointSyncTarget":{
"listId":"<sharepoint-list-id>",
"siteId":"<sharepoint-site-id>",
"name":"<sharepoint-target-display-name>"
},
"timeTrigger":{
"timePeriod":"Weekly",
"timeZoneId":"Europe/Berlin",
"cronJobFormatValue":"* 00 22 * * 1",
"isActive":true
}
}