Diesmal weit im Osten: Sitecore Usergroup Treffen in Dresden

Theaterkahn Dresden

Eine Zugfahrt die ist lustig, eine Zugfahrt die ist schön… und führte uns von comspace zur Sitecore Usergroup ins ferne Dresden. Zu fünft haben wir uns am frühen Montag auf den Weg gemacht, um uns zum vierteljährlichen Get-Together mit Partnern, Sitecore und Kunden des Sitecore CMS auszutauschen, interessanten Vorträgen beizuwohnen und gemeinsam Anregungen für spannende neue Projekte zu sammeln.

„Diesmal weit im Osten: Sitecore Usergroup Treffen in Dresden“ weiterlesen

Unsere vier “Hidden Highlights” des Sitecore Symposiums 2018 in Orlando, Florida

Sitecore Community

comspace hat auch dieses Jahr wieder zwei Kollegen auf die weite Reise zum Sitecore Symposium geschickt. Nachdem die Folgen des Jetlags überwunden sind, möchten wir – das sind Friederike und Tim – mit diesem Beitrag unsere Eindrücke aus Orlando mit euch teilen. „Unsere vier “Hidden Highlights” des Sitecore Symposiums 2018 in Orlando, Florida“ weiterlesen

Team comspace auf der SUGCON 2018 in Berlin

Letzte Woche waren wir auf der SUGCON in Berlin. SUGCON steht für Sitecore Usergroup Conference. Gegründet in den Niederlanden ist die SUGCON nach 5 Jahren ein europäisches Event mit rund 600 Teilnehmern. Für mich war es nach Amsterdam und Kopenhagen die dritte Teilnahme und die SUGCON ist definitiv ein Highlight im Sitecore-Jahr! Man spürt einfach, dass es von der Community für die Community organisiert wurde und es sind Vortragende und Teilnehmer aus aller Welt da 🙂

„Team comspace auf der SUGCON 2018 in Berlin“ weiterlesen

JSON Service Provider for Data Exchange Framework

Endpoint JSON Service

Vor kurzem habe ich den JSON Service Provider for Data Exchange Framework auf GitHub veröffentlicht. Aber warum? Vielleicht hilft er euch beim Einstieg in die Entwicklung eines eigenen Providers oder dient sogar als Basis für euren eigenen Provider…
Und was kann der JSON Service Provider? Mittels dieses Providers können Daten aus einem beliebigen JSON REST Service ausgelesen werden, um dann beispielsweise mittels des Sitecore Provider for Data Exchange Framework an Contacts oder Items persistiert zu werden.
Zum leichteren Verständnis habe ich in dem GitHub-Repository einen vorkonfigurierten Demo Tenant zur Synchronisation der Jokes von https://api.chucknorris.io/ mitgeliefert. Zusammengefasst habe ich dort folgende Schritte durchgeführt:

1. Konfiguration Endpoint

Am Endpoint werden die Zugangsdaten zum JSON Service und die konkreten URLs zum Auslesen aller JSON-Objekte oder eines einzelnen Objekts (Token “{id}” wird im jeweiligen Pipeline Step durch definierten Identifier ersetzt) hinterlegt.
Endpoint JSON Service

2. Konfiguration Value Accessor mit JSONPath

Der lesende Zugriff auf die JSON-Attribute wird mittels JSONPath definiert, was maximale Flexibilität, auch für verschachtelte JSON-Objekte, bietet.
ValueAccessor mit JSONPath

JSON Path Beispiele

Auf das folgende JSON-Objekt 

{
 	"firstname":"Max",
     "lastname":"Mustermann",
	"addresses":
	[
		{
			"id": 7,
			"type": "Shipping",
			"street": "Bahnhofsstrasse 7",
			"city": "Bielefeld"
			"postalcode": "33333"
		},
        {
			"id": 13,
			"type": "Invoice",
			"street": "Hauptstrasse 7",
			"city": "Hamburg"
			"postalcode": "22222"
		}
	]
}
JSON-Beispiel

kann beispielsweise mit folgenden JSONPath Ausdrücken zugegriffen werden:
$.firstname ==> "Max"
$.addresses[?(@.type=='Invoice')].city ==> "Hamburg"
$.addresses[(@.length-1)].type ==> "Invoice"
JSON-Objekt

3. Sitecore Provider konfigurieren

  • Sitecore Endpoint anlegen
  • Ziel-Template “Joke” definieren
  • Value Accessor für die Felder des Joke-Templates konfigurieren

4. Value Mapping konfigurieren

Das Übliche halt… Id => ExternalId, Value => Text

5. Pipelines konfigurieren

Im Grunde handelt es sich hier um eine Basis-Konfiguration zum Import von externen Daten nach Sitecore.
ReadJsonObjectsStepProcessor
Die Pipeline “Sync Jokes” liest die Daten aus der externen Datenquelle und iteriert darüber.
Die Pipeline “Sync Joke” ermittelt das ggf. zum externen Identifier schon existierende Item in Sitecore, führt das oben konfigurierte Mapping aus und speichert das Sitecore Item.
Der im obigen Screen geöffnete Pipeline Step “Read Jokes” basiert auf dem mit dem Json Service Provider implementierten PipelineStep “ReadJsonObjectsStepProcessor”. Dieser erwartet den zu verwendenden Endpoint und optional einen JSONPath zur Ermittlung des Root-Knotens im JSON-Response.

6. Pipeline Batch starten

Jetzt müsst ihr nur noch den Pipeline Batch einrichten und ausführen. Idealerweise erhaltet ihr folgendes Ergebnis:
25.11.2017 18:22:50 INFO 8 json objects were read from endpoint. (pipeline step: 1 Read Jokes, endpoint: Chuck Norris Jokes API)
25.11.2017 18:22:51 INFO 8 elements were iterated. (pipeline: Sync Jokes – Pipeline, pipeline step: 2 Iterate Jokes)
Und ihr findet unterhalb von content/home die importierten Jokes, wie z.B.
“Wie viele Liegestütze schafft Chuck Norris? Alle.”

Zusammenfassung

Für das Setup dieses Demo Tenants habe ich ca. 1 Stunde benötigt. Zugegeben, es ist nicht die erste Anwendung des Providers meinerseits, aber in der Zeit hätte ich den Import nicht von Hand neu schreiben können.
Habt ihr Fragen dazu oder selber schon Erfahrung mit dem JSON Service Provider gemacht? Dann freue ich mich auf euer Feedback in einem Kommentar!