PDF-Download
Transcription
PDF-Download
Advanced Visio Services im Alltag: Erstellen Sie ihr eigenes Monitoring-Portal für Netzwerke oder ihr eigenes Prozessportal http://stefass.wordpress.com/2014/01/07/visio-webcast-serie-von-dengrundlagen-zu-advanced-services/ Autor: Datum: Version: Šenaj Lelić – 11.02.2014 1.00.00 Agenda • Ihr Referent: Šenaj Lelić • oneAssist UG (haftungsbeschränkt) • Ausbau von Visio Services mit MashUp API und Visio-Vorlage • Grundlagen von Prozessportalen und Monitoring-Portalen • Was brauche ich dafür in SharePoint? • Welche Grundlagen müssen vorhanden sein? • Das MindMaps-Zuckerl! Šenaj Lelić • Visio-Fan seit 1995 • Visio MVP seit 2000 (also 15 Jahre ;-) ) • Coach und Dozent für Microsoft (.NET, OS, SharePoint, Apps für Office und SharePoint) • Strategischer IT Berater • Tätig bei oneAssist UG, Berlin und München (Visio und SharePoint-Partner) • Konferenzsprecher (SharePoint Conference USA, Microsoft TechED, VSOne, Collaboration Days etc.) oneAssist UG (haftungsbeschränkt) • Ältester Visio-Partner in Deutschland • SharePoint-Partner mit Fokus VisioServices, Prozessportale und Dashboards • Visio Customizing und Custom Development • Lizenzkonsolidierung von Grafiksoftware auf Visio mit MultiConverter • MindMaps for Visio: Mindmapping in Visio und mehr VISIO SERVICES - WIEDERHOLUNG Visio Services • Erweiterung von SharePoint • Implementiert als Dienstanwendung • Dient allein der intelligenten Publikation von Visio-Diagrammen (ggf. mit Datenbindung/ -update) • Ist KEIN Visio-Client im Web • Erlaubt das gesteuerte Publizieren mit Interaktion • In Office 365 UND on-premise verfügbar • Kann Datei(en) in Visio-Dateien aktualisieren VISIO WEB ACCESS WEBPART (VWA)-EINFÜHRUNG Das VWA Webpart – Visio Web Access • Ist die Grundlage interaktiver Dashboards • Kann anprogrammiert werden (API) • Aktualisiert in SharePoint 2013 auch die Datei bzw. wertet sie das ShapeSheet aus • Ist das, was der Anwender von den Visio Services tatsächlich nutzt/anprogrammiert Das VWA-Webpart • Kein Visio-Web-Client, nur Konsumation • Lädt Visio-Dateien und rendert diese – Kein Silverlight nötig • Konfigurierbar: – Datenupdate (mit Zeitspanne) • ACHTUNG: Update ist nicht real-time (!) – Sonstige Funktionen (Öffnen in Visio, Zoom …) Das Visio Web Access Webpart • Standard-Webpart/View für Visio-Dateien – NUR VSDX und VDW (KEIN VSD/VDX) • Komplexer: – Webpart für eigene Seiten in SharePoint – Beliebige Einbettung in komplexe Strukturen – Webpart-Verbindungen zu anderen Datenquellen oder –empfängern VISIO WEB ACCESS WEBPART (VWA)-WEBPART KONFIGURATION VWA Webpart Eigenschaften • Web Drawing Display – Web Drawing URL • Gleiche Farm wie die Page/Seite • VSDX und VDW unterstützt – Definiert rendering style/Funktionalität – Force raster rendering – 2010 Diagramme bevorzugen Silverlight – Automatic Refresh • Systembasierter refresh/Kiosk Dashboard Szenarien – Fit all shapes in view - initiale Ansicht – Startseite - Index – Shape-Daten an verbundene Webparts weiterleiten (LISTE) VWA Webpart Eigenschaften • UI Optionen – – – – – – Refresh anzeigen Open in Visio anzeigen Page Navigation anzeigen Status bar – Zoom Optionen Shape Information Pane anzeigen Standard-Hintergrund anzeigen VWA Webpart Eigenschaften • Web Drawing Interaktivität (= Anwender am Durchführen der Aktionen hindern) – – – – Disable Zoom Disable Pan Disable Hyperlink Disable Selection DEMO 1: DAS VWA WEBPART IN CUSTOM FORM VISIO WEB ACCESS WEBPART (VWA)-WEBPART VERBINDUNGEN Webpart-Verbindungen • 5 Webpart-Verbindungen • 1 V. sendet: (Shapedaten) • 4 V. empfangen: – – – – Dateiname/Blatt Shapes hervorheben/Farbe Filter-Ergebnisse Zentrieren auf Shape • Listen geben Datei, Daten oder Namen der Shapes her • Achtung: über WebOberfläche ist nur je ein Parameter einstellbar • Für zwei Parameter: SharePoint Designer nötig Shapedaten senden an • Sendet die vorkonfigurierten Shapedaten (Liste!) an ein anderes Webpart – Zum Filtern – Als Parameter • Achtung: – Shape-Daten müssen befüllt sein – Shape-Datum-Name(n) muss/müssen in der Webpart-Konfiguration gelistet sein – KEINE Leerzeichen (sichererer) Dateiname und Blattname erhalten von • Liest die zu öffnende Datei aus einem anderen Webpart aus • Liest das zu öffnende Zeichenblatt aus einem anderen Webpart aus • Beide Parameter gleichzeitig sind nur mit SharePoint Designer einstellbar Get Drawing URL and Page Name From • Provider stellt Document URL bereit • Consumer lädt das Diagramm zur Ansicht • Blattname nur mit SharePoint Designer einstellbar DEMO 2: DATENVERBINDUNG FÜR DATEI UND BLATTNAME Hervorzuhebende Shapes erhalten von • Wertet eine einfache Liste aus • Sucht nach Shape-NAMEN (NICHT Text) • Name: zu sehen im Explorer oder ShapeInfo-Panel • Mehrere Namen in einer Item-Zeile möglich – Trennung durch Kommata – KEINE Leerzeichen erlaubt • Farbe und Name: nur SharePoint-Designer Hervorzuhebende Shapes erhalten von • Provider stellt Liste von Shape-Name(n) bereit • Consumer hebt betreffende Shapes hervor+ Farbe (Farbe nur über SP Designer) Shape Namen Spalte • Komma getrennte Liste • Case Sensitive – VORSICHT mit Leerzeichen/ Spaces Shape Namen: the hard way Shape Namen: the easy way • Shape Reports – Daten mit Shapes verbinden – Daten in ein Excel Arbeitsblatt exportieren – Excel Arbeitsblatt in SharePoint Liste importieren Highlight Color Parameter • HTML Color Namen – Red, Blue, … • Hex Color Werte – #8432FF = ? • Online Color Ressourcen – http://www.colorschemer.com/online.html SharePoint Designer Configuration • Alle Webpart-Verbindungen können mit dem SharePoint Designer 2013 konfiguriert werden – Multiple Parameter configuration DEMO 3: DATENVERBINDUNG FÜR SHAPENAME UND FARBE MIT SPD Filter Ergebnisse erhalten von • Provider stellt Shape-Daten bereit (VWA) • Consumer hebt Shapes mit passenden Werten hervor Anzuzeigendes Shape erhalten von: • Liste gibt Namen von Shape an • VWA Webpart zentriert auf diesem Shape • Parameter 1: Name des Shapes (z.B. „Sheet.10“) • Parameter 2: Zoom-Faktor • Beide Parameter gleichzeitig nur über SharePoint Designer einstellbar Web Part Verbindungen – Limits • Webparts können viele Verbindungen haben aber nur eine Verbindung per Verbindungsdefinition Get Drawing URL and Page Name from + Send Shape Data To -> Info Path Form Web Part + Send Shape Data To -> Excel Web Part • Erweiterte Szenarien mit dem Mash-up API Probleme und Schachstellen • Webpart-Verbindungen erzwingen das Nachladen der Seite (flackern) • Das VWA Webpart ist noch kein „vollständiger“ Konsumenten-Client • Es fehlen ein paar zentrale Funktionen für Endanwender Das MashUp API • Visio Services besteht nicht nur aus dem VWA Webpart • Dieses Webpart hat auch eine (JavaScript-) Programmierschnittstelle • Diese Schnittstelle ist die Grundlage aller interaktiven Lösungen Chrome-less embedding User Interactivity Tips Mouse / Keyboard Action Click on a shape Shape is selected. Shape data is displayed in the Shape Information Pane. Ctrl + Click on a shape Selects the shape and navigates the default hyperlink. Click + Drag Pans the view in the direction of the drag. Tip for not navigating hyperlinks. Scroll Wheel – Up Zooms in on the current view, in 10% increments. Scroll Wheel – Down Zooms out on the current view, in 10% increments. + key Zooms in on the current view, in 10% increments. - key Zooms out on the current view, in 10% increments. Directional arrow keys Pans the view in the direction of the key pressed. Tab Sets the focus on the next element in the tab order, including shapes and UI elements. Shift + Tab Sets the focus on the previous element in the tab order, including shapes and UI elements. JSOM for VGS Use the JSOM to dynamically update a Content Editor web part as you select shapes on a Visio diagram with no server post back. • Was ist es? – Ein JavaScript basiertes Objektmodel zur Kommunikation mit dem VWA Webpart • Was kann man damit machen? – Auslesen von Shapedaten, Hyperlinks, Kommentaren – Shapes selektieren – Highlights und Overlays hinzufügen (HTML + HTML5) – Auf Maus-Ereignisse reagieren – Pan & Zoom-Einstellungen ändern – Zu Seiten und Diagrammen navigieren (drill down) Vorteile der Mashup API • Die API ist nicht auf die Kommunikation mit einer bestimmten Anzahl von Webpart auf einer Seite beschränkt – Aktionen und Daten können eins oder mehrere Webparts betreffen – Sogar Inhalte ohne Webparts, wie Silverlight, HTML, und ASPX-Controls • Die API ist nicht auf Szenarien beschränkt, die sich mit Webpart-Verbindungen befassen • Get Drawing URL and Page Name + Get Shape to View From = nicht unterstützt • Die API ist clientseitig und benötigt keine Seitenaktualisierungen -> Web 2.0 experience Typische Anwendungsfälle der API • Events im Diagramm triggern Veränderungen auf der Seite OnClick() { for (var j = 0; j < data.length; j++) { if (data[j].label == "Step") { document.getElementById('StepData').src= "http://localhost:8080/details.aspx?ID=" + "'" + data[j].value + "'"; return; } }} // NOTE: this is pseudo code. Typische Anwendungsfälle der API • Events auf der Seite triggern Veränderungen im Diagramm OnClick() { shapes = page1.getShapes(); foreach shape in shapes { if (shape.data[0].value = TextBox.value) { shape.addHighlight(); } } } // NOTE: this is pseudo code. Demo VWA JavaScript Object Model VWA Control getActivePage() setActivePage() diagramComplete Page getShapes() shapeMouseEnter Shapes shapeMouseLeave selectionChanged getItemById() getItemAtIndex() diagramError Shape Shape getSelectedShape() setSelectedShape() getShapeData() getHyperlinks() Getting started • • • • Eine Textdatei mit dem gewünschten JavaScript/HTML anlegen Die Skript-Datei in einer Dokumentbibliothek oder an einem anderen Ort in SharePoint speichern Content Editor Webpart hinzufügen und zu der Skript-Datei über ihre URL verlinken Visio Web Access Webpart hinzufügen und zum Visio Diagramm verlinken Webpart-Seite Dokumentbibliothek Anbinden an add_load() • Wenn die Seite geladen ist, sollten Sie Ihre Methode aufrufen, die Ihnen die Instanz des VWA-Webparts liefert • Die Referenz auf die Instanz wird benötigt, um Ereignisbehandlungsroutinen hinzuzufügen und um auf Objekte innerhalb des Diagramms zuzugreifen • Alternative Lade-Methoden, die nicht mit dem VWA-Webpart funktionieren: – window.attachEvent("onload", vwaOnPageLoad); – window.addEventListener("DOMContentLoaded", vwaOnPageLoad, false); – $(document).ready(vwaOnPageLoad); // jQuery An die VWA Webpart-Instanz gelangen web part ID Auffinden der VWA WebpartInstanz-Id • Rechtsklick “Quellcode anzeigen” auf der Webpart-Seite • Suchen nach “class=“VisioWebAccess”” • <div … id=“WebPartWPQ#” oder mit Hilfe von JavaScript… Das “diagramcomplete”-Event behandeln • Ereignisbehandlungsroutinen mit dem Event verbinden Event name Function callback Das “selection changed”-Event behandeln • Zusätzliche Ereignisbehandlungsroutinen können hinzugefügt werden, sobald das Diagramm gerendert wurde • „removeHandler“ immer vor „addHandler“ aufrufen Ab diesem Zeitpunkt ist das JSOM initialisiert und das spezifizierte Diagramm im VWA-Webpart gerendet Das “selection changed”-Event behandeln function onShapeSelectionChanged(source, shapeId) { var vwaPage = vwaControl.getActivePage(); var vwaShapes = vwaPage.getShapes(); var vwaShape = vwaShapes.getItemById(shapeId); var data = vwaShape.getShapeData(); for (var j = 0; j < data.length; j++) { if (data[j].label == "Step") { alert(data[j].value); } } } Auf Shapedaten zugreifen • VWAShape.getShapeData() – gibt ein Array von Objekten zurück, die den Shape Data Items eines Shapes entsprechen – data[4].label; – data[4].value; // .formattedValue Highlights verwalten • Mit Highlights kann ein Shape hervorgehoben werden (Dabei wird ein Rechteck um die Shapebegrenzungen gezeichnet) – Shape-Methoden: • addHighlight – http://msdn.microsoft.com/en-us/library/ff394531.aspx • removeHighlight – http://msdn.microsoft.com/en-us/library/ff394510.aspx – Achtung: Jedes Shape kann maximal ein Highlight haben! Pixel width nextShape.addHighlight(4, "red"); Color, Hex or Name Overlays verwalten • Mit Overlays können eigene Highlights und Grafiken definiert werden – Shape-Methoden • addOverlay - http://msdn.microsoft.com/en-us/library/ff394546.aspx • removeOverlay - http://msdn.microsoft.com/en-us/library/ff394409.aspx – pro Shape sind Mehrere Overlays erlaubt – Overlays werden mit HTML definiert • Selbst HTML5-Elements wie Canvas werden unterstützt! Overlays verwalten • Was ist mit älteren VDW-Diagrammen? – Sorgt dafür, dass HTML-Overlays mit VSDXund VDW-Dateien im selben Webpart funktionieren • XAML kann (wenn nötigt) mit VDW benutzt werden – Aber einige Nutzer haben unter Umständen kein Silverlight und sehen die VGS nur als PNG und HTML Shape-Daten im Overlay • Anzeige eines Overlays nach Auswahl eines Shapes (shapeselectionchanged) function onDiagramComplete() { try { var vwaPage = _vwaControl.getActivePage(); _vwaShapes = vwaPage.getShapes(); _vwaControl.addHandler('shapeselectionchanged', onShapeSelectionChanged); } catch (err) { alert(err); } } Shape-Daten im Overlay - 2 • Shape-Daten werden im Overlay dargestellt function onShapeSelectionChanged(source, args) { try { if (args != null && args != Sys.EventArgs.Empty) { if (typeof (_vwaShape) != 'undefined') { _vwaShape.removeOverlay('shapeDataTable'); } _vwaShape = _vwaShapes.getItemById(args); // Get the value of the display mode for the Visio Web Access Web Part. var displayMode = _vwaControl.getDisplayMode(); // Test to see what the current display mode is. if (displayMode == 1) { // The display mode is Silverlight; add Silverlight graphic overlays. } else { // The display mode is raster format; add an HTML overlay. var shapeData = _vwaShape.getShapeData(); if (shapeData.length > 0) { _vwaShape.addOverlay( 'shapeDataTable', getShapeDataTable(shapeData), 1, 0, 160, 140); } } } } catch (err) { alert(err); } } Shape-Daten im Overlay - 3 • Formatierung des Overlays function getShapeDataTable(shapeData) { var htmlBuilder = '<div style="width: 150px; height: 180px; padding: 5px; overflow: hidden;">'; htmlBuilder += '<div style="background-color: #fff; border: solid 1px #c6c6c6; box-shadow: 0 0 4px 1px rgba(0,0,0,.2);"><div style="margin: 12px; overflow: auto; scrollbar-base-color: white; scrollbararrow-scolor: #777; scrollbar-lightshadow-color: #ababab; scrollbar-highlight-color: #ababab; scrollbardarkshadow-color: white; scrollbar-track-color: white;">' htmlBuilder += '<table style="font-size: 8pt;">'; // htmlBuilder += '<tr><th style="font-weight: bold; border-right: solid 1px #e1e1e1; padding: 4px; text-align: left;">Beschriftung</th><th style="font-weight: bold; padding: 4px; text-align: left;">Wert</th></tr>'; for (var i = 0; i < shapeData.length; i++) { htmlBuilder += '<tr><td style="border-top: solid 1px #e1e1e1; border-right: solid 1px #e1e1e1; padding: 4px;">' + shapeData[i].label + '</td><td style="border-top: solid 1px #e1e1e1; padding: 4px;">' + shapeData[i].formattedValue + "</td></tr>"; } htmlBuilder += '</table></div></div></div>'; return htmlBuilder; } Demo Weitere Events behandeln • Weitere VWA-Events – http://msdn.microsoft.com/enus/library/ff394574.aspx – Folgt dem Modell des Excel Web Access (EWA) Event VwaControl Methods Description Diagram Complete addHandler() / removeHandler() Triggered when the diagram is loaded, refreshed, or changed Diagram Error addHandler() / removeHandler() Occurs when a request to render the diagram fails Shape Mouse Enter addHandler() / removeHandler() Triggered when the mouse pointer is moved into the bounding box of the shape Shape Mouse Leave addHandler() / removeHandler() Triggered when the mouse pointer is moved out of the bounding box of the shape Shape Selection Changed addHandler() / removeHandler() Occurs when the shape that is currently selected on the page changes Deployment • Von Hand – VDW-Dateien hochladen – JS/HTML-Dateien für die Content Editor Webparts hochladen • Oder den Quelltext direct in HTML Form Webparts kopieren • Site Template – Pfade müssen für spezifische VDW-Dateien geupdated werden damit der VWA Webpart Drawing URL stimmt • WSP – Teil des SharePoint solution package • Leere SharePoint Projekte oder ein Visual Web Part Debugging • Debuggen der Skripte mit Hilfe der IE10 Developer Tools – Im IE die F12-Taste drücken, um die Developer Tools zu öffnen – Auf den Skript-Tab klicken, um zu den Debugging-Funktionen zu gelangen – Den Quelltext durchsuchen, Haltepunkte setzen und die Seite neuladen, um mit dem clientseitigen Debuggen zu beginnen Skript-Logging mit den IE Developer Tools • function tryConsole() { if (typeof console != "undefined") { console.log("hello world"); } } • http://blogs.msdn.com/b/cdnwebdevs/archive/201 1/05/26/console-log-say-goodbye-to-javascriptalerts-for-debugging.aspx Skript-Logging in ein Content Editor Webpart • Basic Script Logging Funktionen zum Dashboard hinzufügen • Grundlegende Diagnose Informationen sammeln • Loggen in ein Content Editor oder html Forms web part • An/Aus schalten Content Editor Web Part Visio Web Access Web Part Zusammenfassend… • JavaScript API – erlaubt entwicklern das Bauen von Rich Dashboard Applications mit Hilfe von JavaScript, HTML, ASP, usw. – Zusätzlich lassen sich weitere Funktionalitäten mit HTML- und SilverlightOverlays bereitstellen • Event dieser Overlays können zusätzliche Methoden aufrufen • Incorporate VWA scenarios into other SharePoint projects – Site Pages – Robust Dashboards – Visual Web Parts • Und so hat es das Entwicklungsteam selbst gemacht: – C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\VisioWebAccess\workflowstatus.js Was brauche ich im SharePoiint • Fertige mit Shapes verbundene VisioDiagramme • Datenquellen die AUS SICHT DES SHAREPOINT sichtbar sind – Idealerweise: Anbindung via Business Connectivity Services (zur Datenabschottung) – Sicherheitskapselung des Datenzugriffs – nur VGS/Visio Services greift zu Welche Grundlagen müssen vorhanden sein ? • SharePoint SERVER Enterprise • Office 365 Plan • Visio 2013 (empfohlen, aber 2010 geht auch) • Dateiformat VDW oder VSDX Das MindMaps „Zuckerl“ bis 31.03.2014 • MindMaps für Visio Standard: Mindmapping in Visio wie es sein sollte – Kostenfreier Download von der oneAssist Website (bis 31.03.2014) – http://www.oneassist.de/downloads • MindMaps Pro mit SharePoint Import und Export (Dokumentation und Erstellung von Site-Strukturen) – Einführungsaktion bis 31.03.2014: 69,00 € Dieses Dokument ist urheberrechtlich geschützt. Jede Verwendung, Weitergabe oder Verwertung, auch in Teilen, ohne die Zustimmung von oneAssist UG (haftungsbeschränkt) ist unzulässig. Die Inhalte dieses Dokuments sind vertraulich zu behandeln. Die Weitergabe von Informationen oder Inhalten an Dritte ist unzulässig.