Zum Hauptinhalt springen

Inhaltselemente

Sobald Sie einen Inhaltstyp definiert haben, können Sie Elemente dieses Typs hinzufügen - die sogenannten Inhaltselemente.

1. Abfrage von Inhaltselementen

Ruft alle Inhaltselemente ab, unabhängig von ihrem Typ.

Beispiel:

GET https://dev.iclportal.com/api/content?$inlinecount=allpages&$top=20 HTTP1.1
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Die Antwort ist ein JSON-Array mit Inhaltselementen:

{
"result": {
"__count": 2932,
"results": [
{
"bezeichnung": "Wien, Hansonstrasse 23",
"adresse": "Hansonstrasse 23",
"ort": "Wien",
"nummer": "GB-00012",
"plz": "1100",
"contentItemId": "18c7a93c-0865-4922-af34-31d112e4d2ac",
"externalId": "OPTI-Q1",
"lastModificationTime": "2020-10-09T13:19:29.673Z",
"isDeleted": false,
"creatorUserId": null,
"creatorUser": null,
"lastModifierUserId": 2,
"lastModifierUser": "Antoine Gadget",
"title": "Wien, Hansonstrasse 23"
},
...
]
},
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}

Sie können die API mit der OData v3 Abfragesyntax abfragen. Da dieser Endpunkt jedoch Elemente aller Typen liefert, können nur die allgemeinen Felder zum Filtern verwendet werden. Diese sind: contentItemId, title, externalId. Alle benutzerdefinierten Felder, die vom Endpunkt zurückgegeben werden, können nicht zum Filtern verwendet werden.

Beispiel:

GET https://dev.iclportal.com/api/content?$filter=substringof('hansonstrasse',tolower(Title))&$inlinecount=allpages&$top=20 HTTP1.1
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...
Attributnamen in Großbuchstaben

Beachten Sie, dass die Eigenschaft Title in der Abfragezeichenfolge in Großbuchstaben geschrieben wird. Dies ist eine Anforderung von OData v3.

Die Antwort ist ein JSON-Array mit Inhaltselementen:

{
"result": {
"__count": 1,
"results": [
{
"bezeichnung": "Wien, Hansonstrasse 23",
"adresse": "Hansonstrasse 23",
"ort": "Wien",
"nummer": "GB-00012",
"plz": "1100",
"contentItemId": "18c7a93c-0865-4922-af34-31d112e4d2ac",
"externalId": "OPTI-Q1",
"lastModificationTime": "2020-10-09T13:19:29.673Z",
"isDeleted": false,
"creatorUserId": null,
"creatorUser": null,
"lastModifierUserId": 2,
"lastModifierUser": "Antoine Gadget",
"title": "Wien, Hansonstrasse 23"
}
]
},
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}

1. Abfrage von Inhaltselementen eines bestimmten Typs

Ruft alle Inhaltselemente eines bestimmten Typs ab.

Beispiel:

GET https://dev.iclportal.com/api/content/building?$inlinecount=allpages&$top=20 HTTP1.1
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Die Antwort ist ein JSON-Array mit Inhaltselementen:

{
"result": {
"__count": 2932,
"results": [
{
"bezeichnung": "Wien, Hansonstrasse 23",
"adresse": "Hansonstrasse 23",
"ort": "Wien",
"nummer": "GB-00012",
"plz": "1100",
"contentItemId": "18c7a93c-0865-4922-af34-31d112e4d2ac",
"externalId": "OPTI-Q1",
"lastModificationTime": "2020-10-09T13:19:29.673Z",
"isDeleted": false,
"creatorUserId": null,
"creatorUser": null,
"lastModifierUserId": 2,
"lastModifierUser": "Antoine Gadget",
"title": "Wien, Hansonstrasse 23"
},
...
]
},
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}

Sie können die API mit der OData v3 Abfragesyntax abfragen. Jedes benutzerdefinierte oder interne (title, externalid, contentItemId) Feld kann verwendet werden.

Beispiel:

GET https://dev.iclportal.com/api/content/building?$filter=substringof('hansonstrasse',tolower(Adresse))&$inlinecount=allpages&$top=20 HTTP1.1
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...
Attributnamen in Großbuchstaben

Beachten Sie, dass die Eigenschaft Adresse in der Abfragezeichenfolge in Großbuchstaben geschrieben wird, obwohl sie im Inhaltstyp kleingeschrieben definiert werden muss. Dies ist eine Anforderung von OData v3.

Die Antwort ist ein JSON-Array mit Inhaltselementen:

{
"result": {
"__count": 1,
"results": [
{
"bezeichnung": "Wien, Hansonstrasse 23",
"adresse": "Hansonstrasse 23",
"ort": "Wien",
"nummer": "GB-00012",
"plz": "1100",
"contentItemId": "18c7a93c-0865-4922-af34-31d112e4d2ac",
"externalId": "OPTI-Q1",
"lastModificationTime": "2020-10-09T13:19:29.673Z",
"isDeleted": false,
"creatorUserId": null,
"creatorUser": null,
"lastModifierUserId": 2,
"lastModifierUser": "Antoine Gadget",
"title": "Wien, Hansonstrasse 23"
}
]
},
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
Portal UI zum Erstellen von Abfragen verwenden

Um die Abfrage zu erstellen, können Sie einfach die iCL Portal Datentabelle des jeweiligen Inhaltstyps verwenden und dort die Sortierungen und Filter angeben. Verwenden Sie dann die Entwicklungswerkzeuge Ihres Browsers, um die erstellte Abfrage auf der Registerkarte Netzwerk zu betrachten:

3. Erstellen eines Inhaltsartikels

Erzeugt einen neuen Inhaltsartikel. Beachten Sie, dass nur erforderliche Felder angegeben werden müssen. Wenn Sie ein Element erstellen, das über ein Inhaltsfeld vom Typ ContentItem auf ein anderes verweist (z.B. Sie erstellen ein Gebäude, das zu einer Site gehört), können Sie diese Site entweder über ihre contentItemId oder externalId angeben.

Beispiel

POST https://dev.iclportal.com/api/content/building
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

{
"externalId":"HG",
"buildingname":"HG10223",
"strasse":"Hansongasse 23",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien"
}

Die Antwort ist das vollständige JSON-Objekt - einschließlich aller internen Felder.

{
"buildingname":"HG10223",
"strasse":"Hansongasse 23",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien",
"contentItemId":"39d83715-b7d0-4a1e-88a7-bed24d5ab8a0",
"_id":"a8218840-e764-46b7-a289-9e52b65cff66",
"externalId":"HG",
"lastModificationTime":"2023-03-14T12:42:41.1951367Z",
"isDeleted":false,
"creatorUserId":2,
"creatorUser":"Antoine Gadget",
"lastModifierUserId":null,
"lastModifierUser":null
}

4. Abrufen eines Inhaltselements

Durch Angabe der internen _id, contentItemId oder externalId können Sie ein Element abrufen.

Die folgenden Anfragen liefern alle das gleiche Ergebnis:

Beispiel: Verwendung der internen _id

Get https://dev.iclportal.com/api/content/building/a8218840-e764-46b7-a289-9e52b65cff66
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Beispiel: Verwendung der contentItemId

Get https://dev.iclportal.com/api/content/building/39d83715-b7d0-4a1e-88a7-bed24d5ab8a0
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Beispiel: Verwendung der externalId

Get https://dev.iclportal.com/api/content/building/HG
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Rückgabe:

{
"buildingname":"HG10223",
"strasse":"Hansongasse 23",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien",
"contentItemId":"39d83715-b7d0-4a1e-88a7-bed24d5ab8a0",
"_id":"a8218840-e764-46b7-a289-9e52b65cff66",
"externalId":"HG",
"lastModificationTime":"2023-03-14T12:42:41.1951367Z",
"isDeleted":false,
"creatorUserId":2,
"creatorUser":"Antoine Gadget",
"lastModifierUserId":null,
"lastModifierUser":null
}

5. Aktualisieren eines Inhaltselements

Aktualisiert ein bestehendes Inhaltselement. Wenn Sie ein Element erstellen, das über ein Inhaltsfeld vom Typ ContentItem auf ein anderes verweist (z.B. Sie erstellen ein Gebäude, das zu einer Site gehört), können Sie diese Site entweder über ihre contentItemId oder externalId angeben. Sie können die interne _id, contentItemId oder externalId verwenden, um ein Element zu identifizieren.

PUT ersetzt alle Daten

Diese Methode ist kein PATCH, sondern eine PUT Operation. Alle Attribute, die nicht in der Anfrage enthalten sind, werden aus dem Artikel gelöscht!

Beispiel - Verwendung von externalId, aber Weglassen des Feldes strasse

PUT https://dev.iclportal.com/api/content/building/HG
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

{
"externalId":"HG",
"buildingname":"HG10223",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien"
}

Die Antwort ist das vollständige json-Objekt - einschließlich aller internen Felder. Beachten Sie, dass das Feld strasse in der Anfrage ausgelassen wurde und daher aus dem Objekt entfernt wird.

{
"buildingname":"HG10223",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien",
"contentItemId":"39d83715-b7d0-4a1e-88a7-bed24d5ab8a0",
"_id":"a8218840-e764-46b7-a289-9e52b65cff66",
"externalId":"HG",
"lastModificationTime":"2023-03-14T12:42:41.1951367Z",
"isDeleted":false,
"creatorUserId":2,
"creatorUser":"Antoine Gadget",
"lastModifierUserId":null,
"lastModifierUser":null
}

6. Löschen eines Inhaltselements

Löscht ein bestehendes Inhaltselement. Sie können die interne _id, contentItemId oder externalId verwenden, um ein Element zu identifizieren.

Dies ist ein sanftes Löschen

Inhaltselemente werden nie wirklich aus der Datenbank gelöscht, um Datenverluste zu vermeiden. Stattdessen wird ihre Spalte IsDeleted auf true gesetzt und sie werden aus allen zukünftigen Anfragen herausgefiltert.

Beispiel - Verwendung von externalId

DELETE https://dev.iclportal.com/api/content/building/HG
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

Die Antwort wird leer sein und den entsprechenden Statuscode enthalten:

  • 200 OK für Erfolg,
  • 400 Fehlerhafte Anfrage, falls Sie etwas falsch gemacht haben
  • 404 Nicht gefunden, falls das Objekt nicht existiert oder zuvor gelöscht wurde

7. Hinzufügen/Aktualisieren mehrerer Inhaltselemente auf einmal

Dieser Endpunkt ermöglicht es Ihnen, mehrere Inhaltselemente in einem Stapel hinzuzufügen oder zu aktualisieren. Die Elemente werden durch ihre externalId identifiziert. Wenn ein Element gefunden wird, wird es aktualisiert. Wenn nicht, wird ein neues Element erstellt.

eine Aktualisierung ersetzt alle Daten

Wenn ein vorhandenes Element gefunden wird, verhält sich die Aktualisierung wie eine PUT-Operation. Alle Attribute, die nicht in der Anfrage enthalten sind, werden aus dem Eintrag gelöscht!

Wenn ein Element Validierungsfehler aufweist, wird der gesamte Stapel zurückgesetzt. Wenn ein Element ein anderes über ein Inhaltsfeld vom Typ ContentItem referenziert (z.B. wenn Sie ein Gebäude erstellen, das zu einer Site gehört), können Sie diese Site entweder über ihre contentItemId oder externalId angeben.

Beispiel

PUT https://dev.iclportal.com/api/content/building/batch
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

[
{
"externalId":"HG",
"buildingname":"HG10223",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien"
},
{
"externalId":"LHS101",
"buildingname":"LANHS101",
"stiege":"10",
"strasse":"Landstraßer Hauptstraße",
"stock":1,
"topnr":"GO11",
"plz":"1030",
"ort":"Wien"
}
}

Die Antwort ist eine Zusammenfassung aller erfolgreichen oder fehlerhaften Hinzufügungen oder Aktualisierungen:

{
"errored": [
{
"externalId": "HG",
"error": "The field 'strasse' is required"
}
],
"succeeded": [
{
"externalId": "LHS101",
"id": "65942320-d1c4-420d-b768-b0ca1ca35fba" // die contentitemid des erstellten Elements
}
]
}

8. Hinzufügen/Aktualisieren mehrerer Inhaltselemente auf einmal - Fehler ignorieren

Dieser Endpunkt ermöglicht es Ihnen, mehrere Inhaltselemente in einem Stapel hinzuzufügen oder zu aktualisieren. Die Elemente werden durch ihre externalId identifiziert. Falls ein Element gefunden wird, wird es aktualisiert. Wenn nicht, wird ein neues Element erstellt.

eine Aktualisierung ersetzt alle Daten

Wenn ein vorhandenes Element gefunden wird, verhält sich die Aktualisierung wie eine PUT-Operation. Alle Attribute, die nicht in der Anfrage enthalten sind, werden aus dem Eintrag gelöscht!

Im Falle eines Fehlers wird die Operation fortgesetzt. Alle gültigen Einträge werden gespeichert. Es findet kein Rollback statt.

Für Integrationsszenarien

Dieser Endpunkt ist für Integrationsszenarien mit Tools wie SSIS oder Azure Data Factory gedacht. Im Falle eines Fehlers können Sie diesen z.B. per E-Mail an den Benutzer im Quellsystem zurücksenden, sodass er die Probleme mit den fehlgeschlagenen Elementen beheben kann

Wenn ein Element über ein Inhaltsfeld vom Typ ContentItem auf ein anderes verweist (z.B. wenn Sie ein Gebäude erstellen, das zu einer Site gehört), können Sie diese Site entweder über ihre contentItemId oder externalId angeben.

Beispiel

PUT https://dev.iclportal.com/api/content/building/batch
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

[
{
"externalId":"HG",
"buildingname":"HG10223",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien"
},
{
"externalId":"LHS101",
"buildingname":"LANHS101",
"stiege":"10",
"strasse":"Landstraßer Hauptstraße",
"stock":1,
"topnr":"GO11",
"plz":"1030",
"ort":"Wien"
}
}

Die Antwort ist eine Zusammenfassung aller erfolgreichen oder fehlerhaften Hinzufügungen oder Aktualisierungen:

{
"errored": [
{
"externalId": "HG",
"error": "The field 'strasse' is required"
}
],
"succeeded": [
{
"externalId": "LHS101",
"id": "65942320-d1c4-420d-b768-b0ca1ca35fba" // die contentitemid des erstellten Elements
}
]
}

9. Änderungen von Elementen aller Typen abrufen

Dieser Endpunkt gibt alle Inhaltselemente unabhängig von ihrem Typ zurück, die seit einem bestimmten Zeitpunkt geändert wurden. Dieser Zeitpunkt wird als changeToken bezeichnet und als Abfrageargument angegeben. Wenn Sie dieses changeToken weglassen, erhalten Sie im Wesentlichen alle Inhaltselemente.

Verwenden Sie dies für die inkrementelle Datensynchronisation

Dieser Endpunkt ist für Integrationsszenarien gedacht, bei denen Sie Inhaltselemente von iCL Portal mit einem externen System Ihrer Wahl synchronisieren müssen. Um so effizient wie möglich zu sein, ermöglicht er Ihnen, inkrementelle Änderungen zu erhalten, sodass Sie nicht eine ständig wachsende Liste von Objekten durchgehen müssen, bis Sie auf Timeouts stoßen.

Das folgende Beispiel zeigt die erste Anfrage (ohne den cangeToken)

GET https://dev.iclportal.com/api/content/getchanges
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

verwenden Sie 0 für den changeToken in swagger

Leider versteht Swagger nicht, dass chagneToken ein optionaler Parameter ist. Um mit diesem Endpunkt in der Swagger-Benutzeroberfläche spielen zu können, verwenden Sie den Wert 0. Der Endpunkt wird diesen magischen Wert einfach ignorieren

Die Antwort enthält alle Elemente, die seit diesem Zeitpunkt geändert wurden und enthält ein NextChangeToken, das verwendet werden kann, um die nächste Seite von Chagnes zu erhalten. Alternativ können Sie auch den NextLink verwenden.

begrenzt auf 500 Ergebnisse

Beachten Sie, dass die Ergebnismenge auf 500 Einträge begrenzt ist. Sie müssen die Daten durchblättern, wenn Sie mehr als 500 Einträge/Änderungen haben.

{
"Results": [
{
"bezeichnung": "LSHS101-1030",
"adresse": "Landstraßer Hauptstraße 101",
"ort": "Wien",
"nummer": "101",
"contentItemId": "683a34a9-b832-490a-8ab1-5d98aafc7d7f",
"externalId": "LSHS101-1030",
"lastModificationTime": "2018-11-20T15:21:43.767Z",
"isDeleted": true,
"$type": "gebaude"
},
{
"beschreibung": "Der DHL Bote findet den Eingang zu Opti-Q (Altstiege 2) nie",
"objektid": "683a34a9-b832-490a-8ab1-5d98aafc7d7f",
"gewerk": "Paketdienst",
"status": 0,
"frist": "2018-11-29T23:00:00Z",
"contentItemId": "f66ba90c-819d-40c4-acdc-984220ba04b0",
"externalId": null,
"lastModificationTime": "2018-12-11T15:55:05.963Z",
"isDeleted": true,
"$type": "mangel"
},
...
],
"NextChangeToken": "AAAAAAADRF8",
"NextLink": "https://testportal.opti-q.com/api/content/getchanges?changeToken=AAAAAAADRF8"
}

Da der Inhaltstyp nicht angegeben ist, enthält jedes Ergebnis ein Attribut $type, das den Inhaltstyp des Elements angibt. Sobald Sie die letzte Seite erreicht haben, ist das Array Results leer und der NextChageToken wird sich nicht mehr ändern.

dieser Endpunkt gibt auch gelöschte Einträge zurück

Da dieser Endpunkt für Synchronisierungsszenarien gedacht ist, gibt er auch gelöschte Objekte zurück. In diesem Fall wird ihr Attribut isDeleted auf true gesetzt.

10. Änderungen von Elementen eines bestimmten Typs abrufen

Dieser Endpunkt gibt alle Inhaltselemente unabhängig von ihrem Typ zurück, die seit einem bestimmten Zeitpunkt geändert wurden. Dieser Zeitpunkt wird als changeToken bezeichnet und als Abfrageargument angegeben. Wenn Sie dieses changeToken weglassen, erhalten Sie im Wesentlichen alle Inhaltselemente.

Verwenden Sie dies für die inkrementelle Datensynchronisation

Dieser Endpunkt ist für Integrationsszenarien gedacht, bei denen Sie Inhaltselemente von iCL Portal mit einem externen System Ihrer Wahl synchronisieren müssen. Um so effizient wie möglich zu sein, ermöglicht er Ihnen, inkrementelle Änderungen zu erhalten, sodass Sie nicht eine ständig wachsende Liste von Objekten durchgehen müssen, bis Sie auf Timeouts stoßen.

Das folgende Beispiel zeigt die erste Anfrage (ohne den cangeToken)

GET https://dev.iclportal.com/api/content/building/getchanges
Content-Type: application/json;charset=UTF-8
Accept-Encoding: gzip, deflate
Authorization: Bearer ..the auth_token...

verwenden Sie 0 für den changeToken in swagger

Leider versteht Swagger nicht, dass chagneToken ein optionaler Parameter ist. Um mit diesem Endpunkt in der Swagger-Benutzeroberfläche spielen zu können, verwenden Sie den Wert 0. Der Endpunkt wird diesen magischen Wert einfach ignorieren

Die Antwort enthält alle Elemente, die seit diesem Zeitpunkt geändert wurden und enthält ein NextChangeToken, das verwendet werden kann, um die nächste Seite von Chagnes zu erhalten. Alternativ können Sie auch den NextLink verwenden.

begrenzt auf 500 Ergebnisse

Beachten Sie, dass die Ergebnismenge auf 500 Einträge begrenzt ist. Sie müssen die Daten durchblättern, wenn Sie mehr als 500 Einträge/Änderungen haben.

{
"Results": [
{
"bezeichnung": "LSHS101-1030",
"strasse": "Landstraßer Hauptstraße 101",
"ort": "Wien",
"topnr": "101",
"contentItemId": "683a34a9-b832-490a-8ab1-5d98aafc7d7f",
"externalId": "LSHS101-1030",
"lastModificationTime": "2018-11-20T15:21:43.767Z",
"isDeleted": true
},
{
"buildingname":"HG10223",
"strasse":"Hansongasse 23",
"stiege":"1",
"stock":4,
"topnr":"43",
"plz":"1010",
"ort":"Wien",
"contentItemId":"39d83715-b7d0-4a1e-88a7-bed24d5ab8a0",
"externalId":"HG",
"lastModificationTime":"2023-03-14T12:42:41.1951367Z",
"isDeleted":false
},
...
],
"NextChangeToken": "AAAAAAADRF8",
"NextLink": "https://testportal.opti-q.com/api/content/getchanges?changeToken=AAAAAAADRF8"
}

Da der Inhaltstyp explizit angegeben wird, enthalten die Elemente nicht das Attribut $type. Wenn Sie die letzte Seite erreicht haben, wird das Array Results leer sein und der NextChageToken wird sich nicht mehr ändern.

dieser Endpunkt gibt auch gelöschte Einträge zurück

Da dieser Endpunkt für Synchronisierungsszenarien gedacht ist, gibt er auch gelöschte Objekte zurück. In diesem Fall wird ihr Attribut isDeleted auf true gesetzt.

Direkt auf die letzte Seite gelangen

Da es keine weiteren Änderungen mehr gibt, gibt das System einfach die letzte verfügbare Änderung zurück, was in der Regel genau der gleiche Änderungs-Token ist, den wir gerade in der Anfrage verwendet haben.

Sie können jedoch diesen Mechanismus nutzen, um direkt zur letzten Seite der geänderten Inhaltselemente zu gelangen, indem Sie den höchstmöglichen Änderungs-Token __________8 verwenden. Dies ist praktisch, wenn Sie nur die Änderungen von jetzt abrufen wollen und nicht alle historischen Änderungen durchgehen wollen.

11. Herunterladen einer Excel-Vorlage

Mit diesem Endpunkt können Sie eine Excel-Arbeitsmappe herunterladen, mit der Sie Inhaltselemente in das iCL Portal importieren können. Füllen Sie dazu die Arbeitsmappe aus und ziehen Sie sie per Drag-and-Drop in ein beliebiges Inhaltselement-Datentraster.

behält nicht angegebene Spalten

Falls eines der importierten Elemente bereits existiert, werden die Elementeigenschaften mit den Werten aus der Importdatei aktualisiert. Wenn eine Spalte nicht angegeben ist, wird das Feld nicht aus dem Artikel gelöscht, sondern einfach nicht berührt. Auf diese Weise können Sie nur bestimmte Felder eines Inhaltsartikels aktualisieren, ohne etwas anderes zu löschen, das nicht angegeben ist!

Beachten Sie, dass die Spalte ExternalId in diesem Fall erforderlich ist. Damit wird sichergestellt, dass Benutzer nicht versehentlich dieselbe Excel Arbeitsmappe mehrfach hochladen und dadurch doppelte Daten erhalten!