Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Office 365: SharePoint-Anwendungsfälle

Suchgetriebene Abfrage von auslaufenden Verträgen – Teil 1

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auslaufende Verträge bedürfen einer frühzeitigen Erkennung. Wie diese automatisch erkannt werden können, lernen Sie in diesem Video.

Transkript

Auf der linken Seite unseres Vertragsverwaltungscockpits haben wir zwei besonders interessante Webparts, nämlich die Webparts, die uns über auslaufende Verträge und über nicht freigegebene Verträge informieren. Besonders interessant sind diese Webparts, weil diese nicht über den herkömmlichen Mechanismus einer Inhaltsabfrage, sondern über eine Suchanfrage funktionieren. Wenn wir diese Seite aktualisieren, führen wir nicht nur eine Inhaltsabfrage durch, wie das zum Beispiel hier bei den Ankündigungen der Fall ist, sondern wir führen auch eine Suchabfrage durch, was bei den auslaufenden Verträgen und bei den nicht freigegebenen Verträgen der Fall ist. Wie das funktioniert, sehen wir uns nun an. Die Entscheidung für eine suchgetriebene Abfrage und eine suchgetriebene Darstellung ist durchaus vielfältig, aber auch schnell erklärt. Im Gegensatz zu einer Inhaltsabfrage – vielleicht kennen Sie den Inhaltsabfrage-Webpart, der uns in die Lage versetzt, Daten aus unserer Websitesammlung zusammenzuziehen und dann entsprechend in Form einer Liste darzustellen. Diesen Webpart könnte man theoretisch auch zu diesem Zweck verwenden. Allerdings ist die Technologie hinter dieser Inhaltsabfrage relativ veraltet und auch mit gewissen Nachteilen behaftet. Die für mich ausschlaggebenden und wesentlichen Aspekte sind schlicht und ergreifend, dass wir bei einer Suchabfrage, anders als bei einer Inhaltsabfrage, nicht an Objektgrenzen gebunden sind. Das heißt, wir können über unser komplettes Unternehmenskonto und sogar darüber hinaus Suchabfragen aus Datenquellen, die auch von außen kommen können, einbeziehen und dementsprechend als Suchtreffer darstellen. In dem Fall haben wir ein, sagen wir mal, mittelmäßig schwieriges Szenario, dass wir lediglich Informationen über Dokumentenbibliotheken hinweg abfragen möchten. Das wäre auch mit einer Inhaltsabfrage gegangen. Allerdings sind Inhaltsabfragen bei größeren Datenbeständen relativ unflexibel. Es gibt eine magische Obergrenze von 5000 Listenelementen pro Listenansicht. Wenn diese Grenze überschritten ist, versagt der Inhaltsabfrage-Webpart seinen Dienst, während die Suchabfrage wunderbar weiter und vor allem performant funktioniert, Darüber hinaus können wir bei einer Suchabfrage viel flexibler visualisieren als bei einer Inhaltsabfrage. Wir könnten über sogenannte Display Templates sehr frei und flexibel bestimmen, wie die Ergebnisse, die wir aus dem Suchindex abfragen, dargestellt werden sollen. Wie in dem Fall hier unser auslaufender Vertrag mit dem expliziten Hinweis, wann dieser Vertrag denn endet. Oder zum Beispiel beim nicht freigegebenen Vertrag mit einem expliziten Hinweis auf den Genehmigungsstatus. Zunächst einmal besteht jede Suchabfrage aus einer Suchergebnisquelle. Die schauen wir uns als erstes an, indem ich hier einen separaten Tab mache, indem ich jetzt hier einen zweiten Eintrag hinzufüge und zunächst zu den Suchergebnisquellen meiner Websitesammlung navigiere. Hier haben wir nun die Suchergebnisquelle Auslaufende Verträge, die ich durch eine kleine Bearbeitung einfach mal demonstriere. Das ist der Bezeichner, das ist nicht weiter spektakulär. Besonders interessant wird es eigentlich nur hier in der Abfragetransformation. Der Rest ist komplett am Standard belassen. Die Abfragetransformation setzt sich folgendermaßen zusammen. Zunächst möchten wir Dokumente, also Verträge, aus unterschiedlichen Inhaltstypen zusammenführen. In dem Fall möchten wir alle Suchtreffer zurückbekommen – besser gesagt, alle Dokumentenmappen von einem bestimmten Inhalts-Typ – den Leasing-Vertrag, den Mietvertrag, den Rahmenvertrag und den Dienstleistungsvertrag. Diese Inhaltstypen möchten wir zunächst einmal in den Suchtreffern zusammenziehen. Das Ganze ist logisch ODER-verknüpft, so dass wir all diese Treffer hier mit einbeziehen. Jetzt geht's hier weiter mit einer unvernüpften Bedingung. In dem Fall ist das die Eigenschaft RefinableDate. Was hat es damit auf sich? Das schauen wir uns jetzt im Suchschema an. Hier haben wir das Suchschema der Websitesammlung. Ich suche einmal nach den managed Properties namens RefinableDate. Wir sehen hier, hinter der managed Property RefinableDate03 verbirgt sich die crawled Property für das Vertragsende. Hier werden also die Spaltenwerte aus der Spalte Vertragsende, wie es zum Beispiel in den Leasing-Verträgen verwendet wird, durchgereicht. Das heißt, diese Eigenschaft können wir mit dem heutigen Datum vergleichen und dafür sorgen, dass hier in unserem Suchergebnis nur Treffer aufgeführt werden, die logischerweise über das aktuelle Datum hinausgehen. Diese managed Property RefinableDate03 können wir allerdings nicht nur zur Abfrage verwenden, sondern auch zur Sortierung. In dem Fall möchten wir nach der Datumseigenschaft RefinableDate03 aufsteigend sortieren und bekommen dann eine entsprechende Suchergebnisvorschau zurück. Die uns in dem Fall vier Treffer liefert. Wenn wir das Ganze hier miteinander vergleichen, bekommen wir ebenfalls vier Treffer. Jetzt stellt sich die Frage, wie stellen wir die Verknüpfung zwischen Webpart und Suchergebnisquelle her? Das ist in dem Fall relativ einfach. Wir editieren den Webpart. Nun sind wir in der Lage, uns über die Webpart-Einstellungen zu der Abfrageauswahl durchzunavigieren. Hier müssen wir nur die entsprechende Suchergebnisquelle auswählen. Nämlich hier die auslaufenden Verträge. Hier können wir wieder auf Einschränkungen und Sortierungen einwirken und gewisse Einstellungen wie zum Beispiel eine Duplikatserkennung. Das ist in dem Fall aber nicht erforderlich. Dann haben wir die Möglichkeit, dieses Suchergebnis anzuzeigen. Jetzt haben wir hier allerdings noch eine kleine Finesse. Und zwar in Form dieser Information Vertragsende. In dem Fall war es ein ausdrücklicher Wunsch des Kunden, in der Übersicht der auslaufenden Verträge natürlich nicht nur die Übersicht der auslaufenden Verträge zu erhalten, sondern gleich im Suchtreffer beziehungsweise in der Übersicht eine Information zu bekommen, wann denn dieser Vertrag überhaupt ausläuft. Dies kann man folgendermaßen umsetzen. Im Sharepoint Designer navigieren wir nun zu den Display Templates. Das machen wir über einen Klick auf Catalogues, dann Master Page Search und schließlich Wenn ich das jetzt mal nach Änderungsdatum sortiere, können wir uns hier einen vergleichenden Überblick verschaffen. Wir haben hier die auslaufenden Verträge. Entsprechend ähnlich ist es hier benannt. Wir haben die HTML-Datei für den auslaufenden Vertrag. Das soll in dem Fall auch schon genügen. Dann möchten wir uns angucken, wie diese Information hier zustandekommt. Im Grunde können wir das Ganze auf diesen Einzeiler reduzieren. Das ist das Einzige, was ich innerhalb dieses Display Templates angepasst habe. Außer einer weiteren Kleinigkeit: Zunächst einmal müssen wir von einem Wert ausgehen. Der muss irgendwo herkommen. Wir haben das ja schon bei der Definition der Suchergebnisquelle gesehen, dass wir uns auf die managed Property RefinableDate03 bezogen haben, die wiederum aus der crawled Property ows_Vertragsende gespeist wird. Diese Eigenschaft überträgt die Datumsinformation für das Vertragsende. die wir an das Display Template übergeben möchten. müssen wir zunächst einmal hier im Bereich Managed Property Mapping diese gemanagte Eigenschaft einmalig anmelden. Das steht hier übrigens doppelt drin, weil wir hier einmal die eigentliche Anmeldung und hier nochmal einen Alias dahinterstehen haben. Deswegen wundert man sich vielleicht im ersten Moment, dass alles doppelt drinsteht, aber das hat so seinen Sinn. Dann reicht es im Prinzip, diese gemanagte Eigenschaft in dieser Diff-Box, mit einem kleinen Artefakt versehen – das heißt _#= und das Ganze hinterher nochmal umgekehrt =#_ – darzustellen. Hier steht jetzt aber nicht die managed Property. Hier steht eine Variable. Warum ist das so? Ganz einfach. Weil die managed Property standardmäßig aus einer Datumsinformation und aus einer Uhrzeit besteht. Obwohl die Websitespalte für das Vertragsende explizit auf nur Datum gestellt ist. Eigentlich dürfte hier also keine Uhrzeitinformation enthalten sein. Dennoch gibt diese managed Property einen Standardwert mit, der hier hinter dem Datum out of the box angezeigt wird. Das möchten wir allerdings nicht haben. Dementsprechend greifen wir jetzt zu einem kleinen JavaScript, um diese Datumsformatierung zu verändern. Das machen wir hier an dieser Stelle. Das sind zwei kleine Zeilen JavaScript. Wir erstellen eine Variable. In dem Fall die Variable parseDate. Wir erzeugen mit new Date ein neues Datumsobjekt und in dem Fall greifen wir auf die oben angemeldete managed Property RefinableDate03 zurück. In dem Fall beziehen wir uns über ContextCarriedItem auf den aktuellen Suchtreffer beziehungsweise auf das aktuelle Item, was wir jeweils abrufen. Das passiert grundsätzlich immer einzeln. Entsprechend beziehen wir uns über den Kontext auf das aktuelle Element. Dann haben wir hier eine weitere Variable mit der Bezeichnung DateWithoutTime, die wir auch hier an dieser Stelle finden. DateWithoutTime wird nun von rechts nach links initialisiert. Das heißt, hier findet eine Methode parseDate.format statt mit dem Parameter der entsprechenden Datumsformatierung. Das heißt, DD für die Tagformatierung, MM für die Monatsformatierung, und YYYY für die Jahresformatierung. Wichtig ist, dass Sie MM groß schreiben, damit es zuverlässig funktioniert. In dem Fall haben wir hier eine Kontextsensitivität. Was bedeutet, dass es nicht egal ist, ob wir dieses MM groß- oder kleinschreiben. Machen wir durchaus mal die Probe aufs Exempel, wie das aussehen würde, wenn wir auf diese Anpassung verzichten würden. In dem Fall dupliziere ich einfach mal diese Zeile. und füge nun die managed Property unverändert in die Darstellung ein. Ich überschreibe also diesen Eintrag, speichere das Display Template ab. In dem Fall muss ich kein Check-in des Display Templates vornehmen, das passiert automatisch. Vor das RefinableDate müssen wir in dem Fall noch den Kontextbezug hinzufügen. Wir speichern das Ganze ab. Nun aktualisieren wir unsere Page. So. Auch hier wird wieder augenfällig, wie wichtig die Kontextsensivitität ist. Hier muss Current und Item in einem Wort, aber natürlich großgeschrieben werden. Wenn wir darauf nicht achten, funktioniert das leider nicht. Jetzt, wo die Seite sich wieder aufgebaut hat, können wir den Vergleich ziehen. Hier können wir sehen, dass wir das Vertragsende zwar bekommen, allerdings amerikanisch formatiert. Das heißt, wir haben hier die Monatsinformation, hier den Tag und hier das Jahr. Und wie gesagt, einen Standardwert im Hinblick auf eine Uhrzeit, obwohl wir in der Websitespalte nie eine Uhrzeit hinterlegt haben und auch entsprechend nicht konfiguriert haben. Das ist eine DateOnly-Spalte. Logischerweise möchten wir jetzt aus unserer datumsbasierten managed Property – das ist wichtig zu wissen – eine Umformatierung vornehmen. Dementsprechend machen wir das Ganze, wie bereits demonstriert, über unser kleines JavaScript, das wiederum auf die gemanagte Eigenschaft zugreift, die wir hier oben in dem Property Mapping angemeldet haben. Letztlich übergeben wir den Wert aus der Variablen DateWithoutTime an unser Display Template für die Darstellung. Last, not least: Wir speichern das Ganze ab, aktualisieren unsere Page und nun sollte es wieder korrekt dargestellt werden. Ganz genau. Wir bekommen unser deutsch formatiertes Datum hinter unserem Vertragsende.

Office 365: SharePoint-Anwendungsfälle

Sehen Sie, wie SharePoint-Lösungen Schritt für Schritt entstehen. An zwei Beispielen sehen Sie die Umsetzung von der Bedarfsanalyse bis zur funktionstüchtigen Lösung.

5 Std. 46 min (69 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!