E-Mail Benachrichtigungen für Listen und Bibliotheken anpassen

Ein oft genutzte Funktion in SharePoint sind die E-Mail Benachrichtigungen für Listen und Bibliotheken. Sie sind ja auch praktisch, bei jeder Änderung kann ich automatisch informiert werden und muss nicht mehr selber nachschauen. Obwohl man in den Benachrichtigungen eine Menge einstellen kann ist es nicht möglich sich nur informieren zu lassen wenn sich ein bestimmtes Metadatum ändert. Dies ist zum Beispiel dann wichtig, wenn ich mit SharePoint Qualitätsmanagement (QM) Dokumente verwalte. So könnte ich meinen Benutzern anbieten, dass diese nur informiert werden, wenn es eine inhaltliche Änderung gibt. Eine Benachrichtigung bei redaktionellen Änderungen, z.B. der Korrektur von Rechtschreibfehlern erfolgt nicht. Leider ist diese Anpassung nur für SharePoint onPremise möglich. Dieser Artikel erläutert, wie Sie dabei vorgehen.

Die folgende Abbildung zeigt die Bedingungen für das setzen der Benachrichtigungen. Dieser Bereich muss entsprechend ergänzt werden.

Achtung, wir bearbeiten hier Dateien aus dem Dateisystem eines SharePoint Servers. Bearbeiten Sie NIEMALS die Originaldateien, sondern immer nur Kopien.

Filter hinzufügen

Die Datei, welche die Benachrichtigungen definiert, befindet sich bei SharePoint 2013 im 15er Ordner, in SharePoint 2010 entsprechend im 14er Ordner. Dieser Ordner finden Sie bei SharePoint 2013 in %CommonProgramFiles%\Microsoft Shared\Web Server Extensions\15. Gehen Sie dort in das Unterverzeichnis \TEMPLATE\XML und suchen Sie die Datei alerttemplates.xml. Kopieren Sie die Datei und benennen Sie diese um z.B. in alerttemplates_contoso.xml. Öffnen Sie diese Datei in einem XML Editor Ihrer Wahl. Wenn Sie die Datei untersuchen, werden Sie sehen, dass hier Benachrichtigungen für verschiedene Listen- und Bibliothektypen definiert sind. Wir möchten gern das Template für Dokumentenbibliotheken anpassen.


Die Struktur innerhalb einer Liste/Dokumentenbibliothek ist immer gleich.

Um einen neuen Filter zu setzen, müssen wir also den Abschnitt Filter ergänzen. In diesem gibt es schon drei Dokumentenbibliotheken spezifische Filter. Der erste Filter ist generisch (Benachrichtigung bei alle Änderungen) und hier nicht aufgeführt. Jeder Filter besteht dabei aus einem Namen für die Ansicht, einem kurzen Namen und Filterregeln. Beachten Sie dabei, dass Sie Umlaute im Namen HTML kodieren müssen.

Während der Name recht einfach ist, sind die Regeln komplexer. Sie finden diese im Abschnitt Query und werden dort in CAML notiert. Allerdings sind nicht alle CAML Ausdrücke erlaubt, im Zweifelfall hilft es sich anzuschauen, wie die schon vorhandenen Regeln aufgebaut sind.

In meinem Fall habe ich in einer Dokumentenbibliothek ein neues Feld angelegt, welches vom Typ Auswahl ist und die Werte

  • Inhaltlich
  • Redaktionell

hat. Bei einer Änderung muss das Feld entsprechend gesetzt werden. Wurde es auf Inhaltlich gesetzt, soll eine Benachrichtigung erfolgen. Das Feld hat den Namen TypAenderung.

Ich habe mir einen vorhandenen Filter kopiert und diesen angepasst. Es sind jetzt also vier Filter vorhanden. Die neue Abfrage für den neuen Filter würde dann wie unten aussehen.

Filter veröffentlichen

Um die Änderung zu veröffentlichen müssen Sie die neue XML Datei importieren. Anpassungen der Benachrichtigungen können Sie entweder für die ganze Farm, pro Sitecollection oder für eine spezielle Liste veröffentlichen. Ich habe mich für die Anpassung per Sitecollection entschieden. Zum Import nutze ich stsadm.exe. Sie finden dies im 14er/15er Ordner im Unterverzeichnis Bin. Da ich die Sitecollection http://sharePoint.contoso.com/sites/QM
anpassen möchte, sieht der Befehl bei mir so aus:
stsadm -o updatealerttemplates -filename „C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\XML\alerttemplates_contoso.xml“ -url http://sharePoint.contoso.com/sites/QM

Nach dem Import muss der SharePoint Timer Dienst neu gestartet werden. Dafür gibt es mehrere Möglichkeiten, eine ist das Services Snap-In.

Und schon kann der Benutzer die neue Bedingung setzen.

Achtung: Die Validierung der Regel erfolgt erst wenn die Regel gesetzt wird! Testen Sie also vorher!

Schon gesetzte Benachrichtigungen werden nicht geändert. Wenn dies gewünscht ist hilft die PowerShell weiter oder der Benutzer löscht seine Benachrichtigungen und erstellt diese neu.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular. oder schreiben Sie einen Kommentar.

Sie wollen mehr über mich erfahren? Dann stöbern Sie doch ein wenig auf dieser Site.

Werbeanzeigen

HTML E-Mail Quelltext in SharePoint Designer 2013 bearbeiten

Wer mit SharePoint Designer schon einmal einen Workflow erstellt hat, welcher eine E-Mail verschickt, kennt sicher das Problem. Es ist zwar möglich die E-Mail im Editor zu formatieren, aber nicht ohne weiteres den eigentlichen HTML Quelltext. Dabei ist dies oft wichtig, z.B. wenn ich einen Link zur einer CSS Datei einfügen möchte. Mit einem kleinen Trick kommen Sie aber doch an Quelltext.

Im folgenden Beispiel werde ich einen Link einfügen, welcher als Beschriftung eine Referenz hat. Ich gehe dabei davon aus, dass der Workflow schon erstellt ist. Es spielt keine Rolle, ob es sich dabei um einen SharePoint 2010 oder 2013 Workflow handelt, das Problem ist in beiden Fällen identisch. Die Abbildung unten zeigt einen einfachen SharePoint 2013 Workflow, welcher nur eine E-Mail verschicken soll.

Diese E-Mail ist dabei wie in der Abbildung unten konfiguriert.

Um an den Quelltext zu kommen, schließen wir die Aktion und wählen deren Eigenschaften.

Im neuem Fenster sehen wir alle Eigenschaften der E-Mail, auch den Body, welcher ja den Text der E-Mail enthält. Wenn Sie in die Zeile klicken, können Sie sich über … den Wert anzeigen lassen.

Sie sehen nun den HTML Text und müssen diesen noch erweitern. Dummerweise läßt sich der Text nicht kopieren und auch mit Einfügen gibt es Probleme. Deshalb muss der Text in dem Fenster bearbeitet werden. Nicht optimal, aber machbar. In meinem Beispiel gebe ich an der gewünschten Stelle wo der Link erscheinen soll

<a href=" 

ein und klicke dann auch Nachschlagevorgang hinzufügen oder ändern. Dort wähle ich Aktuelles Element => Encoded Absolute URL und klicke auf OK.

Jetzt gebe ich

">

ein und wiederhole das Einfügen für die Eigenschaft Aktuelles Element => Name. Zum Abschluss gebe ich

</a>

ein. Eingefügt habe ich also
<a href="[%Aktuelles Element:Encoded Absolute URL%]">[%Aktuelles Element:Name%]</a>

Die E-Mail, welche der Workflow jetzt verschickt, ist damit richtig formatiert.

Zum Schluß: Natürlich geht es bei diesem speziellen Fall auch einfacher! Im Editor kann ich einen Link anlegen, welcher auch Nachschlagen zuläßt. Das Beispiel oben ist eben nur ein Beispiel.

Haben Sie diese Anforderung schon einmal gehabt? Oder eine andere Frage? Dann schreiben Sie einen Kommentar!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.

 

Rückblick SharePoint Konferenz 2017 der ppedv in Erding

Wie in einem meiner früheren Beiträgen erwähnt, war ich als Sprecher auf die SharePoint Konferenz 2017 der ppedv AG in Erding geladen. Meine Themen waren dabei eher „weich“ und keine harten technischen. Als erstes habe ich darüber gesprochen, welche Aufgaben sich in Zeiten der Digitalisierung an Führungskräfte stellen und wie man diese begegnet. Ich war wirklich neugierig, wie dieses Thema angenommen wird. Wenn da 20 Teilnehmer sind, da kann ich mich freuen so dachte ich mir. Aber nein, der Saal, wenn auch nicht allzu groß, war voll, ich schätze so um die 50 Teilnehmer. Ich hatte dabei das Glück den ersten Vortrag des Tages, direkt nach der Keynote, halten zu können. Dementsprechend viel Zeit blieb dann auch später zum Diskutieren. Den Reaktionen und Gesprächen danach war anzumerken, dass das Thema einen Nerv getroffen hatte. So meinte eine Teilnehmerin, durch der Vortrag hätte sie ein anderes, neues Verständnis von IT bekommen. So etwas hört man doch gern. Vielleicht schreibe ich dazu auch einmal einen Artikel.

Das zweite Thema beschäftigte sich mit Metadaten und der Suche in SharePoint. Auch hier war die Resonanz höher als erwartet und die Reaktionen durchweg positiv. Die Konferenz war durch die ppedv sehr gut organisiert und ich habe mich auch als Sprecher sehr wohlgefühlt. Mal sehen, ob es nächstes Jahr wieder klappt. Beim Office 365 Business Day war ich dann leider krank 🙁

Laufende Nummer aus einer Liste ermitteln mit Nintex Workflow

Dieser Beitrag beschäftigt sich mit einer Aufgabe aus dem Bereich Nintex Workflow, welche ich fast in jedem Projekt gestellt bekomme. Diese besteht darin, dass ich eine SharePoint-Liste habe, welche laufende Nummern enthält. Diese können z.B. verwendet werden um in einem Projektportal die Projektnummern entsprechend zu vergeben. Nur wie lese ich diese Nummern aus der Liste und wie schreibe ich diese in die Liste wenn der Zähler um eins erhöht wird? Dieser Beitrag gibt dafür eine Anleitung.

Voraussetzungen

Ich gehe im Folgenden nicht darauf ein wie in Nintex Workflow ein Workflow erstellt wird und welche Optionen dieser hat. Das würde den Rahmen dieses Beitrages sprengen. Voraussetzung ist eine Liste mit dem Namen Projektnummern und mit mindestens dem folgenden Schema:

Feldname Beschreibung
ID ID des Eintrages, wird von SharePoint verwaltet.
LaufendeNummer Dieser Wert wird von Nintex Workflow gelesen/geschrieben. Startwert ist 1000.

Außerdem gibt es noch eine Liste Projekte, welche auch ein Feld Projektnummer hat. Hier soll ein neuer Eintrag erstellt werden mit dem entsprechenden Wert.

Die Abfrage der Liste erfolgt mit CAML. „CAML (Collaborative Application Markup Language) ist eine auf XML basierende Auszeichnungssprache, die speziell für die SharePoint-Produkte (z. B. Microsoft SharePoint Foundation und Microsoft SharePoint Server) entwickelt wurde und für diese ausgelegt ist. CAML enthält Elemente zur Datendefinition und zur Abfrage und Anzeige von Daten in SharePoint-Portalen.“ Sie sollten mit der Sprache vertraut sein, auch wenn Nintex Workflow dafür einen Assistenten anbietet.

Der Workflow ist generisch folgendermaßen aufgebaut. Er enthält nicht alle Schritte der Übersichtlichkeit halber.

Workflow erstellen…

Der Workflow startet in der Liste Projekte und benötigt die folgenden Nintex Workflow Aktionen.

Name der Aktion (Englisch)

Bereich (Englisch)

Bild

Query List Libraries and lists

Collection operation Operations

Create item Libraries and lists

Der fertige Workflow sieht dann so aus.

Im Folgenden werde ich Aktionen anhand ihrer Nummern erläutern.

Aktion 1 – Query List

Diese Aktion ruft alle Werte ab, welche in der Spalte LaufendeNummer in der Liste Projektnummern stehen. Damit dies funktioniert, muss zuerst eine Variable vom Typ Collection erzeugt werden. In meinem Fall trägt diese den Namen CollNummer. Um eine Variable zu erstellen, klicken Sie auf die Nintexaktion Query List im Designer und dann im Menüband auf Variables. Anschließend
auf New und legen Sie die Variable an.
Wenn Sie schon einmal dabei sind, legen Sie eine weitere Variable vom Typ Number mit den Namen lfdNummer an.
Legen Sie außerdem eine Variable vom Typ Number mit der Bezeichnung Index an.
Die Zahlen geben den Klickpfad an.

Zurück in die Aktion Query List wählen Sie bei List die Liste Projektnummern und bei Sort die Spalte ID. Bei Field wählen Sie LaufendeNummer aus und klicken auf Add. In dem
erscheinenden Dropdown wählen Sie CollNummer.

Wenn Sie sehen wollen wie der Code aussieht und ob der Abruf funktioniert, kicken Sie auf Run now in der Menüleiste. Mit einen Klick auf Execute sehen Sie jetzt alle Einträge in der Liste.

Speichern Sie die Aktion wenn alles funktioniert.

Aktion 2 – Collection operation – Sort CollNummer

Diese Aktion ist nicht unbedingt erforderlich, dient aber der Sicherheit. Die Daten sollten eigentlich schon so geliefert werden, dass die höchste ID und damit die höchste Zahl das letzte Element in der Collection sind. Aber sicher ist sicher, also sortieren wir noch einmal. Konfigurieren Sie die Aktion wie unten gezeigt.

Aktion 3 – Collection operation – Count CollNummer

Um den letzten Eintrag abzurufen müssen wir erst wissen, wie viele Einträge die Collection hat. Dafür bietet Nintex die Methode Count an. Konfigurieren Sie die Aktion wie unten gezeigt.

Aktion 4 – Collection operation – letzte Nummer holen

Jetzt endlich können wir die letzte Nummer holen. Konfigurieren Sie die Aktion wie unten gezeigt.

Aktion 5 – Create new item in Projekte

Sie haben jetzt den Wert in der Variable und können diese entsprechend weiterbenutzen. Ich werde nur als Beispiel ein neues Element in der Liste Projekte erstellen. Konfigurieren Sie die Aktion wie unten gezeigt. Natürlich würden noch mehr Felder gefüllt werden müssen, ich habe diese aus Gründen der Übersicht weggelassen. Ebenso wäre der Projekttitel bestimmt dynamisch.

Der Workflow ist damit im Wesentlichen abgeschlossen. Man sollte jetzt auch in die Liste Projektnummern einen neuen Eintrag erzeugen um die Zahl hochzuzählen. Natürlich kann man auch die Zahlen direkt in der Projektliste verwalten, der Möglichkeiten gibt es da viele.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.

Empfehlung: 27.04.2017 – 1. Office 365 Business Forum – Produktivität aus der Wolke

Am 27.04.2017 findet von 09:00 – 18:00 Uhr bei der Adesso AG das erste Office 365 Business Forum – Produktivität aus der Wolke statt. Ich werde dabei einen Vortrag halten wie man Mitarbeiter für den digitalen Wandel gewinnen kann bzw. warum sich viele Firmen doch damit sehr schwer tun. In vielen Fällen ist nicht das neue Tool oder der neue Service der eingeführt wird das Problem. Vielmehr liegt das Problem oft in der Firmenkultur. Wie eine solche entsteht, wie man eine solche ändern kann,  damit beschäftigt sich mein Vortrag.

Natürlich gibt es auch noch weitere Vorträge welche versprechen interessant zu werden. Das Programm kann man hier sehen:

Agenda Office 365 Business Forum

Zur Anmeldung geht es hier:

Anmeldung bei XING

Da die Veranstaltung kostenfrei ist, gibt es eigentliche keine Entschuldigung, wenn man nicht hingeht 🙂 Die Adresse ist Am Tullnaupark 15, 90402 Nürnberg

Arbeiten mit dem Webpart für Inhaltssuche – Teil 4 – Vordefinierte Suchen erstellen

Arbeiten mit dem Webpart für Inhaltssuche – Teil 1 Übersicht
Arbeiten mit dem Webpart für Inhaltssuche – Teil 2 – KQL
Arbeiten mit dem Webpart für Inhaltssuche – Teil 3 – Arbeiten mit Displaytemplates
Arbeiten mit dem Webpart für Inhaltssuche – Teil 4 – Vordefinierte Suchen erstellen

Der vierte und letzte Teil der kleinen Serie über das Arbeiten mit dem Webpart für Inhaltssuche beschäftigt sich mit dem Erstellen von vordefinierten Suchen. Darunter verstehe ich eine Seite, auf welcher ich Suchen absetzen und diese auch verfeinern kann. Dabei ist der Suchfocus im Allgemeinen schon auf ein Thema eingegrenzt, z.B. die Suche in einer Projektverwaltung oder auf Aufgaben. Diese Seiten können dann z.B. über einer Linkliste auf der Startseite aufgerufen werden.

Zwar muss jede Seite individuell konfiguriert werden, aber Sie haben so auch den größten Nutzen. Natürlich können Sie eine solche Seite auch in einem Suchcenter erstellen. Dort ist das Erstellen der Seiten sogar noch einfacher, da ein schon vorkonfiguriertes Seitenlayout verwendet wird. Wenn Sie also individuelle Suchseiten erstellen können, haben Sie im Suchcenter erst recht keine Probleme.

Um eine solche Seite zu erstellen, füge ich über das Zahnrad oben rechts eine neue Seite hinzu. Sollte dies nicht möglich sein, können Sie entweder das Feature Homepage der Wiki-Seite oder SharePoint Server-Veröffentlichung aktivieren. Natürlich gibt es auch noch andere Möglichkeiten eine neue Seite zu erstellen. Ich füge der neuen Seite eine Tabelle mit zwei Spalten und zwei Zeilen hinzu. Diese nutze ich später um die Webparts entsprechend zu platzieren. Ich habe die Zellen entsprechend dem Schema unten nummeriert.


Was wird für eine solche Suchseite eigentlich benötigt? Ich benutze die folgenden Webparts aus dem Abschnitt Search und Content Rollup.

Webpart Beschreibung Zone
Search => Search Box Dieser Webpart dient der Eingabe von Suchwörtern und Phrasen. Er ist i.d.R. automatisch mit dem Webpart Content Search verbunden. 1
Search => Refinement Dieser Webpart dient der Verfeinerung von Suchergebnissen und kann dafür individuell konfiguriert werden. Er ist i.d.R. automatisch mit dem Webpart Content Search verbunden. 3
Content Rollup => Content Search Der Webpart für Inhaltsabfragen 4

Wenn Sie die Webparts eingefügt haben, indem Sie in die jeweilige Tabellenzelle klicken und dann den benötigten Webparts einfügen, sieht die Seite in etwa so wie unten aus.


In manchen Fällen reagiert der Webpart für Inhaltsabfragen nicht auf Eingaben im Suchfeld. Dies liegt oft daran, dass der Webpart in seiner Query noch nicht auf das Suchfeld „hört“. Um dieses Problem zu beheben, konfigurieren Sie den Webpart für Inhaltsabfragen und passen Sie die Query an. Geben Sie in das Feld Query text die folgende Variable ein: {SearchBoxQuery} Nach dem speichern sollte auch die Abfrage aus dem Suchfeld funktionieren.


Damit sind Sie eigentlich schon fertig, Sie müssen natürlich noch den Webpart für Inhaltsabfragen sowie ggf. die Verfeinerungen anpassen wie z.T. in den vorherigen Artikeln beschrieben.

Haben Sie diese Anforderung schon einmal gehabt? Oder eine andere Frage? Dann schreiben Sie einen Kommentar!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.

 

Arbeiten mit dem Webpart für Inhaltssuche – Teil 3 – Arbeiten mit Displaytemplates

Arbeiten mit dem Webpart für Inhaltssuche – Teil 1 Übersicht
Arbeiten mit dem Webpart für Inhaltssuche – Teil 2 – KQL
Arbeiten mit dem Webpart für Inhaltssuche – Teil 3 – Arbeiten mit Displaytemplates
Arbeiten mit dem Webpart für Inhaltssuche – Teil 4 – Vordefinierte Suchen erstellen

Dies ist der dritte Beitrag in der kleinen Serie über den Webpart für Inhaltssuche in SharePoint 2013. In den vorherigen Beiträgen haben wir uns angeschaut, wie der Webpart konfiguriert wird und wie Sie Suchabfrage gestalten können. Jetzt wird es darum gehen, wie wir die Suchanfrage optisch aufpeppen können. Denn die schon vorhandenen Vorlagen sind, abgesehen von den Funktionen für Bilder, eher sehr technisch. Ich werde mich dabei auf eine einfache Anwendung konzentrieren, es gibt im Internet viele Blogs welche sich dem Thema angenommen haben. Wenn man einmal das Prinzip verstanden hat, kann man auch schnell eigene Lösungen implementieren.

Die Vorlagen heißen Displaytemplates und gibt eine ganze Menge davon im System. Displaytemplates regeln sowohl die prinzipielle Anzeige der Suchergebnisse (Tabelle, Liste, Slideshow) als auch die Anzeige der einzelnen Elemente (welche Metadaten werden angezeigt, wie groß ist ein Bild). Ebenso werden Displaytemplates verwendet, wenn beim Überfahren eines Elementes eine Vorschau angezeigt wird.

Für Demonstrationszwecke werde ich eine vorhandene Vorlage anpassen und diese ergänzen. Im ersten Teil habe ich mit dem Displaytemplate Two Lines gearbeitet und dort zusätzlich das Metadatum Author eingefügt. Jetzt möchte ich, dass vor dem Metadatum der Begriff Autor steht. Dazu muss das vorhandene Displaytemplate kopiert werden, in der Kopie erfolgt dann die Anpassung. Die Displaytemplates sind im Pfad http:///_catalogs/masterpage/Display%20Templates gespeichert. Dieser bzw. sein Inhalt ist allerdings nicht immer sichtbar im Browser. Wenn dies der Fall ist, müssen Sie das SharePoint Publishingfeature aktivieren. Um zum Pfad zu navigieren, gehen Sie zu den Site Settings und dann zu Master pages and page layouts im Abschnitt Web Designer Galleries. Auch diesen Link finden Sie erst nach der Aktivierung des Features. Sie sehen eine Bibliothek, in welcher alle Pagelayouts und Masterpages liegen sowie einige Ordner. Suchen Sie den Ordner Display Templates und öffnen Sie diesen. Die Displaytemplates für den Webpart für Inhaltssuche liegen im Unterordner Content Web Parts. Dort finden Sie jetzt alle Displaytemplates , welche Sie auch im Webpart auswählen können.

Um möglich einfach zu arbeiten, öffnen sie Sie die Bibliothek im Windows Explorer. Klicken Sie dazu auf das Menüband Library und im Abschnitt Connect & Export auf Open with Explorer. Wenn Sie möchten, können Sie den Pfad auch einen Laufwerkbuchstabe zuweisen. Sie können dann in jeden beliebigen HTML Designer arbeiten, denn die Displaytemplates bestehen nur aus HTML und JavaScript. Beide zusammen bilden dann jeweils ein Displaytemplate.

Angepasst werden immer nur die HTML Dateien, NIEMALS die JS Dateien. Die JS Dateien werden von SharePoint automatisch erzeugt wenn eine HTML Datei gespeichert wird und sind für die Bearbeitung tabu. Suchen Sie die Datei Item_TwoLines.html und kopieren Sie diese zu Item_TwoLines_with_Author.html. Sie werden sehen, unmittelbar danach wird auch die entsprechende JS Datei erstellt. Ich öffne die kopierte HTML Datei in Notepad++, aber natürlich geht auch jede anderer Editor.

Es lohnt sich die Datei einmal in aller Ruhe anzuschauen. Sie enthält viele Möglichkeiten und Ideen, was mit Displaytemplates alles möglich ist. Ich gebe nur einen kleinen Abriss, um zu zeigen was man mindestens für ein eigenes Displaytemplate machen muss. Als erstes sollten wir den Titel in Zeile drei ändern. Unter diesen Namen können wir nämlich später das Displaytemplate im Webpart auswählen. Unschön, wenn es zwei Displaytemplates mit dem gleichen Namen gibt. Ich nenne mein Displaytemplate TwoLines with Author.

&lt;html xmlns:mso=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:msdt=&quot;uuid:C2F41010-65B3-11d1-A29F-00AA00C14882&quot;&gt;
&lt;head&gt;
&lt;title&gt;TwoLines with Author&lt;/title&gt;

Als nächstes interessant ist die Zeile acht. In dieser Zeile legen Sie fest, mit welchen verwalteten Eigenschaften Sie im Displaytemplate arbeiten möchten. Dabei gibt es immer ein Wertepaar, interne Bezeichnung der Eigenschaft und Anzeigename. Da in unseren Fall allerdings die Werte über Eingabefelder (Line1 und und Line2) übergeben werden, brauchen wir die Eigenschaften hier nicht extra zu benennen.

Es folgt einiger JavaScript Code, welcher in Token

&lt;!--#_ _#--&gt; 

eingeschlossen ist. Die eigentliche Darstellung erfolgt erst ab Zeile 63. In Zeile 73 steht die Darstellung der zweiten Zeile.

&lt;div class=&quot;cbs-Line2 ms-noWrap&quot; title=&quot;_#= $htmlEncode(line2.defaultValueRenderer(line2)) =#_&quot; id=&quot;_#= line2Id =#_&quot;&gt;_#= line2 =#_&lt;/div&gt;

Wir können jetzt erkennen, dass hier sowohl reines HTML als auch JavaScript vermischt wird. Der JavaScript Code steht wieder in Token. Der Wert der Eigenschaft steht vor dem letzten Div in _#= line2 =#_ . Also ändere ich die Zeile folgendermaßen indem ich direkt davor Author schreibe:
Orginal

&lt;div class=&quot;cbs-Line2 ms-noWrap&quot; title=&quot;_#= $htmlEncode(line2.defaultValueRenderer(line2)) =#_&quot; id=&quot;_#= line2Id =#_&quot;&gt;_#= line2 =#_&lt;/div&gt;

Mit Änderung

&lt;div class=&quot;cbs-Line2 ms-noWrap&quot; title=&quot;_#= $htmlEncode(line2.defaultValueRenderer(line2)) =#_&quot; id=&quot;_#= line2Id =#_&quot;&gt;Author: _#= line2 =#_&lt;/div&gt;

Speichern Sie die Änderung.

ACHTUNG: Damit alle Benutzer die Änderung später sehen, muss das geänderte Displaytemplate noch veröffentlicht werden. Gehen Sie im Browser deshalb zu der Bibliothek, markieren Sie die Datei und wählen Sie aus der Menüleiste Publish Dieser Vorgang ist jedes Mal erforderlich, wenn Sie ein fertiges Displaytemplate zur Verfügung stellen wollen. Veröffentlichen Sie nur die HTML Datei, um die JS Datei kümmert sich SharePoint alleine.


Damit Sie das neue Displaytemplate auswählen können, müssen Sie die Seite neu laden, welche den Webpart für Inhaltssuche enthält und diesen wieder zur Bearbeitung auswählen.

Unter Property Mappings können wir das Metadatum Author auswählen, welches dann auch in der zweiten Zeile zusammen mit dem Suffix angezeigt wird. Natürlich wird jetzt immer der Präfix Author angezeigt, aber als Beispiel soll es genügen.

Dies alles nur als Beispiel. Wenn man das konsequent zu Ende denkt, kann eine Anwendung entstehen, wie sie Maggi erstellt hat. Die Rezepte arbeiten mit der Suche und die Präsentation der Suchergebnisse erfolgt mit Displaytemplates. https://www.maggi.de/rezepte. Displaytemplates sind DAS Mittel zur Wahl zur Präsentation von Inhalten in SharePoint. Auch, aber nicht nur deswegen sollte man überlegen mehr Inhalte über die Suche zu erschließen und auf Drilldown Strukturen immer mehr zu verzichten.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf
http://www.nicothiemer.de

Arbeiten mit dem Webpart für Inhaltssuche – Teil 2 – KQL

Arbeiten mit dem Webpart für Inhaltssuche – Teil 1 Übersicht
Arbeiten mit dem Webpart für Inhaltssuche – Teil 2 – KQL
Arbeiten mit dem Webpart für Inhaltssuche – Teil 3 – Arbeiten mit Displaytemplates
Arbeiten mit dem Webpart für Inhaltssuche – Teil 4 – Vordefinierte Suchen erstellen

Dieser zweite Teil der kleinen Serie über das Arbeiten mit dem Webpart für Inhaltssuche beschäftigt sich mit dem Schreiben der Suchquery für den Webpart. Diese wird in Keyword Query Language (KQL) geschrieben, ist enorm leistungsfähig und dabei nicht einmal kompliziert. Natürlich können die Suchabfragen, welche ich unten beschreibe, auch an allen anderen Orten der SharePoint Suche (Suchergebnisquellen, JS Code, etc.) verwendet werden. Los geht’s.

Um die Beispiele nachvollziehbar zu machen eine kleine Erläuterung, was ich angelegt habe: Es gibt eine Bibliothek mit vier Bildern, welche auch als Inhaltstyp Bild klassifiziert sind. Außerdem gibt es in der Bibliothek auch Videos und MP3. Die Bibliothek heißt BilderTest.

Wenn Sie den Suchwebpart im Modus zum Bearbeiten geöffnet haben, klicken Sie auf die Schaltfläche Change query im oberen Abschnitt des Webparts.

Es öffnet sich ein Overlayfenster mit ziemlich vielen Optionen.

Damit Sie die Suchquery überhaupt eingeben können, klicken Sie auf Switch to Advanced Mode. Wenig überraschend können Sie die Suchquery in das gleichnamige Feld eingeben. Entfernen Sie dazu den schon darin stehenden Inhalt. Folgende Parameter können Sie u.a. für die Query verwenden. Die meisten Parameter werden in der Form Parametername:Wert verwendet.

Parameter Bedeutung Beispiel
path Gibt einen Speicherplatz an, aus dem die Ergebnisse angezeigt werden sollen. Dies kann eine Sitecollection, eine Website oder eine Liste/Bibliothek sein. Path:“http://intranet.contoso.com/ BilderTest“

Würde alle Inhalte aus der Bibliothek BilderTest anzeigen.

ContentTypId Gibt eine ID eines Inhaltstyps an, auf dem Suchergebnisse verengt werden. Um diese ID zu finden, schalten Sie wieder in den QuickMode und wählen bei Select a query den Wert Items matching a content type (System) aus. Weiter unten können Sie dann unter Restrict by content type im
DropDown den gewünschten Inhaltstyp auswählen. Der Wert mit Parameter steht dann im Abfragefeld wenn Sie wieder umschalten.
ContentTypeId:0x010102*

Wählt alle Bilder aus.

Author Damit kann der Autor eines Elementes gesucht und damit gefiltert werden. Author:{User.Name}

Damit werden alle Elemente angezeigt, welche den Benutzer, welcher die Seite gerade aufruft, als Autor enthalten.

FileType Grenzt die Abfrage auf einen Dateiformat, z.B. pdf oder docx, ein. FileType:jpg

Zeige nur JPG Dateien an.

Sie können als Parameter jede verwaltete Eigenschaft nutzen. Wie Sie diese erstellen, ist hier beschrieben für onPremise und für Office 365. Die Parameter können untereinander mit den Operatoren AND und OR verbunden werden. Wenn Sie nichts angegeben, ist es immer ein AND. Wenn Sie ein OR verwenden möchten, so müssen Sie dies großschreiben. Ebenso können Sie + und – bzw. NOT verwenden.

Eine typische Abfrage um alle Bilder in der Bildbibliothek BilderTest anzuzeigen könnte wie unten aussehen. {Pfad} müssen Sie mit Ihrem Pfad ersetzen, dies ist kein Platzhalter im KQL.

Path:“http://{Pfad} / BilderTest/“ ContentTypeId:0x010102*

Um alles außer Bilder, also z.B. nur Videos und MP3 anzuzeigen würde sich anbieten:

Path:“http://{Pfad} / BilderTest/“ NOT ContentTypeId:0x010102*

Um alle meine Dokumente zu sehen:

Path:“http://{Pfad} / BilderTest/“ Author:{User.Name}

Am rechten Rand des Fensters können Sie jeweils eine Vorschau sehen, wenn Sie auf Test query klicken. Wenn Sie den Test in der Suchanwendung in der Zentraladministration durchführen, sehen Sie keine Vorschau sondern erhalten einen Fehler. Dies ist „normal“. Haben Sie die Query fertig, klicken Sie auf OK. Damit Sie eine Änderung auf der Webseite sehen, klicken Sie entweder auf Apply oder auf OK in der Konfiguration des Webparts. Damit die Bilder auch entsprechend angezeigt werden, wählen Sie die Konfiguration wie unten aus.

Der nächste Beitrag wird sich tiefer mit der Darstellung der Ergebnisse, also den DisplayTemplates beschäftigen.

Zum Abschluss noch ein Tipp: Thomas Maier, der SharePoint Schwabe, hat einige gute Gedanken zum Vergleich Google und SharePoint Suche geschrieben. Schauen Sie doch mal rein. https://www.sharepoint-schwabe.de/suche-wie-kann-sie-besser-genutzt-werden-tipps-und-parameter

Haben Sie diese Anforderung schon einmal gehabt? Oder eine andere Frage? Dann schreiben Sie einen Kommentar!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular oder schreiben Sie einen Kommentar.

Sie wollen mehr über meine Leistungen erfahren? Dann klicken Sie hier.

Arbeiten mit dem Webpart für Inhaltssuche – Teil 1 – Übersicht

Arbeiten mit dem Webpart für Inhaltssuche – Teil 1 Übersicht
Arbeiten mit dem Webpart für Inhaltssuche – Teil 2 – KQL
Arbeiten mit dem Webpart für Inhaltssuche – Teil 3 – Arbeiten mit Displaytemplates
Arbeiten mit dem Webpart für Inhaltssuche – Teil 4 – Vordefinierte Suchen erstellen

Dieser Artikel ist der Start einer mehrteiligen Serie, welche sich mit dem Webpart für Inhaltssuche beschäftigt. Warum ist dieser Webpart in modernen SharePoint Anwendungen so wichtig und warum wird dieser vergleichsweise wenig verwendet? Neben der Beantwortung dieser Fragen werde ich mich auch mit der Konfiguration des Webparts beschäftigen und einige korrekte Anwendungsbeispiele geben.

Wozu das Ganze?

In modernen SharePoint Anwendungen wird versucht auf Drilldown Strukturen zu verzichten. Dies wird erreicht, indem ich den Benutzern z.B. durch Dokumentenrouting eine einzige Stelle gebe um Dokumente hochzuladen und diese dann über Regeln verteilen lasse. Zwingend notwendig dafür ist allerdings eine durchgeplante Informationsarchitektur. Gerade in Zeiten von exponentiellen Informations- und Wissenswachstum ist diese unerlässlich. Der Gedanke ist nun, den Benutzern durchgeplante Bereiche zur Verfügung zu stellen, wo diese an vielen verschiedenen Stellen ihre Informationen erfassen können. Aber über eine zentrale Stelle, z.B. ein Suchcenter oder auch die Startseite einer Anwendung, bereite ich diese Informationen wieder mit der Suche auf. Es ist nicht wichtig, wo eine Information liegt, sofern ich diese z.B. über Inhaltstypen und deren Eigenschaften schnell wiederfinde. Genau dafür ist der Webpart für Inhaltssuche konzipiert.

Grundlagen

Der Webpart für Inhaltssuche wurde in SharePoint 2013 neu eingeführt, ein ganz ähnlicher Webpart, den Suchergebniswebpart gibt es schon viel länger. In SharePoint 2013 und 2016 ist die Ähnlichkeit zwischen den Webparts sehr stark. Der primäre Unterschied ist zum einem, dass der Webpart für Inhaltssuche andere Möglichkeiten für die Konfiguration bietet und im Gegensatz zum Suchergebniswebpart nur in der Enterprise Edition verfügbar ist. Ich werde mich hier aber trotzdem mit dem Webpart für Inhaltssuche beschäftigen. Wenn man die grundlegenden Konzepte verstanden hat, kann man auch den Suchergebniswebpart konfigurieren. Voraussetzung für das Arbeiten mit diesen Webparts ist eine konfigurierte Suchanwendung, welche schon Inhalt indiziert hat.

Der Webpart für Inhaltssuche findet sich in der Gruppe Content Rollup und trägt dort den Namen Content Search. Es gibt auch noch einen Webpart Content Query, welcher mit XSLT arbeitet und daher völlig anders als der Webpart für Inhaltssuche. Wird der Webpart für Inhaltssuche auf einer Seite eingefügt, bekommt man eine Anzeige, mit welcher man in der Regel wenig anfangen kann. Oftmals nur drei graue Kacheln und danach einen nichtssagenden Link.

Den Webpart konfigurieren

Wenn man den Webparts bearbeitet, ist man auch nicht unbedingt schlauer. Was bedeuten jetzt die ganzen Einstellungen im Abschnitt Properties?

Am interessantesten ist zweifellos der Inhalt, welcher sich hinter der Schaltfläche Change query verbirgt. Hier kann ich die Abfrage ändern, welche der Webpart im Suchindex ausführt. Was genau man da machen kann, wird der Inhalt eines weiteren Artikels in nächster Zeit sein. Number of items to show erklärt sich von alleine und gibt eben an, wie viele Ergebnisse aus der Abfrage auf einmal angezeigt werden sollen.

Spannender ist da der Abschnitt Display Templates. Hier wird festgelegt wie die Suchergebnisse präsentiert werden. Dabei helfen zwei Typen von Vorlagen. Das Control Template legt fest, wie die Präsentation der gesamten Suchergebnisse erfolgt. Soll z.B. jedes Ergebnis auf einer Zeile stehen oder sollen diese, wie z.B. bei Bildern üblich, als Slideshow präsentiert werden. Man kann die Ergebnisse auch als Tabelle formatieren, aber das muss man selber entwickeln. In der Abbildung unten ist dies das Template List Table Control.


Das Item Template legt dagegen fest, wie jedes einzelne Suchergebnis angezeigt wird. Da wird auch schnell klar, was der graue Kasten bei den Suchergebnissen sein kann. Es ist ein Platzhalter für ein Bild, was nicht angezeigt werden kann. Logisch, den in der Regel haben Office Dokumente in SharePoint kein Bild hinterlegt.

Stellt man als Template z.B. Two Lines ein, sieht die Ansicht gleich ganz anderes aus.

Allerdings erscheint nur eine Zeile und nicht zwei wie das Template verspricht. Um diese anzuzeigen, muss der Abschnitt Property Mappings erweitert und die Option Change the mapping of managed properties for the fields in the Item Display Template aktiviert werden. Jetzt kann man im Dropdown Line 2 eine Eigenschaft auswählen, welche angezeigt werden soll. In dem DropDown werden u.a. alle verwalteten Eigenschaften angezeigt, welche SharePoint durchsucht. Allerdings ist natürlich nicht jede Eigenschaft an jedes Element gebunden. Ich wähle als Beispiel die Eigenschaft Author, denn diese ist immer vorhanden. Nach ein Klick auf Apply sehen die Suchergebnisse schon anders aus. Natürlich sind auch hier eigene Anpassungen möglich. Es lohnt sich, hier ein wenig zu experimentieren.

Die Einstellungen im Abschnitt Settings sollten
am Anfang unverändert bleiben.

Da dies der letzte Beitrag im Jahr 2016 ist, wünsche ich allen Lesern dieses Blogs eine frohes Fest und einen guten Rutsch in das neue Jahr!

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf
http://www.nicothiemer.de

Falsche Werte im Metadatum Title in der SharePoint Suche

Eine der wichtigsten Neuerungen bei SharePoint 2013 war die Einführung des Webparts zur Abfrage von Suchergebnissen. Mit diesem wird es möglich einfach, schnell und optisch ansprechende Anwendungen zu entwickeln. Ein wesentlicher Bestandteil dieser Lösungen stellt dabei die Anzeige von Metadaten dar. Gerade bei Dokumenten ist dies nützlich, so kann die Beschriftung des Links zum Dokument aus dem Metadatum Title generiert werden, welches jedes Dokument hat. Manchmal allerdings stehen dann in der Anzeige der Suchergebnisse völlig andere Werte als im Metadatumsfeld angegeben.

Dies ist auch bei einem Wartungskunden von mir geschehen. Er öffnete ein Ticket, in welchem er zeigte, dass einige Dokumente in der Anzeige des Suchwebparts in der Spalte Title die letzte Seitenzahl, also z.B. 5 von 5 zeigten. Andere Dokumente hatten in der Spalte Title die erste Überschrift aus dem Dokument stehen. Ließ man sich in SharePoint die Metadaten der Dokumente anzeigen, waren natürlich in der Spalte Title keine Seitenzahlen und keine Überschriften hinterlegt, sondern ordentlich die Namen der Dokumente. In dem Log der Suche gab es keine Auffälligkeiten, die Dokumente wurden aus der Sicht von SharePoint einwandfrei indiziert. Und natürlich trat dieses Verhalten nicht bei allen Dokumenten auf.

Es war relativ schnell klar, dass der Grund bei den Dokumenten als solches liegen musste. Wir haben dann herausgefunden, dass sich in der Vorlage, welche für das betreffende fehlerhafte Dokument verwendet wurden, sich Word Formatvorlagen befanden, welche Word nicht zuordnen konnte. Diese waren sowohl in der Kopf- als auch in der Fußzeile zu finden. Als Lösung haben wir dann die vorhandene Fußzeile, welche auch die Seitenzahlen enthielt, samt allen Formaten darin entfernt und neu geschrieben. Das Dokument neu hochgeladen, indiziert und siehe da: Alles wieder richtig.

Ganz offensichtlich ist der Parser der SharePoint Suche bei den falschen(?) Formatvorlagen aus dem Tritt gekommen und hat dann einfach in das Feld Title einen beliebigen Wert geschrieben. Das zeigt auch sehr schön, wie wichtig das stringente Verwenden von Vorlagen ist. Eine mögliche Lösung dafür gibt es hier: Verwalten von Vorlagen mit SharePoint und Inhaltstypen.

Vielen Dank für Ihr Interesse an meinem Blogeintrag.
Gerne beantworte ich Ihnen persönlich weitergehende Fragen zu diesem Thema.
Kontaktieren Sie mich einfach über mein Kontaktformular.

Sie wollen mehr über mich erfahren? Dann gehen Sie auf
http://www.nicothiemer.de