philippr
Returning Spectator

Integration von externem System

Hallo liebe FirstSpirit-Freunde,

ich habe folgende Anforderung:

Wechselseitiger Datenaustausch (Inhalte die auf einer Webseite ausgespielt werden soll) zwischen FS und einem externen System (EXT).

Dazu verfügt EXT über eine REST-API mit der ich im JSON Format Daten abgreifen bzw. dort speichern kann oder auch eine Suche (auf Basis Lucene) tätigen kann. (Funktionen sollen primär im CC, nachgelagert aber auch im SA zur Verfügung stehen)

Es sollen die folgende Use Cases abgedeckt werden:

01 Neu in FS anlegen und an EXT übertragen

02 In FS ändern und an EXT übertragen

03 In FS löschen mit Löschweitergabe an EXT

04 Aus EXT auswählen und in FS übertragen (inkl. option zum regelmäßigen Abgleich von EXT nach FS)

Mein aktuelles Zielbild:

FS Datenquellen für das Datenhandling in FS.

- neu anlegen (01) bzw. ändern (02) und löschen (03) in FS und an EXT übertragen via Workflow (basierend auf BasicWorkflows)

Jetzt meine Frage:

Aus EXT in FS übertragen (04) wäre z.B. über ein DataAccessPlugin denkbar, welches als Report fungiert.

Frage 1:

Ist es in diesem Fall möglich bei Auswahl eines Datensatzes aus dem Report einen neuen Datensatz in FS zu erzeugen, der sich mit den Daten aus dem Report speist, oder nachgelagert weitere Informationen aus der REST-API abholt (sollte z.B. nur die ID, ein Thumbnail und eine Beschreibung über den Report abrufbar sein)?

Frage 2:

Fällt euch eine charmate Lösung ein, wie beim Übertragen aus dem Report in FS weitere Optionen durch den Redakteur bestimmt werden können (z.B. bestimmen, ob der Datensatz regelmäßig abgeglichen werden soll oder nicht)?

Bin für jegliche sachdienliche Hinweise zur Aufklärung der Fragen, wie immer sehr dankbar Smiley Wink

Viele Grüße und ein schönes Wochenende,

Philipp Renerig

4 Replies
mbergmann
Crownpeak employee

Hallo Philipp,

brauchst Du die Infos unbedingt als eigene Daten in FS? Wäre es eine Option, sozusagen komplett mit den Daten auf EXT zu arbeiten? Das sollte sich per DataAccessPlugin / FS_INDEX machen lassen. Du könntest dann im entsprechenden Report direkt die Daten in EXT ändern und auch Anlegen. Die einzelnen Objekte würden dann nur per FS_INDEX referenziert (was auch während der Generierung funktioniert).

Man würde sich dann die ganze Synchronisierungslogik (bei der der Teufel oft im Detail steckt) sparen.

Viele Grüße

Michael

Hallo Michael,

erstmal besten Dank für deine Rückmeldung.

Referenzierung statt Datensynchronisierung

Referenzierung und Livezugriff über die Referenz war auch meiner ersten Lösungsansätze. Wobei dann EXT ausfallsicher hätte dimensioniert werden müssen. Die Daten während der Generierung abzuholen war mir gar nicht in den Sinn gekommen.

Lokalisierung

Ein weiterer Punkt den ich oben gar nicht benannt hatte war, dass es auf dem Weg von EXT nach FS ggf. Anpassungen an den Inhalten geben kann, die nur für FS gelten. Hier ist es natürlich etwas einfacher wenn die Daten in FS vorgehalten werden. Ggf. wäre es aber eine Option die Lokalisierung auch in EXT vorzunehmen, so dass EXT wirklich als reiner Datenlieferant genutzt werden kann.

DataAccessPlugin

DataAccessPlugin müsste ich mir mal genauer anschauen (dazu gibt es ja bereits am 07.09. einen Termin Smiley Wink)

Vielen Dank,

Philipp

0 Kudos

Hallo Philipp,

wenn die Ausfallsicherheit sich nur auf das Live-System bezieht, wäre ein DAP eine Überlegung wert. Die sind grundsätzlich so aufgebaut, dass die zugrunde liegenden "Fremd-Objekte" nur über einen Identifier (String) von FS aus referenziert werden. Der Durchgriff auf die "Remote-Objekte" passiert im Template "transparent", d.h. man kann dort in der Ausgabe mit den entsprechenden Methoden der Fremd-Objekte arbeiten.

Du kannst das Ganze natürlich theoretisch auch mischen, also nur die "Ergänzenden" oder "überschreibenden" Daten in FS verwalten - z.B. in Datenquellen. Das würde man meiner Einschätzung nach auch für den Redakteur gut bedienbar hinbekommen (Original bearbeiten vs. lokale Anpassung vornehmen). Eine Idee wäre hier ein entsprechender Button auf dem Report-Snippet des jew. Elementes "lokal anpassen" der - falls es noch keinen gibt - einen entsprechenden Datensatz anlegt (identifiziert über den Identifier). Vorteil wäre hier, dass nur Datensätze für Objekte angelegt werden wenn wirklich Anpassungen gemacht werden. D.h. man hätte wenig bis keinen Synchronisierungsaufwand.

Je nach Performance von EXT was Anfragen betrifft (da es ggf. auch bei der Generierung befragt wird) kann mal da dann schauen ob man noch ein FS-seitiges Caching implementieren muss.

Wir hören uns dann wahrscheinlich nächsten Mittwoch 😉

Viele Grüße

Michael

Besten Dank für deine Einschätzungen.

Bis Mittwoch,

Philipp

0 Kudos