Sitecore Data Exchange Framework aus der Praxis

Sitecore Layer für Data Exchange Framework

Lesson Learned im Integration Bootcamp auf dem Symposium in Vegas: Das Data Exchange Framework wird DEF abgekürzt und nicht DXF, es heißt ja schließlich nicht Data Experience Framework 😉
Das hier wird kein DEF Tutorial, davon gibt es ausreichend. Eine erste Einordnung und hilfreiche Links zum Einstieg findet ihr in meinem letzten Post zu diesem ThemaMit dem aktuellen Beitrag möchte ich einfach meine Erfahrung aus der Arbeit mit dem DEF in den vergangenen Monaten mit euch teilen.
Die erste Implementierung eines Custom DEF Providers zum Im- und/oder Exportieren von Daten dauert mit Sicherheit länger als wenn ihr wie gewohnt einen Importer bzw. Exporter ohne das DEF schreiben würdet. Aber später führen kleinste Anpassungen dann fast immer zu einem zusätzlichen Implementierungsaufwand. Mit dem DEF können Attribut-Umbenennungen, Mapping-Anpassungen und Datenkonvertierungen einfach konfigurativ vorgenommen werden. Und mal ehrlich, die lästigen Quellcode-seitigen Attribut-Mappings ersparen wir uns ja auch sehr gerne…
Hinzu kommt: Ihr könnt euch eigene wiederverwendbare Provider schreiben, wie in meinem Fall ein generischer JSON Service Provider. Damit können wir JSON-Daten aus unterschiedlichen Quellen lesen und dann mittels des Standard Sitecore Providers in Contacts oder Items schreiben. Im Projekt ist dann nur noch der Endpoint, die zu lesenden Attribute und das Mapping zu konfigurieren und – falls für die Persistierung der Daten nötig – Template-Erweiterungen oder Contact-Facet-Erweiterungen zu implementieren.
Eine abgespeckte Version des JSON Service Providers könnt ihr euch auf Github anschauen, vielleicht hilft es ja beim ersten Einstieg.
Sitecore Layer für Data Exchange Framework

Und sonst?

Es ist ein Framework, es macht nicht unsere Arbeit, aber es ist ein tolles Werkzeug. Was uns noch an Funktionalität fehlt, können wir erweitern.
So haben wir z.B. den Sitecore Provider um eigene Pipeline Steps ergänzt:

  • UpdateWorkflow: Aktualisiert den Workflow Status eines Sitecore Items
  • CreateMediaItem: Erzeugt ein Sitecore MediaItem basierend auf einem Bildpfad
  • EnrollEngagementPlan: Schickt einen Sitecore Contact in einen Engagement Plan
  • AddItemVersion: Erstellt eine neue Item-Version

Und auch einen erweiterten ValueAccessor zum Lesen und Schreiben von beliebig verschachtelten Facet-Properties haben wir uns geschrieben. Wie ihr seht, nichts geht nicht 🙂

Wenn ich mir was wünschen dürfte (@Sitecore):

  • ReadSitecoreItemsStepProcessor: Der Dynamics CRM Connector liefert schon umfangreiche Möglichkeiten zur Filterung von Contacts im CRM, die Konfiguration ist auch schon teilweise global unter Framework eingeordnet, aber das DEF selbst und der Sitecore Provider bieten hier noch kaum Funktionalität um Sitecore Contacts oder Sitecore Items zu filtern.
    Wir haben das jetzt in unseren Projekten mittels eigens implementierter Erweiterung des Pipeline Steps möglich gemacht, das sollte aber m.E. OOTB kommen.
  • Das DEF stellt kein Konzept zum Löschen von Entitäten wie z.B. Contacts oder Items. Das wünsch ich mir für die Zukunft.

Mein Tipp an euch: Lasst euch vom ersten Eindruck nicht abschrecken, es ist anfangs etwas unübersichtlich und macht viel Konfigurationsarbeit. Aber wenn die ersten Schritte gemacht wurden, dann ist es gut zu wissen, wie einfach das DEF erweiterbar und wie flexibel es in der Konfiguration ist. Für die einfache Synchronisation von Daten würde ich immer das DEF in Betracht ziehen.

Das war die dmexco 2017 – unser Rückblick

dmexco 2017

Das 5. “Klassentreffen” der weltweiten Digitalwirtschaft ist vorbei – und war gefühlt genauso gut besucht wie in den Vorjahren. Und dies trotz der erstmals kostenpflichtigen Tickets und diverser Irritationen rund um Preise und Preisstaffelung. Der Anziehungskraft der Messe konnte dies alles offensichtlich keinen Abbruch tun:
1.100 Aussteller (und damit etwas mehr als 2016) aus 39 Ländern, mehr als 570 internationale Top-Speaker auf 18 Bühnen, über 250 Stunden Conference-Programm, rund 100.000 Quadratmeter Gesamtfläche und über 410.000 Besucher – das sind die quantitativen Erfolgsdaten der dmexco 2017. Mit der neuen Halle 6 wurde die Ausstellungsfläche außerdem einmal mehr erweitert und das Startup-Village lockte jede Menge junger Unternehmen an.
Hallenwegweiser dmexco 2017

Sitecore Partnerstand mit hochkarätigem Vortrags- und Demoprogramm

Auch der Sitecore-Partnerstand in Halle 6, auf dem wir gemeinsam mit 11 anderen Sitecore-Partnern vertreten waren, wartete mit einigen qm mehr Fläche auf als in den Vorjahren und bot in sehr ansprechender Gestaltung viel Platz für Partner-Infostände, Vortragsbühne, Democorner und Besprechungsmöglichkeiten.
Sitecore Partnerstand
In über 60 überwiegend gut besuchten Vorträgen und Live-Demos zeigten Experten von Sitecore und Sitecore-Partnern im Laufe der beiden Messetage innovative Lösungen rund um Web Content Management mit der Sitecore Experience Platform. Präsentiert wurden Themen wie Content & Commerce, Customer Journey, B2B Lead Management, smarte POS/POI Lösungen, Employee Experience und Customer Experience sowie Besuchererkennung für Personalisierung.
Immer wieder fiel das Stichwort Sitecore 9 – ranken sich doch schon viele Gerüchte um diese Version, auf deren Neuerungen die Sitecore-Fachwelt gespannt wartet. Die neue Version wird erstmals auf dem Sitecore Symposium 2017 im Oktober in Las Vegas präsentiert werden.
Unser Terminkalender war bereits im Vorfeld gut gefüllt – hinzu kamen Interessenten an unseren Dienstleistungen aus dem Laufpublikum, so dass wir zahlreiche gute Gespräche führen konnten. In mehreren Vorträgen und Demos brachten unsere Kollegen_innen den Besuchern zudem die Integration des CELUM DAM in Sitecore mittels eines neu entwickelten CELUM Connectors und die Migration von Sitecore-Websites in die Microsoft Azure Cloud näher.
Austausch am comspace Stand

Integration von CELUM DAM in die Sitecore Experience Platform

Was die herausragenden Merkmale des CELUM DAM sind und welche Möglichkeiten und Vorteile der CELUM Sitecore Connector bietet, das stellten Michael Sahlender, Chief Business Officer von CELUM Deutschland und unser Head of Account Management Johannes Tappmeier vor. Durch die nahtlose Verknüpfung der beiden Systeme können Freigabe- und Produktionsworkflows im Unternehmen deutlich vereinfacht werden. Der Redakteur arbeitet weiterhin auf seiner gewohnten Sitecore Benutzeroberfläche und holt die benötigten Mediendateien aus dem CELUM DAM direkt in das Sitecore Mediencenter. Redundante Datenhaltung und Lizenzverletzungen gehören damit der Vergangenheit an.
In ihrer Live-Demo ging Friederike Heinze, unser Sitecore Solution Architect und Sitecore MVP, technisch weiter in die Tiefe und führte an einem Beispiel vor, wie einfach der Import von Mediendateien ins Sitecore CMS funktioniert und welche Informationen im CELUM über die im CMS verwendeten Dateien angezeigt werden.
Nähere Informationen zum CELUM Sitecore Connector erhalten Sie hier. Oder kontaktieren Sie uns gerne direkt.

Sitecore-Websites in der Azure Cloud

Die Optionen, mit denen Sitecore Websites in der Microsoft Azure Cloud betrieben werden können, sind zunehmend vielfältiger und flexibler geworden und bieten viele Vorteile im Vergleich zum Server- oder virtuellen Hosting.
In seinem Vortrag gab Johannes Tappmeier einen Einblick in die verschiedenen Szenarien des Cloud Hosting und die Besonderheiten der Microsoft Azure Cloud. Eine schnelle Migration der Website in die Cloud, die hohe Skalierbarkeit der Lösung, reduzierte Kosten sowie ein flexibles Reagieren auf zeitlich begrenzte Lastspitzen gehören zu den Vorteilen dieser Lösung.
Wie sich eine bestehende Sitecore-Webseite mittlerweile als Platform-as-a-Service in die Microsoft Azure Cloud bringen lässt und welche Vorteile dies für die Verwaltung und den Betrieb der Website mit sich bringt, erläuterte unser Sitecore Solution Architect Tim-Patrick Märk in seiner Live-Demo.
Sitecore Websites in der Microsoft Azure Cloud
Weitere Informationen zu dem Thema stellen wir Ihnen hier zur Verfügung.  
Ein herzliches Dankeschön an dieser Stelle an das Sitecore-Team für die hervorragende Organisation und Präsentation am Stand!
Und sonst? Im Folgenden fasse ich einige Eindrücke von meinem kurzen Messe-Rundgang zusammen. Künstliche Intelligenz (KI) war dieses Jahr eins der Top-Themen auf der dmexco – deshalb habe ich mich einmal in der Experience Hall umgesehen.

AR und VR sind weiter auf dem Vormarsch, aber es fehlt noch an Reife

Trend-Technologien wie Künstliche Intelligenz (KI), Virtual und Augmented Reality waren einer der Anziehungspunkte und wurden hauptsächlich in der neuen Experience Hall in Halle 9 präsentiert. Zwei Entwicklungs-Beispiele habe ich mir genauer angesehen.

Virtuelle Gesichtserkennung

Die Agentur denkwerk hat in einer Live-Anwendung kreativ gezeigt, wie visuelle Gesichtserkennung mit den Cognitive Services von Microsoft funktioniert: Messebesucher, die am Stand vorbeigingen und von der dort aufgestellten Kamera erfasst wurden, fanden sich auf einem großen Bildschirm dahinter wieder – allerdings wurde ihr Gesicht jetzt von einer Smiley-Maske überlagert. Diese fiel je nach Alter, Geschlecht und Stimmung des Besuchers anders aus und ging mit seinen Bewegungen mit. Ein amüsantes Erlebnis für die Messebesucher.
Virtuelle Gesichtserkennung der Agentur Denkwerk

Was steckt dahinter?

Die installierte Kamera erfasst die Person, schneidet das Gesicht aus und schickt dieses in die Microsoft Azure Cloud. Mit Hilfe der Microsoft Cognitive Services werden markante Merkmale wie Alter, Geschlecht, Stimmung, Brille und Bart erkannt und daraus wird ein anonymisiertes Profil erstellt. Auf Basis dieser Analyse wird ein passender Smiley generiert und dem Besucher über das Gesicht gelegt. Dank der Echtzeitanalyse wandelt sich das Smiley dynamisch mit verändertem Gesichtsausdruck. Dies natürlich nur bei entsprechend schneller Internetverbindung, mit der es auf der dmexco etwas haperte. Den aufgenommenen Personen kann eine ID zugewiesen werden. Damit sind sie bei einem erneuten Besuch von der Kamera eindeutig wiedererkennbar.

Anwendungsszenarien der Gesichtserkennung

Auch wenn es auf der Messe um einen spielerischen Vorführeffekt ging und die Technik der Agentur noch nicht im Praxiseinsatz ist, sind doch verschiedene Einsatzmöglichkeiten im realen Wirtschaftsleben denkbar. Hilfreich kann diese Anwendung bspw. im Retail sein, um zu erfassen, wann sich welche Zielgruppe bevorzugt im Geschäft aufhält, wie oft bestimmte Personen wieder kommen und für welche Produkte sie sich interessieren. Auf Basis dieser Erkenntnisse ist der Händler noch besser in der Lage, Angebote passend zuzuschneiden. 
Ein weiteres Szenario: Die Personenerkennung per Kamera kann steuern und kontrollieren, wer Zugang zu einer Maschine oder zu bestimmten Bereichen auf dem Unternehmensgelände hat.
Da nur die oben genannten Personenmerkmale, aber keine persönlichen Daten erhoben werden, gibt es bei dieser Anwendung keine Datenschutzprobleme. Beim heutigen Stand der Entwicklung ist allerdings nicht ganz ausgeschlossen, dass es bei ähnlich aussehenden Menschen zu Verwechslungen kommt.  
Tatsächlich gibt es schon praktische Anwendungsbeispiele für Gesichtserkennung: Im Frühjahr diesen Jahres war eine solche Technik testweise bei der KLM für einige Monate am Amsterdamer Flughafen Schiphol im Einsatz. Statt dem Vorzeigen der Bordkarte reichte der Gesichtsscan am Flughafen, zumindest für die Kunden,die sich im Vorfeld registriert haben und ihr Gesicht hatten scannen lassen.  

Virtual Reality im Einsatz bei der Lufthansa

Im Flying Lab der Lufthansa konnte man ausprobieren, wie schön das Fliegen für VIPs sein kann. Mit einer VR-Brille auf den Augen und gemütlich im Sessel sitzend, wurde man wahlweise in die Lufthansa VIP-Lounge, die Business Class oder in ausgewählte Zielgebiete “gebeamt”. Am herrlichen Strand von Mauritius hätte ich gerne noch einige Zeit verweilt und die 360-Panorama-Aussicht genossen ;).
Die Brille wird an Flughafen-Terminals in den USA bereits eingesetzt und deren Wirkung ist scheinbar so überzeugend, dass die spontanen Upgrades auf die Business Class daraufhin um 60% zugenommen haben. Eine beeindruckende Zahl!
Da mir nach meinem Rundgang durch die Hallen noch etwas Zeit blieb, habe ich mir spontan einen Vortrag zum Thema Influencer Marketing angehört.

Influencer Marketing – do’s und dont’s

G+J EMS stellte die Ergebnisse ihrer aktuellen Influencer-Studie vor, die sie auf Basis ihrer eigens aufgebauten Plattform “incircles” mit über 600 Influencern durchgeführt hat. Die Auswahl der Influencer erfolgte Algorithmus-basiert. 932 Verbraucher nahmen an der Userbefragung teil. Außerdem wurden Experteninterviews durchgeführt.
Zunächst aber: Was sind überhaupt Influencer? Influencer sind Personen, die aufgrund ihrer Affinität und Leidenschaft für ein bestimmtes Thema, ein Produkt oder eine Marke in den sozialen Netzwerken positiv über diese berichten und damit einen großen Einfluss auf ihre Follower haben. Mit zunehmender Überflutung der Konsumenten mit Informationen und Werbung und abnehmender Brand Awareness werden solche Markenbotschafter immer wichtiger für die Hersteller, wirken sie in ihrer Subjektivität doch sehr überzeugend und authentisch.
Influencer Marketing
Hier die zentralen Erkenntnisse der Studie im Überblick:

  • Viele Follower allein sagen noch nichts über die Bedeutung einer Marke oder den Erfolg einer Influencer-Kampagne. Denn: Likes und Shares sind nicht alles, wichtiger ist der Grad und die Intensität der Interaktionen. Wurde die Marke von den Usern auch so verstanden wie beabsichtigt?
  • Die Kanäle werden von den Usern unterschiedlich genutzt: Youtube ist ein Kanal, der eher passiv konsumiert wird und sich z.B. gut für den Food- oder Modebereich eignet. Bei Facebook und Instagram dagegen spielen Kommentare und Interaktionen eine viel größere Rolle.
  • Ein klares Briefing der Influencer bzgl. Timing, Ablauf, Hashtag etc. ist sehr wichtig
  • Aber: Das Unternehmen ist gut beraten, dem Influencer bei der Art, wie er ein Produkt präsentiert, freie Hand zu lassen und ihm Vertrauen entgegen zu bringen. Sonst kann die Authentizität massiv leiden.
  • Aus Transparenz- und Glaubwürdigkeitsgründen sollten Influencer-Beiträge als Werbung gekennzeichnet werden. Instagram hat eine Pflicht zur Kennzeichnung von Sponsored Posts gerade eingeführt.
  • Followercheck: Die Übereinstimmung zwischen Influencer-Audience und Kundenzielgruppe muss gegeben sein.
  • Social Media Stars, Freunde & Familie und Prominente, Sportler und Musiker zählen zu den wichtigsten Influencern und sind in den sozialen Netzwerken deutlich vertrauenswürdiger als die Markenaccounts.
  • Für die beworbenen Marken der Studie legten die Imagewerte Vertrauen, Sympathie und Glaubwürdigkeit signifikant zu, die Kaufbereitschaft stieg um 29%.

Wer in Zeiten sinkender Werbeerinnerung noch zum Verbraucher durchdringen will, muss neue Wege gehen. Influencer können sehr wirkungsvoll als Markenbotschafter agieren, wie die Studienergebnisse ergeben haben.
Weitere Informationen zum Thema und zur Vorgehensweise der Studie stellt G+J in dieser Präsentation zur Verfügung.

Fazit

Für uns war die dmexco aufgrund zahlreicher Kunden- und Interessentengespräche sehr erfolgreich und wieder einmal eine hervorragende Plattform, um in einem kompakten Zeitraum bestehende Kontakte zu pflegen und neue anzubahnen.  
Das Ziel der dmexco, mit der Präsentation von digitalen Innovationen, Insights und Lösungen neue Denkanstöße zu geben und damit die digitale Transformation zu fördern, ist in meinen Augen aufgegangen. Die Experience Hall und das Start-up-Village mit seinem neuen Pitch-Format der Start-up Hatch haben einen wichtigen Beitrag dazu geleistet.  
Wer dieses Jahr in Köln nicht dabei sein konnte oder zu wenig Zeit zum Umsehen hatte, kann sich auf dem YouTube-Channel der dmexco weitere Eindrücke verschaffen und in zahlreiche Keynotes, Talks und Debatten hineinhören.
Und in diesen Beiträgen gibt’s noch mehr dmexco 2017-Nachlese:

Dmexco-Learnings: Diese 10 Entwicklungen bestimmen das Online-Marketing 2017 (t3n)
Pro und Contra Digitalmesse Dmexco (w&v)
News, Bilder und Videos im Überblick von HORIZONT Online

dmexco 2017: Wegweiser durch den Dschungel

dmexco 2017 highlights

dmexco 2017 highlightsNoch 15 Tage bis zur dmexco 2017; am 13. September geht’s los. “Lightning the Age of Transformation” ist nicht der Titel eines Science-Fiction-Romans, sondern das Motto der diesjährigen Ausgabe der Leitmesse der Digitalbranche. Vor allem Technologien, die noch in den Startlöchern oder Kinderschuhen stecken wie AI, Machine Learning, Blockchain und Virtual Assistants, sind in den Vorträgen und Panels  der Konferenz und insbesondere im Startup-Village stark vertreten. Wir haben uns durch das Programm gewühlt und die Termine herausgesucht, die Inspiration, Information und Know-how versprechen.
„dmexco 2017: Wegweiser durch den Dschungel“ weiterlesen

How to: Sitecore Content Search – Globale LINQ Filter anwenden

Sitecore Global Linq Filter

Seit der Sitecore Version 7.2. ist es möglich, für die Content Search LINQ Filter zu implementieren, die automatisch bei jedem LINQ Query angewendet werden. Dadurch können “statische” Filter wie z.B. die Einschränkung nach Kontextsprache einmalig angegeben werden und brauchen somit nicht bei jeder Abfrage berücksichtigt zu werden.

Um globale LINQ Filter einzubinden, muss die Pipeline <contentSearch.getGlobalLinqFilters> erweitert werden:

Achtung: Das folgende Beispiel ist bis einschließlich der Sitecore Version 8.1 möglich.

[xml]
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">;
<sitecore>
<pipelines>
<contentSearch.getGlobalLinqFilters>
<processor type="Comspace.Demo.GlobalLinqFilter.ContextLanguageLinqFilter, Comspace.Demo.GlobalLinqFilter"/>
</contentSearch.getGlobalLinqFilters>
</pipelines>
</sitecore>
</configuration>
[/xml]

Die Klasse ContentLanguageLinqFilter erbt von der bereitgestellten Basisklasse ApplyGlobalLinqFilters, welche zwei überschreibbare Funktionen bereitstellt:

  • Process(QueryGlobalFiltersArgs args)
  • GetQuery(QueryGlobalFiltersArgs args)

Um nun nach der aktuellen Sprache zu filtern, muss die Query angepasst werden. Hierfür wird die Funktion GetQuery überschrieben:

[csharp]
namespace Comspace.Demo.GlobalLinqFilter
{
public class ContextLanguageLinqFilter : ApplyGlobalLinqFilters
{
protected override object GetQuery(QueryGlobalFiltersArgs args)
{
var query = (IQueryable<SearchResultItem>)args.Query;
return query.Where(i => i["_language"].Equals(Sitecore.Context.Language.Name));
}
}
}
[/csharp]

In diesem Beispiel wird das Objekt args.Query in den Typen IQueryable<SearchResultItem> umgewandelt.

GlobalLinqFilter ab Sitecore Version 8.2

Mit der Sitecore Version 8.2 ändert sich die Verwendung von Queries im Sitecore, sodass ein allgemeines Casting in den Typen IQueryable<SearchResultItem> nicht mehr möglich ist. Wird ein GlobalLinqFilter wie oben beschrieben eingesetzt, wirft Sitecore bereits bei der Initialisierung bzw. beim Öffnen des Sitecore Content Editors eine Exception:

[text]
Das Objekt des Typs "Sitecore.ContentSearch.Linq.Parsing.GenericQueryable`2[Sitecore.ContentSearch.SearchTypes.SearchResultItem,Sitecore.ContentSearch.Linq.Solr.SolrCompositeQuery]" kann nicht in Typ "System.Linq.IQueryable`1[Sitecore.Social.Search.SearchItem]" umgewandelt werden.

[/text]

Und jetzt?

Zu der Verwendung von GlobalLinqFilter existiert keine nennenswerte Dokumentation. Auch Google liefert nur ein mageres Beispiel von Coveo, das aber nicht für Sitecore ab Version 8.2 geeignet ist.

Der daher konsultierte Sitecore Support stellt folgende Lösung zur Verfügung:

[csharp]
public override void Process(QueryGlobalFiltersArgs args)
{
if ((args != null) && (args.Query != null))
{
Type queryElementType = args.QueryElementType;
if (queryElementType == typeof(SearchResultItem))
{
args.Query = this.GetQuery&lt;SearchResultItem&gt;(args);
}
}
}

protected object GetQuery<T>(QueryGlobalFiltersArgs args) where T : IObjectIndexers
{
var query = (IQueryable<T>)args.Query;

return query.Where(i => i["_language"].Equals(Sitecore.Context.Language.Name));
}
[/csharp]

In diesem Beispiel wird nicht mehr die überschreibbare Funktion GetQuery verwendet, sondern eine eigene, generische Funktion implementiert. Ziel ist es, die Query, die im GlobalLinqFilter als Typ object übergeben wird, in den Zieltypen umzuwandeln. Hierfür liefern die QueryGlobalFiltersArgs auch die QueryElementType-Eigenschaft mit.

Problem: Ein Objekt lässt sich nicht mithilfe einer Variablen typisieren.

Lösung: Um GlobalLinqFilter trotzdem anwenden zu können, muss nun also die Process Methode überschrieben werden. Darin wird der übergebene Typ geprüft und anschließend mit einer expliziten Typisierung die GetQuery<T> Funktion aufgerufen.

Vorteil:

  • Es werden nur solche Queries eingeschränkt, die auch erwünscht sind, da die Abfrage explizit in der Process Methode angegeben muss.

Nachteil:

  • Werden mehrere spezielle Typen von SearchResultItem implementiert, z.B. ExtendedSearchResultItem, DateSearchResultItem, etc. muss für jeden dieser Typen eine Abfrage im GlobalLinqFilter eingerichtet werden.

Der Nachteil äußert sich in der Implementierung dann folgendermaßen:

[csharp]
public override void Process(QueryGlobalFiltersArgs args)
{
if ((args != null) && (args.Query != null))
{
Type queryElementType = args.QueryElementType;
if (queryElementType == typeof(SearchResultItem))
{
args.Query = this.GetQuery<SearchResultItem>(args);
}
if (queryElementType == typeof(ExtendedSearchResultItem))
{
args.Query = this.GetQuery<ExtendedSearchResultItem>(args);
}
}
}
[/csharp]

Zusammenfassung

GlobalLinqFilter sind ein probates Mittel, um Queries standardmäßig nach bestimmten Kriterien zu filtern. Kriterien können neben der hier gezeigten Sprache auch Sicherheitskriterien, Templates oder Sites sein. Wenn nicht exzessiv spezielle SearchResultItem Typen implementiert wurden und somit der oben beschriebene Nachteil eher überwiegt, ist die Nutzung von GlobalLinqFilter zu empfehlen.

Übrigens: Wen das Thema Sitecore Content Search interessiert, findet hier einen Einstieg in das Thema Sitecore Solr Content Search – Facettensuche richtig anwenden.

 

Sitecore Solr Content Search – Facettensuche richtig anwenden

Sitecore Solr Content Search

Eine Facettensuche eignet sich insbesondere für folgende Anwendungsfälle:

  • Ermittlung von Kategorien
  • Implementierung einer Sortierungsfunktion
  • Implementierung eines Filterelements auf einer Suchseite

Wie eine Facettensuche implementiert wird, ist in der Sitecore Dokumentation zu finden. Darin wird folgendes Beispiel gegeben:

[csharp]
var results = queryable.FacetOn(d => d.Name);
var facets = results.GetFacets();
foreach (var category in facets.Categories)
{
Console.WriteLine(category.Name);
   foreach (var facetValue in category.Values) {
       Console.WriteLine("{0}: {1}", facetValue.Name, facetValue.Aggregate);
   }
}
[/csharp]

Als Ergebnis erhält man eine Auflistung einer Kategorie (category.Name) aller zugewiesenen Werte des Feldes „Name“ (d.Name).

Beispiel: Produkte nach Serien filtern

Ein Beispiel: Es existiert ein Index mit Produkten. Diese Produkte sind einer Serie zugeordnet. Als Feature möchte man nun alle Produkte einer bestimmten Serie filtern können. Um einen Filter zu implementieren, kann eine Facettensuche wie im oben zu sehenden Beispiel verwendet werden. Es ist lediglich eine Änderung erforderlich:

[csharp]
var results = queryable.FacetOn(d => d[“Serie”]);
[/csharp]

Die Suche ermittelt somit alle Inhalte, die an indizierten Produkten im Feld “Serie” enthalten sind. Das Ergebnis kann anschließend in ein Benutzersteuerelement eingefügt werden.

Facettensuche mit Solr

Wenn eine Facettensuche auf einem Objekt vom Typ Queryable angewendet wird, die zuvor bereits einen Filter enthält, z.B.

[csharp]
queryable.Where(d => d.Language.Equals("en")
[/csharp]

funktioniert die Facettensuche mit Solr nicht mit dem oben angegebenen Beispiel (anders als bei einer Facettensuche mit Lucene), da hier als Ergebnis immer alle Facetten zurückgegeben werden, unabhängig von der Einschränkung durch den Filter.

Solr Hint: Facet.mincount Parameter

Der Grund: Standardmäßig werden bei einer Solr Facettensuche alle Facetten zurückgegeben. Verantwortlich ist hierfür der Facet.mincount Parameter, der als defaultValue “0” zurückgibt. Somit werden auch Facetten zurückgegeben, zu denen der Filter keine Ergebnisse zurückgibt.

Um dieselbe Funktionalität wie bei einer Facettensuche mit Lucene herzustellen, muss der Facet.mincount Parameter überschrieben werden, wie im folgenden Beispiel zu sehen ist:

[csharp]
var results = queryable.FacetOn(d => d[“Serie”], 1);
[/csharp]

Der zweite Parameter der FacetOn() Methode gibt den minimumResultCount an, welcher dem Facet.mincount Parameter entspricht. Gibt man hier beispielsweise den Wert “1” an, wird bei einer Facettensuche nur ein Ergebnis zurückgegeben, dessen Elemente mindestens einmal in einer Suche mit entsprechenden Filtern vorkommen. Im vorherigen Beispiel werden somit nur Elemente aufgelistet, die in der Sprache “en” vorliegen.

Trivia

Der für diesen Anwendungsfall konsultierte Sitecore Support hat das unterschiedliche Verhalten der Facettensuche mit Lucene bzw. Solr als Bug in der Sitecore Version 8.2. rev. 161115 (Update 1) eingestuft und unter der Public reference number 95560 eingeordnet. Als Hotfix wird die Angabe des minimumResultCount wie zuvor beschrieben empfohlen.

Wenn Sie neben der Facettensuche auch noch Ihre LINQ Abfragen verschlanken möchten, finden Sie hier einen weiteren Tipp: How to: Sitecore Content Search – Globale LINQ Filter anwenden

Servus! aus München von der Sitecore Usergroup

Auch das neue Jahr startet wieder mit einem herausragenden Sitecore Usergroup Treffen, das erste Mal im Süden Deutschlands, in München. Dank der Firma CELUM durften wir dieses Mal Gäste in den wunderschönen Design Offices im Arnulfpark München sein.

Eingang zum DesignOffice

Die Agenda

Die Agenda versprach auch dieses Mal wieder hochinteressante Themen:

    • Gerd Laski & Michael Sahlender, CELUM: Besser, schneller, effektiver – Wie Sie mit Digital Asset Management Ihre Geschäftsprozesse optimieren
    • Friederike Heinze, comspace: CELUM Connector und das Sitecore Data Exchange Framework
    • Maksym Ponomarenko, netzkern AG: Sitecore und Salesforce
    • Christian Handel, ecx.io – an IBM company: Getting Started with Unicorn Item Synchronization
    • Mark Cassidy, CassidyConsult: An awesome presentation about the Rules Engine
    • Chris Wojciech, netzkern AG: Build a very simple Website Demo with Sitecore Experience Accelerator (SxA)
    • Get Together im Augustiner-Keller zu München

Kurzvorstellung CELUM – Das Digital Asset Management

Im ersten Beitrag des Tages stellten sich die Gastgeber von CELUM, der Geschäftsführer Deutschland Michael Sahlender und der Director Partner Management Gerd Laski vor und erläuterten, was ihr Produkt CELUM DAM für Vorteile und Nutzen bietet. So können über das DAM die Rechte an digitalen Medien zentral verwaltet und gesteuert werden. Außerdem kann verfolgt werden, welche Inhalte in welche Kanäle publiziert wurden. Zusätzlich bietet das CELUM DAM viele Schnittstellen zu anderen Systemen, sei es ERP/PIM, Ecommerce oder andere Umgebungen. Weitere Informationen zum CELUM DAM gibt es hier.

Präsentation CELUM

CELUM Connector und das Sitecore Data Exchange Framework

Die Vorstellung von CELUM bot eine gute Überleitung zum eigentlich Sitecore Thema – Ein Celum Connector, der mithilfe des Sitecore Data Exchange Framework umgesetzt wurde. In der kurzweiligen Präsentation (Wenn die Hardware nicht so mitmacht wie geplant, muss man eben improvisieren…;-)) konnte Friederike Heinze (@ilovesitecore) allen Interessierten aufzeigen, wie einfach die Contentpflege mit direkt synchronisierten Inhalten aus dem CELUM DAM ist.

CELUM Connector
CELUM Connector – Hardware Herausforderung

Und was steckt dahinter?

Für den CELUM Connector bzw. die Synchronisation zwischen DAM und CMS wird das Sitecore Data Exchange Framework verwendet. Was genau dahinter steckt, beschreibt Friederike in einem eigenen Blogbeitrag.

Leadgenerierung mit Sitecore und Salesforce

Wie auf einfache Art und Weise Leads im CRM System Salesforce generiert werden können, hat Maksym Ponomarenko mit dem Salesforce Connect Module demonstriert. So können beispielsweise im Zusammenspiel mit dem Web Forms for Marketers Modul einfache Save Actions implementiert werden, die bei einer Newsletter-Anmeldung oder einer Kontaktanfrage Formularinhalte direkt ins CRM aufnehmen.

Salesforce CRM Modul

Unicorn Item Synchronization

Jeder, der sich schon einmal mit dem Sitecore Habitat auseinandergesetzt hat, wird zumindest auch schon etwas über das Serialisierungstool Unicorn gehört haben, mit dem Sitecore Items in verschiedenen Umgebungen synchronisiert werden können. Im Gegensatz zu Team Development for Sitecore (TDS), das als kommerzielles Produkt von Hedgehog vertrieben wird (die Kollegen von Hedgehog durften wir bei der letzten SUG als Gäste begrüßen), ist Unicorn als OpenSource im Git verfügbar. Somit kann es frei und vor allem einfach per NuGet Package installiert werden:

PM> Install-Package Unicorn

Christian Handel hat in seinem Beitrag veranschaulicht, wie Unicorn eingerichtet werden muss und wie es grundsätzlich funktioniert. Als rein dateibasierte Synchronisation werden Änderungen live übernommen und können mit bewährten Versionierungstools wie Git, TFS oder SVN verteilt werden. Die YAML-basierte Item Serialisierung ermöglicht dabei auch bei Versionskonflikten eine einfache, weil lesbare Konfliktbehebung.

Insgesamt konnten dabei Vor- und Nachteile gegeneinander abgewogen werden. Unter den Zuhörern zeigte sich jedoch, dass Unicorn zumindest in der deutschen Community noch kein festes Standbein besitzt. Auf Nachfrage, welches Synchronisationstool verwendet wird, meldeten sich die meisten für TDS.

Unicorn

Sitecore Rules Engine – Mark zaubert

Mark Cassidy von Cassidy Consult, mittlerweile gefühlt Stammgast bei der SUG, hat auf beeindruckende Art und Weise demonstriert, wie man mit wenigen Handgriffen mit Sitecore Rules das Verhalten von Interaktionen im Sitecore beeinflussen kann. Als Beispiel diente der Anwendungsfall, Items hinzuzufügen. Die Präsentation sowie alle gezeigten Codebeispiele wurden von Mark auf GitHub veröffentlicht.

Build a very simple SxA website

Schon wieder ein neues Sitecore Modul

Als letzten Beitrag konnte dieses Mal Chris Wojciech mit seiner Demonstration des SxA (Sitecore Experience Accelerator) überzeugen. Mit dem typischen Beispiel “Build a very simple website” (quasi “Hello World!”) hat er in rund 15 Minuten eine Seite aufgebaut, ohne dafür eine Zeile selbst programmieren zu müssen.

Der SxA liefert dafür die gängigen Module und Konfigurationen out-of-the-box. Insbesondere für die Konzeptions- und Designphase geeignet, ist es als besonderes Feature möglich, mit dem SxA erstellte Wireframes zu exportieren. Der Html-Export kann dann von Frontendentwicklern gestylt werden und anschließend wieder nach Sitecore in das SxA Modul importiert werden. Das fertige Design ist dann direkt nutzbar. Weitere Informationen zum Modul können direkt bei Sitecore bezogen werden: Sitecore Experience Accelerator.

Get Together! Ab in den Keller!

Wo sonst sollte man in der bayerischen Hauptstadt ein Get Together veranstalten, wenn nicht in einem bayrischen Wirtshaus, in dem Bier ausgeschenkt wird. Daher ging es in den Augustiner-Keller – und zwar wörtlich. Um in den Lagerkeller zu gelangen, musste zuerst eine gefühlt 15m lange Wendeltreppe bewältigt werden. Unten angelangt, bot sich jedem ein uriges Bild, was man sogar auf Google Maps begutachten kann. Neben “Brezn” und traditionellen Gerichten kam schnell die bewährte Get Together-Stimmung auf.

Der Schneeballeffekt

Auf dem mittlerweile achten Sitecore User Group Treffen hat sich gezeigt, dass die Community immer größer wird. Mit offiziell über 50 TeilnehmerInnen waren so viele dabei wie an keinem anderen Treffen zuvor. Falls ihr noch nicht dabei wart, aber beim nächsten Mal gerne mitmachen möchtet, schaut doch mal in der XING Gruppe Sitecore User Group Deutschland vorbei. Das nächste Treffen findet voraussichtlich im April in Bremen statt. Seid gespannt! Ich freue mich drauf!

 

Best Practice: Umzug dynamischer Websites in die Cloud

Webinar Umzug von Websites in die Cloud

Der Umzug einer Website in die Cloud kann für Unternehmen eine sinnvolle Alternative zum Server-Hosting sein: Vorteile wie flexible Skalierbarkeit, weltweite Content-Verteilung, geringere Kosten und die Steigerung der Geschwindigkeit im Deployment machen die Cloud vor allem für Unternehmen interessant, die an weltweit verteilten Standorte arbeiten.

Unser Webinar: Umzug in die Cloud am Beispiel des Dornbracht-Händlerportals 

Für unseren Kunden Aloys F. Dornbracht haben wir das Händlerportal beste-badstudios.de, das auf dem Sitecore CMS basiert, in die Microsoft Azure Cloud gebracht. Welche Vorüberlegungen wir dabei angestellt haben und wie sich der Umzug vollzogen hat, haben wir in Kooperation mit unserem CMS-Partner Sitecore in einem Webinar mit dem Thema “Umzug in die Cloud: Flexible, dynamische Websites und Digital Marketing am Beispiel beste-badstudios.de” gezeigt.

In dem Webinar in der vergangenen Woche hat unser Head of Account Management Johannes Tappmeier die verschiedenen Cloud-Möglichkeiten und die Vorteile der Microsoft Azure Cloud im Zusammenspiel mit Sitecore vorgestellt. Außerdem zeigt er, welche konkreten Schritte für den Umzug unseres Kundenprojekts beste-badstudio.de in die Azure Cloud nötig waren.

Dies sind die Webinar-Inhalte im Überblick:

  • Vorstellung des Händlerportals und Projekts “beste-badstudios.de”
  • Vom dedizierten Server zur Cloud: Wir stellen die Cloud-Arten Infrastruktur-as-a-Service (IaaS), Platform-as-a-Service (PaaS) und Software-as-a-Service (SaaS) und die damit einhergehenden unterschiedlichen Verantwortlichkeiten für den Anwender vor.
  • Sitecore on Azure: Wie bekommt man Sitecore in die Azure Cloud? Hier gibt es zwei Möglichkeiten: Zum einen die Standard Sitecore-Installation über den Marketplace ohne die Notwendigkeit technischer Kenntnisse, zum anderen die Nutzung des Azure Resource Manager (ARM) Templates & Web Deploy Packages, die eine flexiblere Installation und Konfiguration erlauben, aber auch mehr technische Fähigkeiten voraussetzen. 
  • Vorteile der Microsoft Azure Cloud wie Skalierbarkeit, hochperformante Bereitstellung von Mediadaten, Benutzerverwaltung, Multi-Plattform Support und Datenschutz nach deutschen Standards.
  • Was macht die Kombination der Microsoft Azure Cloud mit Sitecore interessant?
  • Umzug des Händerportals beste-badstudios.de in die Azure Cloud: Sie erfahren konkret die einzelnen Schritte auf dem Weg in die Cloud. U.a. wird erläutert, welche Cloud-Art wir für welche Anwendung genutzt haben.
  • Zum Schluss steht die Evaluierung der Lösung und ein Ausblick in die Zukunft der Azure Cloud.

Hier können Sie sich die komplette Webinar-Aufzeichnung anschauen:

Über das Portal beste-badstudios.de

Das Händlerportal DIE BESTEN BADSTUDIOS ist eine vom führenden Armaturenhersteller Dornbracht betriebene Website, auf der sich Badstudios präsentieren können. Momentan sind rund 660 Badstudios auf der Plattform vertreten. Die Verwaltung der Plattform wird von den Partnern und Dornbracht gemeinsam vorgenommen. Das Portal, das wir auf Sitecore-Basis realisiert haben, wird in der Azure Cloud betrieben.

Über die Microsoft Azure Cloud als Alternative zum Server-Hosting

Für dynamische und flexible Webseiten ist die Cloud eine echte Alternative zu dedizierten oder virtuellen Servern. Die Microsoft Azure Cloud ist eine der größten Cloud-Plattformen und stellt alle nötigen Services zur Verfügung, die das Hosting einer Corporate Website unterstützt. Aufgrund der gemeinsamen Windows-Basis ist die Azure Cloud besonders für Sitecore-basierte Websites eine interessante Lösung.

iBusiness-Webinar zur Optimierung Ihres Online-Shops durch CMS-Integration

Sitecore Commerce Connect

Am Mittwoch den 07. Dezember 2016 halten wir für Sie ein Live-Webinar im Rahmen der virtuellen iBusiness-Konferenz “E-Commerce 2017”.
Im Rahmen der Veranstaltung klären wir Sie auf, welche Vorteile Ihr Online-Shop aus der Verbindung mit den Marketing- und Content-Funktionalitäten eines Content Management System ziehen kann. Anschließend wird der gemeinsame Praxiswert am Beispiel von Sitecore und der Commerce-Software hybris veranschaulicht und wir geben wertvolle Tipps für die Optimierung Ihres Online-Shops.
Welche Potenziale und Herausforderungen sich aus der Verknüpfung von Online-Shop und CMS ergeben, erfahren Sie kompakt in diesem Webinar.
Wir freuen uns auf Ihre Teilnahme.

Wer ist Ihr Referent ?

Foto Tappmeier, Johannes
Johannes Tappmeier ist Head of Account Management bei comspace.
Für Ihre Rückfragen steht Ihnen Johannes Tappmeier selbstverständlich im Anschluss zur Verfügung.

Alle Informationen im Überblick

Thema:

“Schaffen Sie eine nahtlose User-Experience: Verknüpfung von Online-Shop und Webseite”

Termin:

07.12.2016, 11.05 Uhr, Dauer 30 Minuten

Für wen:

Entscheider, Fach- und Führungskräfte aus den Bereichen E-Commerce und Content Management Systeme

Inhalte:

  • die Marketing- und Redaktions-Funktionalitäten eines Content Management Systems am Beispiel von Sitecore mit den Commerce-Funktionalitäten eines Online-Shops verbinden
  • Ihre Produkte im Shop mit relevantem Content aus dem CMS anreichern
  • eine einheitliche Produktdarstellung über alle Kanäle hinweg und ein nahtloses Nutzererlebnis im Bestellprozess gewährleisten können.

iBusiness Logo
Für weitere Details zum gesamten Webinar-Programm und zur kostenfreien Anmeldung besuchen Sie bitte folgende Webseite:
iBusiness-Konferenz “e-Commerce 2017”

Über Sitecore und hybris

Das Sitecore Content Management System bietet Ihnen intuitive Marketing-Funktionen sowie innovative Analyse-Tools. Sprechen Sie Ihre Kundschaft in Echtzeit und über alle Kanäle hinweg an – die Sitecore Experience Platform ist die komfortable, zentrale Steuerzentrale Ihrer Aktivitäten. Hybris unterstützt Sie bei der Kundenansprache und setzt dabei auf Omnichannel und eine funktionsreiche Commerce-Plattform.
Wie die Anbindung eines Shop-Systems an Sitecore mittels des Sitecore Commerce Connect erfolgen kann und welche Potenziale Sie dort heben können, hat unsere Sitecore Expertin Friederike Heinze in einer Blog-Serie ausführlich erläutert. Hier geht’s zum Artikel.