Erstellen eines benutzerdefinierten Datenanbieters mit Visio Services
Letzte Änderung: Dienstag, 3. Dezember 2013
Gilt für: SharePoint Server 2010
Inhalt dieses Artikels
Benutzerdefinierte Datenanbieter
Visio Services-API
Erstellen eines benutzerdefinierten Datenanbieters
Erstellen der Beispieldateien
Erstellen des benutzerdefinierten Datenanbieters und Bereitstellen in SharePoint Server
Erstellen und Kompilieren der Visual Studio 2010-Lösung
Erstellen und Ausführen des PowerShell-Skripts
Hinzufügen eines neuen vertrauenswürdigen Datenanbieters zum Visio-Grafikdienst
Testen des benutzerdefinierten Beispieldatenanbieters
Mit Visio Services können Microsoft Visio 2010-Zeichnungen als VDW-Dateien im Visio Web Access-Webpart in Microsoft SharePoint Server 2010 veröffentlicht werden. Sie können die Visio Services-Klassenbibliothek verwenden, um benutzerdefinierte Visio Services-Datenmodule oder benutzerdefinierte Datenanbieter zu erstellen, mit denen Sie programmgesteuert Daten aktualisieren können, die von benutzerdefinierten Datenquellen in auf einer Microsoft SharePoint Server 2010-Website gehosteten Visio 2010-Webzeichnungen abgeleitet werden.
In diesem Thema werden die wichtigsten Klassen und Methoden in der Visio Services-Klassenbibliothek beschrieben. Außerdem erfahren Sie, wie Sie ein Beispiel für einen benutzerdefinierten Datenanbieter erstellen, von dem Daten aus einer XML-Datei verwendet werden, und wie Sie ein Beispiel für eine Visio-VDW-Datei erstellen, die eine Verbindung mit den Daten enthält, die vom benutzerdefinierten Datenanbieter aktualisiert werden können.
Benutzerdefinierte Datenanbieter
In Visio-Zeichnungen können Daten von verschiedenen Standarddatenanbietern verwendet werden, beispielsweise Microsoft Excel-Dateien, SharePoint-Listen, SQL-Datenbanken und viele andere ODBC-kompatible Datenquellen. Diese Funktionalität gilt auch für im Visio-Client angezeigte Zeichnungen und für Visio-Zeichnungen (VDW-Dateien), die im Visio Web Access-Webpart auf einer SharePoint-Seite angezeigt werden. In Situationen, in denen Daten einer Zeichnung von einer anderen Datenquelle abgeleitet werden sollen, bei der es sich nicht um eine der vorstehenden Datenquellen handelt, können Sie einen benutzerdefinierten Datenanbieter erstellen. Mit dem benutzerdefinierten Datenanbieter kann eine Verbindung mit Daten aus XML-Dateien wie im Beispiel im Abschnitt "Erstellen eines benutzerdefinierten Datenanbieters" in diesem Artikel sowie aus Webdiensten, OLAP-Cubes und vielen anderen Datenquellen hergestellt werden. Sie müssen Code schreiben, um einen benutzerdefinierten Datenanbieter zu erstellen, den benutzerdefinierten Datenanbieter auf einem Server installieren, auf dem SharePoint Server 2010 installiert ist und Visio Services ausgeführt wird, und dann den benutzerdefinierten Datenanbieter der Liste der vertrauenswürdigen Datenanbieter für Visio Services hinzufügen.
Visio Services-API
Die Visio Services-API besteht aus zwei Klassen und den zugehörigen Methoden: der abstrakten AddonDataHandler-Basisklasse und der AddonDataHandlerException-Klasse. Diese Klassen bilden den Microsoft.Office.Visio.Server-Namespace und werden in der Datei Microsoft.Office.Visio.Server.dll verteilt. Erstellen Sie im Lösungscode beispielsweise eine Klasse mit dem Namen VisioCustomDataProvider, die von der AddonDataHandler-Basisklasse und der IAsyncResult-Schnittstelle erbt und diese implementiert. Die in diesem Artikel beschriebene Datei VisioCustomDataProvider.cs enthält ein Beispiel für die Implementierung dieser Schnittstelle.
AddonDataHandler-Basisklasse
Benutzerdefinierte Datenmodule werden verwendet, um Datenquellen abzufragen, für die auf dem Server keine Unterstützung integriert ist. Ein benutzerdefiniertes Datenmodul wird durch eine öffentliche Klasse dargestellt, die von AddonDataHandler erbt und die zugehörigen abstrakten Member sowie die IAsyncResult-Schnittstelle implementiert. Die in diesem Artikel beschriebene Beispiellösung enthält ein Beispiel für die Implementierung dieser Member.
Tabelle 1. Member der AddonDataHandler-Basisklasse
Membername |
Beschreibung |
||
---|---|---|---|
Wird von Visio Services aufgerufen, um mit dem Abrufen von Daten aus der vom benutzerdefinierten Datenanbieter angegebenen Datenquelle zu beginnen. Wenn Sie diese Methode implementieren, entwerfen Sie die Methode so, dass die Rückgabe so schnell wie möglich erfolgt, da benutzerdefinierte Datenanbieter asynchron ausgeführt werden sollen. |
|||
EndGetData(IAsyncResult)-Methode |
Wird von Visio Services aufgerufen, wenn dieser benutzerdefinierte Datenanbieter mit dem Abrufen der Daten fertig ist. Mit dieser Methode müssen Visio Services die Daten zurückgegeben werden, die vom benutzerdefinierten Datenanbieter in Form eines ADO.NET-DataSet-Objekts abgerufen wurden. |
||
Cancel()-Methode |
Wird von Visio Services aufgerufen, um die asynchrone Verarbeitung der Daten zu beenden, wenn ein Fehler erkannt wird oder wenn die maximal vorgesehene Zeit für das Abrufen der Daten verstrichen ist und der Datenabruf nicht vollständig ist. |
||
Data-Eigenschaft |
Gibt das ADO.NET-DataSet-Objekt an, das vom benutzerdefinierten Datenanbieter mit aktualisierten Daten gefüllt und an Visio Services zurückgegeben werden muss. |
||
QueryString-Eigenschaft |
Gibt die Befehlszeichenfolge an, die dem Visio-DataRecordset-Objekt zugeordnet ist, das vom benutzerdefinierten Datenanbieter aktualisiert wird. Die Zeichenfolge wird von Visio Services bei der Aktualisierung der Zeichnung außerhalb der Webzeichnung (VDW-Datei) analysiert, und der entsprechende Wert wird dieser Eigenschaft zugewiesen. Die Zeichenfolge ist eine durch Semikolons getrennte Liste von Schlüssel-Wert-Paaren. Jedes Paar enthält den Schlüssel und den Wert, getrennt durch ein Gleichzeichen. Das Format der Zeichenfolge sollte wie folgt aussehen: "DataModule=VollständigerKlassenname, EinfacherAssemblyname; Schlüssel1=Wert1;Schlüssel2=Wert2;…", wobei VollständigerKlassenname dem Namen der Klasse einschließlich des Namespace und EinfacherAssemblyname dem Namen der Assembly ohne zusätzliche Identitätsinformationen entspricht. Als Entwickler können Sie den Rest der Zeichenfolge (die Schlüssel-Wert-Paars) nach Bedarf verwenden. Weitere Informationen zu dieser Zeichenfolge finden Sie im Abschnitt "Angeben des auf dem Server zu verwendenden Datenmoduls in der VDW-Datei" in diesem Artikel. Der Wert dieser Eigenschaft entspricht dem der CommandString-Eigenschaft des zugeordneten Visio-DataRecordset-Objekts.
|
||
ConnectionString-Eigenschaft |
Gibt die Befehlszeichenfolge an, die dem Visio-DataRecordset-Objekt zugeordnet ist, das vom benutzerdefinierten Datenanbieter aktualisiert wird. Die Zeichenfolge wird von Visio Services bei der Aktualisierung der Zeichnung außerhalb der Webzeichnung (VDW-Datei) analysiert, und der entsprechende Wert wird dieser Eigenschaft zugewiesen. Die Zeichenfolge ist eine durch Semikolons getrennte Liste von Schlüssel-Wert-Paaren. Jedes Paar enthält den Schlüssel und den Wert, getrennt durch ein Gleichzeichen. Der Wert dieser Eigenschaft entspricht dem der ConnectionString-Eigenschaft des zugeordneten Visio-DataRecordset-Objekts. |
||
Error-Eigenschaft |
Gibt ein Ausnahmeobjekt zurück, mit dem ein Fehler beschrieben wird, der auftritt, wenn die Daten aus der zugeordneten externen Datenquelle von diesem benutzerdefinierten Datenanbieter nicht abgerufen wurden. Diese Eigenschaft kann verwendet werden, um Informationen zu einem Fehler bei der asynchronen Verarbeitung an den Aufrufer zu verbreiten. Wenn der Typ der Ausnahme AddonDataHandlerException entspricht, wird dem Benutzer die Ausnahmemeldung angezeigt, anderenfalls wird dem Benutzer eine generische Meldung angezeigt. |
AddonDataHandlerException-Klasse
Die AddonDataHandlerException-Basisklasse stellt eine Ausnahme dar, die von Visio Services ausgelöst werden kann, um dem Benutzer eine Fehlermeldung zu kommunizieren.
Sie können die Error-Eigenschaft der AddonDataHandler-Klasse auf eine Ausnahme eines beliebigen Typs festlegen. Wenn der Typ der Ausnahme AddonDataHandlerException entspricht, wird dem Benutzer die Fehlermeldung mit der Beschreibung der Ausnahme angezeigt, die aus dem Wert des message-Parameters besteht, der dem Konstruktor des AddonDataHandlerException-Objekts übergeben wird; anderenfalls wird eine generische Fehlermeldung angezeigt.
Erstellen eines benutzerdefinierten Datenanbieters
Führen Sie diese allgemeinen Schritte aus, um einen benutzerdefinierten Datenanbieter zu erstellen. Die einzelnen Schritte werden weiter unten in diesem Artikel (ab dem nächsten Abschnitt, "Erstellen der Beispieldateien") ausführlicher beschrieben.
So erstellen Sie einen benutzerdefinierten Datenanbieter
Erstellen Sie die Beispieldateien, und stellen Sie diese auf dem Computer mit SharePoint Server 2010 bereit.
Zu den Beispieldateien gehört die XML-Datei zum Speichern der Daten auf dem Server und die Visio 2010-Webzeichnungsdatei (VDW), die Sie auf einer SharePoint-Website anzeigen möchten. In dieser Zeichnung werden die Daten angezeigt, die vom benutzerdefinierten Datenanbieter aus einer Datenquelle abgerufen wurden, die nicht systeminhärent von Visio 2010 unterstützt wird.
Erstellen und kompilieren Sie auf dem Computer mit SharePoint Server 2010 eine Visual Studio 2010-Lösung, mit der dieVisio Services-API für die Erstellung des benutzerdefinierten Datenanbieters implementiert wird.
Verwenden Sie ein Windows PowerShell-Skript oder eine andere Methode, um den benutzerdefinierten Datenanbieter auf dem Computer mit SharePoint Server 2010 bereitzustellen.
Fügen Sie in der SharePoint-Zentraladministration den benutzerdefinierten Datenanbieter der Liste der vertrauenswürdigen Datenquellen für den Visio-Grafikdienst hinzu.
Testen Sie den benutzerdefinierten Beispieldatenanbieter, indem Sie die Visio-Zeichnung in einem Visio Web Access-Webpart auf dem Server rendern.
Wenn Sie jetzt die Daten in der Datenquelle ändern und die Visio-Zeichnung aktualisieren, wird die aktuelle Webzeichnungsseite mit den Daten vom Server aktualisiert, die letztendlich die von Ihnen vorgenommenen Änderungen widerspiegeln.
Hinweis
Aufgrund der Art der Zwischenspeicherung der Daten auf dem Server werden beim Aktualisieren der Zeichnung nicht immer sofort die in der Datenquelle vorgenommenen Änderungen widergespiegelt.
Erstellen der Beispieldateien
Für die Veröffentlichung auf dem Computer mit SharePoint Server müssen Sie eine XML-Datendatei und eine Visio-VDW-Beispieldatei erstellen. In der VDW-Beispieldatei werden die Daten angezeigt, die Sie anfangs mithilfe von VBA-Code (Visual Basic für Applikationen) in die Zeichnung importiert haben. Wenn die Zeichnung im Visio Web Access-Webpart gerendert wurde, können Sie die Daten in der XML-Datei, die anfangs mit denen in der Zeichnung identisch sind, ändern und dann die Zeichnung aktualisieren, um die geänderten Daten anzuzeigen.
In Abbildung 1 wird gezeigt, wie die fertig gestellte Visio-Zeichnung aussieht.
Abbildung 1. Fertig gestellte Visio-Zeichnung
Erstellen der XML-Datendatei für die Bereitstellung auf dem Server
Zum Erstellen der XML-Datendatei für die Bereitstellung auf dem Server führen Sie die folgenden Schritte aus.
So erstellen Sie die XML-Dateidatei für die Bereitstellung auf dem Server
Erstellen Sie im Editor oder in einem anderen Text-Editor eine Datei.
Fügen Sie den folgenden Code in die Datei ein.
<?xml version="1.0" standalone="yes"?> <DemoDataDataSet> <xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="DemoDataDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="SuperMarketData"> <xs:complexType> <xs:sequence> <xs:element name="Name" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="IP" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Status" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="50" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <SuperMarketData> <Name>sql-sales-01</Name> <IP>10.0.5.1</IP> <Status>Online</Status> </SuperMarketData> <SuperMarketData> <Name>sql-sales-02</Name> <IP>10.0.5.2</IP> <Status>Online</Status> </SuperMarketData> <SuperMarketData> <Name>filestore-sales-01</Name> <IP>10.0.5.3</IP> <Status>Online</Status> </SuperMarketData> <SuperMarketData> <Name>webserver-01</Name> <IP>10.0.5.0</IP> <Status>Online</Status> </SuperMarketData> </DemoDataDataSet>
Geben Sie der Datei den Namen VisioCustomData.xml, und speichern Sie diese dann in einem Speicherort, auf den Sie leicht zugreifen können.
Im oben gezeigten XML-Code sind die tatsächlichen Daten, die angezeigt werden sollen, in den <SuperMarketData>-Tags am Ende der Datei enthalten (siehe Tabelle 2).
Tabelle 2. In der Visio-Datei anzuzeigende Daten
Computername |
IP-Adresse |
Status |
---|---|---|
sql-sales-01 |
10.0.5.1 |
Online |
sql-sales-02 |
10.0.5.2 |
Online |
filestore-sales-01 |
10.0.5.3 |
Offline |
webserver-01 |
10.0.5.0 |
Online |
Beim Erstellen des Visio 2010-Diagramms importieren Sie die Daten mit dem im nächsten Abschnitt gezeigten VBA-Code direkt in das Diagramm, um die Daten festzulegen, die anfangs angezeigt werden sollen. Wenn Sie dann das Diagramm in SharePoint Server 2010 angezeigt haben, können Sie die Daten in der XML-Datei auf dem Server ändern und die gerenderte Zeichnung mit den Daten vom Server aktualisieren.
Erstellen der Visio-VDW-Beispieldatei
Zuerst verwenden Sie eine Kombination aus der Visio-Benutzeroberfläche und VBA-Code im Visual Basic-Editor in Visio, um die Visio-Zeichnung zum Anzeigen der Daten zu erstellen. Als Nächstes importieren Sie die Daten mit VBA in einen Datensatz in Visio und verknüpfen dann die Daten in diesem Datensatz mit Shapes auf der Zeichnungsseite. Außerdem weisen Sie die Befehlszeichenfolge zu, mit der die Verbindung zwischen der bereitgestellten Zeichnung und dem benutzerdefinierten Datenanbieter auf dem Server mit dem neu erstellten Datensatz aktiviert wird. Schließlich passen Sie über die Visio-Benutzeroberfläche die Datengrafiken an, in denen die den einzelnen Shapes zugeordneten Formen angezeigt werden.
Im VBA-Code im ImportData-Verfahren wird die DataRecordset.AddFromXML-Methode verwendet, um die Zeichnung durch Ausführen von Seeding mit Daten zu füllen. Wenn Sie diese Methode in eigenen Projekten verwenden, muss die auf dem Server bereitgestellte XML-Datei die gleichen Daten enthalten und die gleiche Datenstruktur aufweisen wie die Daten, die Sie mit VBA in die Zeichnung importieren: das heißt, die Anzahl der Spalten, die Anzahl der Zeilen und die Datentypen der einzelnen Spalten müssen gleich sein.
So erstellen Sie die Visio-VDW-Beispieldatei
Erstellen Sie in Visio 2010 eine leere Zeichnung. Klicken Sie auf Datei, und klicken Sie dann auf Neu. Klicken Sie unter Weitere Möglichkeiten für einen Anfang auf Leere Zeichnung, und klicken Sie dann auf Erstellen.
Speichern Sie die Zeichnung als VDW-Datei. Klicken Sie auf Datei, und klicken Sie dann auf Speichern. Wechseln Sie zu dem Speicherort, in dem Sie die Datei speichern möchten. Geben Sie SampleDiagram als Dateinamen ein. Klicken Sie in der Liste Dateityp auf Webzeichnung (*.vdw), und klicken Sie dann auf Speichern.
Drücken Sie ALT+F11, um den Visual Basic-Editor zu öffnen.
Doppelklicken Sie im Bereich Projektexplorer auf das Projekt ThisDocument(SampleDiagram).
Fügen Sie den folgenden Code in den Codebereich ein.
Hinweis
Mit dem folgenden Code werden Schablonen mit US-amerikanischen Einheiten geöffnet. Wenn Sie Schablonen mit metrischen Einheiten verwenden möchten, ändern Sie die Schablonennamen in COMPS_M.VSS, NETLOC_M.VSS bzw. SERVER_M.VSS.
Sub ChangeOrientationAndOpenStencils() 'Enable diagram services. Dim DiagramServices As Integer DiagramServices = ActiveDocument.DiagramServicesEnabled ActiveDocument.DiagramServicesEnabled = visServiceVersion140 Application.ActiveWindow.ViewFit = visFitPage Application.ActiveWindow.Page.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageWidth).FormulaU = "11 in" Application.ActiveWindow.Page.PageSheet.CellsSRC(visSectionObject, visRowPage, visPageHeight).FormulaU = "8.5 in" Application.ActiveWindow.Page.PageSheet.CellsSRC(visSectionObject, visRowPrintProperties, visPrintPropertiesPageOrientation).FormulaForceU = "2" Application.EndUndoScope UndoScopeID1, True Application.Documents.OpenEx "server_u.vss", visOpenRO + visOpenDocked Application.Documents.OpenEx "netloc_u.vss", visOpenRO + visOpenDocked Application.Documents.OpenEx "comps_u.vss", visOpenRO + visOpenDocked 'Restore diagram services ActiveDocument.DiagramServicesEnabled = DiagramServices End Sub Sub DropAndConnectShapes() Dim DiagramServices As Integer Dim vsoShapeServer1 As Shape Dim vsoShapeServer2 As Shape Dim vsoShapeServer3 As Shape Dim vsoShapeWebServer As Shape Dim vsoShapeCloud As Shape Dim vsoShapePC As Shape Dim vsoSelection As Selection 'Enable diagram services. DiagramServices = ActiveDocument.DiagramServicesEnabled ActiveDocument.DiagramServicesEnabled = visServiceVersion140 Set vsoShapePC = Application.ActiveWindow.Page.Drop(Application.Documents.Item("COMPS_U.VSS").Masters.ItemU("PC"), 10#, 4.5) Set vsoShapeCloud = Application.ActiveWindow.Page.Drop(Application.Documents.Item("NETLOC_U.VSS").Masters.ItemU("Cloud"), 8#, 4.5) vsoShapeCloud.AutoConnect vsoShapePC, visAutoConnectDirRight Set vsoShapeWebServer = Application.ActiveWindow.Page.Drop(Application.Documents.Item("SERVER_U.VSS").Masters.ItemU("Web Server"), 6#, 4.5) vsoShapeWebServer.AutoConnect vsoShapeCloud, visAutoConnectDirRight Set vsoShapeServer1 = Application.ActiveWindow.Page.Drop(Application.Documents.Item("SERVER_U.VSS").Masters.ItemU("Server"), 2#, 2) vsoShapeServer1.AutoConnect vsoShapeWebServer, visAutoConnectDirRight Set vsoShapeServer2 = Application.ActiveWindow.Page.Drop(Application.Documents.Item("SERVER_U.VSS").Masters.ItemU("Server"), 2#, 4.5) vsoShapeServer2.AutoConnect vsoShapeWebServer, visAutoConnectDirRight Set vsoShapeServer3 = Application.ActiveWindow.Page.Drop(Application.Documents.Item("SERVER_U.VSS").Masters.ItemU("Server"), 2#, 7) vsoShapeServer3.AutoConnect vsoShapeWebServer, visAutoConnectDirRight ActiveWindow.DeselectAll ActiveWindow.Select vsoShapeWebServer, visSelect Application.ActiveWindow.Selection.Move 1.5, 0# 'Restore diagram services. ActiveDocument.DiagramServicesEnabled = DiagramServices End Sub Sub ImportData() 'Enable diagram services Dim DiagramServices As Integer DiagramServices = ActiveDocument.DiagramServicesEnabled ActiveDocument.DiagramServicesEnabled = visServiceVersion140 Application.ActiveWindow.Windows.ItemFromID(visWinIDExternalData).Visible = True Dim strXML As String Dim strXML1 As String Dim strXML2 As String Dim strName As String Dim vsoDataRecordset As Visio.DataRecordset strName = "Server Data" strXML1 = "<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'" + Chr(10) _ & "xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'" + Chr(10) _ & "xmlns:rs='urn:schemas-microsoft-com:rowset'" + Chr(10) _ & "xmlns:z='#RowsetSchema'><s:Schema id='RowsetSchema'>" + Chr(10) _ & "<s:ElementType name='row' content='eltOnly' rs:updatable='true'>" + Chr(10) _ & "<s:AttributeType name='c0' rs:name='_Visio_RowID_' rs:number='1'" + Chr(10) _ & "rs:nullable='true' rs:maydefer='true' rs:write='true'>" + Chr(10) _ & "<s:datatype dt:type='int' dt:maxLength='4' rs:precision='0'" + Chr(10) _ & "rs:fixedlength='true'/></s:AttributeType>" + Chr(10) _ & "<s:AttributeType name='Name' rs:number='2' rs:nullable='true'" + Chr(10) _ & "rs:maydefer='true' rs:write='true'>" + Chr(10) _ & "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _ & "</s:AttributeType>" + Chr(10) _ & "<s:AttributeType name='IP' rs:number='3' rs:nullable='true'" + Chr(10) _ & "rs:maydefer='true' rs:write='true'>" + Chr(10) _ & "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _ & "</s:AttributeType>" strXML2 = " <s:AttributeType name='Status' rs:number='4' rs:nullable='true'" + Chr(10) _ & "rs:maydefer='true' rs:write='true'>" + Chr(10) _ & "<s:datatype dt:type='string' dt:maxLength='255' rs:precision='0'/>" + Chr(10) _ & "</s:AttributeType>" + Chr(10) _ & "<s:extends type='rs:rowbase'/>" + Chr(10) _ & "</s:ElementType></s:Schema>" + Chr(10) _ & "<rs:data>" + Chr(10) _ & "<z:row c0='1' Name='sql-sales-01' IP='10.0.5.1' Status='Online'/>" + Chr(10) _ & "<z:row c0='2' Name='sql-sales-02' IP='10.0.5.2' Status='Online'/>" + Chr(10) _ & "<z:row c0='3' Name='filestore-sales-01' IP='10.0.5.3' Status='Offline'/>" + Chr(10) _ & "<z:row c0='4' Name='webserver-01' IP='10.0.5.0' Status='Online'/>" + Chr(10) _ & "</rs:data></xml>" strXML = strXML1 + strXML2 ' Create a new DataRecordset object. For more information about ' connecting to data in Visio, see "About Connecting to Data" ' in the Visio Developer Reference. Set vsoDataRecordset = ThisDocument.DataRecordsets.AddFromXML(strXML, 0, strName) vsoDataRecordset.CommandString = "DataModule=DataModules.VisioCustomDataProvider,VisioCustomDataProvider;File=c:\VisioCustomData.xml" 'Restore diagram services. ActiveDocument.DiagramServicesEnabled = DiagramServices End Sub ' Link the data in the DataRecordset object to the shapes on the page. ' For more information about linking data to shapes in Visio, ' see "About Linking Shapes to Data" in the Visio Developer Reference. Sub LinkDataToShapes() 'Enable diagram services. Dim DiagramServices As Integer DiagramServices = ActiveDocument.DiagramServicesEnabled ActiveDocument.DiagramServicesEnabled = visServiceVersion140 ActiveWindow.DeselectAll ActiveWindow.Select Application.ActiveWindow.Page.Shapes(10), visSelect Application.ActiveWindow.Selection.LinkToData 1, 1, True ActiveWindow.DeselectAll ActiveWindow.Select Application.ActiveWindow.Page.Shapes(8), visSelect Application.ActiveWindow.Selection.LinkToData 1, 2, True ActiveWindow.DeselectAll ActiveWindow.Select Application.ActiveWindow.Page.Shapes(6), visSelect Application.ActiveWindow.Selection.LinkToData 1, 3, True ActiveWindow.DeselectAll ActiveWindow.Select Application.ActiveWindow.Page.Shapes(4), visSelect Application.ActiveWindow.Selection.LinkToData 1, 4, True 'Restore diagram services. ActiveDocument.DiagramServicesEnabled = DiagramServices End Sub
Führen Sie die einzelnen Verfahren im oben gezeigten Code in der Reihenfolge aus, in der diese aufgelistet sind.
Speichern Sie die Datei.
Erweitern von Datengrafiken in der Visio-VDW-Beispieldatei
Die einfache Beispieldatei ist jetzt im Wesentlichen vollständig. Die Datei enthält Shapes, die mit XML-Daten verknüpft sind und in denen Daten in Form von Datengrafiken angezeigt werden. Möglicherweise möchten Sie jedoch die von Visio angewendeten Standarddatengrafiken anpassen, die sich mit den Konnektoren überlappen und keine Informationen zum Status der Server enthalten. Sie können die Darstellung und Funktionalität einfach erweitern und den Speicherort der Datengrafiken relativ zu den zugeordneten Shapes verbessern. Führen Sie die folgenden Schritte aus, um die Datengrafiken in der Visio-VDW-Beispieldatei so zu erweitern, dass diese wie in Abbildung 1 aussehen.
So erweitern Sie die Datengrafiken in der Visio-VDW-Beispieldatei
Klicken Sie mit der rechten Maustaste auf eines der drei Servershapes, zeigen Sie auf Daten, und klicken Sie dann auf Datengrafik bearbeiten.
Wählen Sie unter Standardposition in der Liste Horizontal die Option Ganz links aus, und klicken Sie dann auf Übernehmen.
Wählen Sie das Datenfeld Name aus, und klicken Sie dann auf Element bearbeiten.
Wählen Sie in der Liste Formatvorlage die Option Überschrift 3 aus, klicken Sie auf OK, und klicken Sie dann auf Übernehmen, um die Änderung zu übernehmen.
Klicken Sie auf Neues Element.
Wählen Sie in der Liste Datenfeld die Option Status und in der Liste Angezeigt als die Option Farbe nach Wert aus.
Wählen Sie für den Status Online in der Liste Füllfarbe unter Standardfarben die Option Grün aus, klicken Sie auf OK, und klicken Sie dann auf Übernehmen.
Klicken Sie mit der rechten Maustaste auf das Webservershape, zeigen Sie auf Daten, und klicken Sie dann auf Datengrafik bearbeiten.
Wählen Sie unter Standardposition in der Liste Horizontal die Option Zentriert aus, und wählen Sie dann in der Liste Vertikal die Option Unter Shape aus.
Wählen Sie unter Änderungen anwenden auf die Option Nur ausgewählte Shapes aus, klicken Sie auf Übernehmen, und klicken Sie dann auf OK.
Angeben des auf dem Server zu verwendenden Datenmoduls in der VDW-Datei
Wenn Sie die Visio-VDW-Datei erstellen, die Sie auf dem Computer mit SharePoint Server 2010 anzeigen möchten, können Sie das auf dem Computer zu verwendende Datenmodul wie folgt angeben. Ein Datenmodul wird durch eine Zeichenfolge im Format Datenmodul=VollständigerKlassenname,EinfacherAssemblyname; angegeben. Sie können das Datenmodul angeben, indem Sie diese Zeichenfolge in den Wert der DataRecordset.DataConnection.ConnectionString-Eigenschaft einschließen, der dem Wert der ConnectionString-Eigenschaft auf dem Server entspricht. Wenn das DataRecordset-Objekt keinen DataConnection-Verweis enthält, können Sie das Datenmodul angeben, indem Sie diese Zeichenfolge in den Wert der DataRecordset.CommandString-Eigenschaft einschließen, der der QueryString-Eigenschaft auf dem Server entspricht. In diesem Fall wird die Zeichenfolge auch in ConnectionString repliziert. Die Zeichenfolge des Datenmoduls aus ConnectionString wird vom Server analysiert und zum Laden des Moduls verwendet. Die Zeichenfolge des Datenmoduls wird vom Server aus dem ConnectionString-Wert entfernt, bevor das Modul ausgeführt wird. Zusätzliche Informationen zum Datenmodul werden normalerweise im Ermessen des Entwicklers in der Abfragezeichenfolge im Format Schlüssel1=Wert1;Schlüssel2=Wert2;... usw. angegeben.
Bereitstellen der Beispieldateien auf dem Computer mit SharePoint Server
Stellen Sie nun die fertig gestellte Visio-VDW-Datei mit externen Daten, die Sie auf einer SharePoint-Seite veröffentlichen möchten, und die vorher erstellte XML-Datei auf dem Computer mit SharePoint Server 2010 und Visio Services bereit.
So stellen Sie die Beispieldateien auf dem Computer mit SharePoint Server bereit
Kopieren Sie die vorher erstellte XML-Quelldatendatei in den Speicherort auf dem Computer mit SharePoint Server 2010, den Sie in der Befehlszeichenfolge in der Visio-Zeichnung angegeben haben. Im Beispiel in diesem Artikel ist der Speicherort der Stamm von Laufwerk C:\.
Kopieren Sie die Visio-VDW-Beispieldatei mit externen XML-Daten in eine Dokumentbibliothek auf dem Server.
Erstellen des benutzerdefinierten Datenanbieters und Bereitstellen in SharePoint Server
Führen Sie die folgenden allgemeinen Schritte aus, um einen benutzerdefinierten Datenanbieter zu erstellen und diesen auf einem Computer mit SharePoint Server 2010 und Visio Services bereitzustellen.
So erstellen Sie einen benutzerdefinierten Datenanbieter und stellen diesen in SharePoint Server bereit
Erstellen Sie auf dem Computer mit SharePoint Server 2010 die in diesem Artikel vorgestellte Microsoft Visual Studio 2010-Lösung, und kompilieren Sie diese dann.
Dadurch wird ein SharePoint-Lösungspaket (WSP-Datei) in dem im Projekt angegebenen Speicherort gespeichert. Im Beispiel in diesem Artikel ist dies der Stamm von Laufwerk C:\.
Erstellen Sie anhand des hier gezeigten Texts eine Windows PowerShell-Skriptdatei in dem Speicherort auf dem Computer mit SharePoint Server 2010, den Sie in der Befehlszeichenfolge in der Visio-Zeichnung angegeben haben. Im Beispiel in diesem Artikel ist der Speicherort der Stamm von Laufwerk C:\.
Führen Sie das Windows PowerShell-Skript aus.
Fügen Sie der Liste der vertrauenswürdigen Anbieter in der SharePoint Server 2010-Zentraladministration einen neuen vertrauenswürdigen Anbieter hinzu.
Doppelklicken Sie auf die Visio-VDW-Datei, um diese im Visio Web Access-Webpart zu rendern.
In den folgenden Verfahren wird die Ausführung der komplexeren Schritte ausführlicher beschrieben.
Erstellen und Kompilieren der Visual Studio 2010-Lösung
Nach der Kompilierung wird mit der hier erstellten Visual Studio 2010-Lösung ein Lösungspaket im Stamm von Laufwerk C:\ erstellt, wo Sie weitere wichtige Dateien für das Beispiel platziert haben. In der Visual Studio 2010-Lösung wird auf Visio Services und SharePoint verwiesen.
So erstellen und kompilieren Sie die Visual Studio 2010-Lösung
Erstellen Sie auf dem Computer mit SharePoint Server 2010 in Visual Studio 2010 ein neues Visual C#-Klassenbibliotheksprojekt, und speichern Sie die Lösung als CustomDataProvider.
Fügen Sie einen Verweis auf den System.Web-Namespace hinzu. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, klicken Sie auf Verweis hinzufügen, klicken Sie auf .NET, wählen Sie System.Web aus, und klicken Sie dann auf OK.
Fügen Sie einen Verweis auf Visio Services hinzu. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, klicken Sie auf Verweis hinzufügen, und klicken Sie dann auf Durchsuchen. Navigieren Sie zu Pfad des Windows-Ordners auf dem Computer\assembly\GAC_MSIL\Microsoft.Office.Visio.Server\ 14.0.0.0__71e9bce111e9429c, wählen Sie Microsoft.Office.Visio.Server.dll aus, und klicken Sie dann auf OK.
Benennen Sie die generische Class1.cs-Klassendatei, die von Visual Studio 2010 erstellt wird, in VisioCustomDataProvider.cs um.
Klicken Sie im Menü Projekt auf Eigenschaften von "CustomDataProvider". Ändern Sie den Wert in Assemblyname in VisioCustomDataProvider, und ändern Sie den Wert in Standardnamespace in DataModules.
Öffnen Sie die Datei VisioCustomDataProvider.cs, wählen Sie den vorhandenen Inhalt aus, und fügen Sie dann den folgenden Code ein, um den vorhandenen Text in der Datei zu überschreiben. Mit den Codekommentaren werden die Aktionen des Codes dokumentiert.
/* VisioCustomDataProviders.cs * <copyright>Copyright (c) Microsoft Corporation. All rights reserved.</copyright> * <summary>This class demonstrates how to add support for a custom * data source to Visio Services by creating a custom data provider. * In this sample, the data source is an XML text file saved on the hard disk * of the computer running this custom data provider, typically a SharePoint Server * front-end Web server.</summary> * */ using System; using System.Data; using System.Threading; using System.Web; using System.Xml; using Microsoft.Office.Visio.Server; namespace DataModules { /// <summary> /// This class demonstrates how to add support for a custom data source /// to Visio Services by creating a custom data provider. The class must /// inherit from the AddonDataHandler abstract class, which includes the /// following members: /// /// this.Data: The ADO.NET DataSet that describes the data required by the /// Visio Graphics Server. /// The custom data provider can fill this DataSet with updated /// data and return it to Visio Services. It is up to the /// implementation to specify the type of each DataColumn and /// to ensure data type compatibility with Visio Services. /// /// this.ConnectionString: The connection string associated with the Visio /// DataRecordset being refreshed by this custom /// data provider. This string is parsed out of the /// Web drawing at refresh time and its value is then /// assigned to this property. The format of this string /// is a semicolon-delimited list of key/value pairs. /// Each pair contains the key and value, separated by an /// equals sign. /// /// this.QueryString: The query string associated with the Visio /// DataRecordset being refreshed by this custom data /// provider. This string is parsed out of the Web drawing /// at refresh time and its value is then assigned to this /// property. The format is a semicolon-delimited list of /// key/value pairs. Each pair contains the key and value, /// separated by an equal sign. /// /// this.Error: The exception object that describes an error that occurred if this /// custom data provider failed to retrieve data from its associated /// external data source. This property can be used to propagate error /// information to the caller about a failure that occurred during the /// asynchronous processing. If the type of this exception is /// AddonDataHandlerException, the exception message is presented /// to the end user as is; otherwise, a generic message will be used. /// /// this.BeginGetData(): This method is called by Visio Services to /// start data retrieval in this custom data /// provider. /// /// this.EndGetData(): This method is called by Visio Services when /// the custom data provider finished retrieving data from /// the associated data source. This method must return /// the data retrieved in the form of an ADO.NET DataSet. /// /// this.Cancel(): This method is called by Visio Services to stop the async /// processing when an error was detected or the maximum time /// allocated for retrieving data has passed and the custom data /// provider did not complete. /// /// This class also implements the IAsyncResult interface as described at /// https://msdn.microsoft.com/en-us/library/system.iasyncresult.aspx. /// </summary> public class VisioCustomDataProvider : AddonDataHandler, IAsyncResult { // Fields used to support the implementation of the IAsyncResult interface. private object asyncState; //Used to maintain a reference to this custom //data provider. private bool completed; //Used to notifiy Visio Services that the //the custom data provider has finished //retrieving data. #region Implementation of the IAsyncResult Interface /// <summary> /// This property implements the equivalent AsyncWaitHandle property of /// the IAsyncResult interface. More details on this member can /// be found at https://msdn.microsoft.com/en-us/library/system.iasyncresult_properties.aspx /// Visio Services does not use this property. /// </summary> WaitHandle IAsyncResult.AsyncWaitHandle { get { return null; } } /// <summary> /// This property implements the equivalent AsyncState property of /// the IAsyncResult interface. More details on this member can /// be found at https://msdn.microsoft.com/en-us/library/system.iasyncresult_properties.aspx /// Visio Services requires this property to return the asyncState object /// passed to the BeginGetData method by its caller. /// </summary> object IAsyncResult.AsyncState { get { return this.asyncState; } } /// <summary> /// This property implements the equivalent IsCompleted property of the /// IAsyncResult interface. This property gets a value that indicates whether /// the asynchronous operation has completed. More details on this member can /// be found at https://msdn.microsoft.com/en-us/library/system.iasyncresult_properties.aspx /// </summary> bool IAsyncResult.IsCompleted { get { return this.completed; } } /// <summary> /// This property implements the equivalent CompleteSynchronously property /// of the IAsyncResult interface. This property gets a value that indicates /// whether the asyncrhonous operation has completed. More details on this member can /// be found at https://msdn.microsoft.com/en-us/library/system.iasyncresult_properties.aspx /// </summary> bool IAsyncResult.CompletedSynchronously { get { return false; } } #endregion #region Implementation of the AddonDataHandler abstract class /// <summary> /// BeginGetData is called by Visio Services to start data retrieval in /// this custom data provider. This method should return as quickly as possible /// because custom data providers are meant to be run asynchronously. /// </summary> /// <param name="context">The HTTP context of user viewing /// the Web drawing.</param> /// <param name="callback">A reference to a Visio Services method that /// the custom data provider must call when it is finished retrieving /// data from its associated external data source.</param> /// <param name="asyncState">Async state passed-in by the caller. Visio Services /// requires the implementation to store this state into the AsyncState member /// of the returned IAsyncResult without changes. /// </param> /// <returns>An IAsyncResult that contains information about the status of /// the operation.</returns> public override IAsyncResult BeginGetData( System.Web.HttpContext context, AsyncCallback callback, object asyncState) { //Store the async state. this.asyncState = asyncState; // Start data retrieval. This is done on a separate thread because // BeginGetData() should return as soon as possible. // When the ThreadTask function finishes, the thread makes // a call to the callback method, which indicates to Visio Services // that the data retrieval step is complete. ThreadPool.QueueUserWorkItem( new WaitCallback(ThreadTask), callback); return this; } /// <summary> /// EndGetData is the method called by Visio Services when this /// custom data provider has finished retrieving data. /// </summary> /// <param name="result">An IAsyncResult that contains information /// about the status of the operation.</param> /// <returns>This method must return the data retrieved by this /// custom data provider to Visio Services in the form of an ADO.NET /// DataSet.</returns> public override DataSet EndGetData(IAsyncResult result) { // Return an ADO.NET DataSet containing the data retrieved by this // custom data provider to Visio Services. In this example, // this.Data was updated in the ThreadTask method with the // appropriate data. return this.Data; } /// <summary> /// Cancel is the method called by Visio Services to stop the asynchronous /// processing when an error was detected or the maximum time /// allocated for retrieving data has passed and the custom data /// provider did not complete. /// </summary> public override void Cancel() { //This example does not require an implementation of this method. } #endregion #region Data retrieval method /// <summary> /// This is the worker method which is lauched by BeginGetData(). /// Typically this method should: /// (1) parse the the connection and query strings /// (2) implement authentication measures /// (3) connect to a custom data source, query, and retrieve data /// (4) format the retrieved data and update this.Data /// (5) in case of errors, set this.Error accordingly. /// (6) set this.completed and call the Visio Services callback method /// </summary> /// <param name="state">A reference to Visio Services callback /// that must be called at the end of this task.</param> private void ThreadTask(object state) { // Get a reference to the Visio Services callback AsyncCallback callback = (AsyncCallback) state; // A string to hold the file name of the data source once // it is parsed out of this.QueryString string filename = String.Empty; try { // (1) Parse ConnectionString and QueryString. // // When configuring the Web drawing for custom data providers, the user // can choose whether to pass information in the ConnectionString, QueryString, // or both, depending on the data source and preferences. // // In this example, the significant content of ConnectionString // and QueryString is the same and formatted as "File=<File>". // // Where: // <File>" is the path to the xml file that contains the data. const string FileKey = "File="; int fileNameStart = this.QueryString.IndexOf(FileKey) + FileKey.Length; filename = this.QueryString.Substring(fileNameStart); // (2) Authenticate // This code is running in the security context of the end user. // If the end user account does not have access to the disk where // the text data source is stored, implement the required authentication // mechanisms below. // (3,4) Retrieve and format data // This custom data provider expects the file to contain an // ADO.NET DataSet XML description of the data to load; therefore it's // easy to load into this.Data, which is itself an ADO.NET DataSet. // In this case, Reset must be called first to clear the DataSet. this.Data.Reset(); this.Data.ReadXml(filename, XmlReadMode.Auto); } catch (Exception error) { // (5) In case of errors when retrieving data, send feedback // to the user. This error will also force cancellation of // all other external data refresh operations. String message = String.Format( "There was an error reading: {0}. Error details: {1}", filename, error.ToString()); this.Error = new AddonDataHandlerException(message); } // (6) Set this.completed to indicate that the async processing is complete // and invoke the Visio Services callback method passing a reference to this // custom data provider. this.completed = true; callback(this); } #endregion } }
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Lösungsnamen, und klicken Sie dann auf Projektmappe erstellen.
Fügen Sie der Lösung ein CAB-Projekt hinzu. Klicken Sie hierzu mit der rechten Maustaste auf die Lösung, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Projekt.
Klicken Sie auf Installierte Vorlagen, erweitern Sie Andere Projekttypen, erweitern Sie Setup und Bereitstellung, klicken Sie auf Visual Studio-Installer und dann auf CAB-Projekt.
Geben Sie dem Projekt den Namen CustomDataProviderDeploymentPackage, und klicken Sie dann auf OK.
Fügen Sie dem Bereitstellungsprojekt eine Projektausgabegruppe hinzu: Klicken Sie mit der rechten Maustaste auf das Projekt, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Projektausgabe.
Wählen Sie Primäre Ausgabe aus, und klicken Sie dann auf OK.
Fügen Sie dem Bereitstellungsprojekt eine weitere Projektausgabegruppe hinzu: Klicken Sie mit der rechten Maustaste auf das Projekt, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Projektausgabe.
Wählen Sie Inhaltsdateien aus, und klicken Sie dann auf OK.
Fügen Sie beiden Projekten eine Datei mit einem öffentlichen Schlüssel (SNK) hinzu, um der Assembly einen starken Namen zuzuweisen. Klicken Sie hierzu auf Start, klicken Sie auf Alle Programme, auf Microsoft Visual Studio 2010, auf Visual Studio Tools und dann auf Visual Studio-Eingabeaufforderung (2010) (2010).
Navigieren Sie im Eingabeaufforderungsfenster zum Projektordner.
Geben Sie an der Eingabeaufforderung die Zeichenfolge sn /k VisioCustomDataProvider.snk ein, und drücken Sie dann die EINGABETASTE.
Klicken Sie mit der rechten Maustaste auf das Projekt CustomDataProvider zeigen Sie auf Hinzufügen, klicken Sie auf Vorhandenes Element, wählen Sie die Datei VisioCustomDataProvider.snk aus, und klicken Sie dann auf Hinzufügen.
Klicken Sie mit der rechten Maustaste auf das Projekt CustomDataProviderDeploymentPackage, zeigen Sie auf Hinzufügen, klicken Sie auf Datei, navigieren Sie zum Projektordner, wählen Sie die Datei VisioCustomDataProvider.snk aus, und klicken Sie dann auf Öffnen.
Wählen Sie das Bereitstellungsprojekt aus, und wählen Sie dann im Eigenschaftenfenster PostBuildEvent aus, und klicken Sie auf die angezeigte Schaltfläche.
Fügen Sie im Fenster Befehlszeile für Postbuildereignis den folgenden Code ein, und klicken Sie dann auf OK.
copy "$(BuiltOuputPath)" "$(ProjectDir)\$(Configuration)\VisioCustomDataProvider.wsp" del "$(BuiltOuputPath)"
Fügen Sie der Lösung eine Manifestdatei hinzu. Klicken Sie hierzu mit der rechten Maustaste auf das Projekt CustomDataProvider, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Element.
Wählen Sie unter Installierte Vorlagen die Option Daten aus, wählen Sie XML-Datei aus, geben Sie der Datei den Namen manifest.xml, und klicken Sie dann auf Hinzufügen.
Fügen Sie der Datei den folgenden Code an.
<Solution xmlns="https://schemas.microsoft.com/sharepoint/" SolutionId="DE30781F-2B54-4513-A921-4EEA58C10868" > <Assemblies> <Assembly DeploymentTarget="GlobalAssemblyCache" Location="VisioCustomDataProvider.dll"/> </Assemblies> </Solution>
Öffnen Sie die Datei AssemblyInfo.cs, und fügen Sie der Datei die folgende Zeile an.
[assembly: AssemblyKeyFile("VisioCustomDataProvider.snk")]
Klicken Sie mit der rechten Maustaste auf das Projekt CustomDataProviderDeploymentPackage, und klicken Sie dann auf Erstellen, um das Projekt zu kompilieren.
Beim Kompilieren des Bereitstellungsprojekts wird im Stamm von Laufwerk C:\ eine WSP-Datei erzeugt.
Erstellen und Ausführen des PowerShell-Skripts
Durch Erstellen und anschließendes Ausführen eines Windows PowerShell-Skripts wird der benutzerdefinierte Datenanbieter (WSP-Datei), den Sie in Visual Studio 2010 erstellt haben, in SharePoint Server 2010 bereitgestellt.
So erstellen Sie das Windows PowerShell-Skript und führen dieses aus
Klicken Sie auf dem Computer mit SharePoint Server 2010 auf Start, und klicken Sie dann auf SharePoint 2010-Verwaltungsshell.
Geben Sie an der Eingabeaufforderung die Zeichenfolge cd c:\ ein, und drücken Sie dann die EINGABETASTE, um zum Stamm von Laufwerk C:\ zu navigieren.
Geben Sie an der Eingabeaufforderung Folgendes ein, und drücken Sie dann die EINGABETASTE.
Add-SPSolution c:\visiocustomdataprovider.wsp
Geben Sie an der Eingabeaufforderung Folgendes ein, und drücken Sie dann die EINGABETASTE.
Install-SPSolution visiocustomdataprovider.wsp -GACDeployment
Schließen Sie, wenn die Ausführung des Skripts beendet ist, das Fenster der Verwaltungsshell.
Wenn Sie den benutzerdefinierten Datenanbieter später deinstallieren müssen, verwenden Sie das folgende Skript.
Get-SPSolution visiocustomdataprovider.wsp | Uninstall-SPSolution
Remove-SPSolution visiocustomdataprovider.wsp
Hinzufügen eines neuen vertrauenswürdigen Datenanbieters zum Visio-Grafikdienst
In diesem Schritt fügen Sie der Liste der vertrauenswürdigen Datenanbieter für den Visio-Grafikdienst in SharePoint Server 2010 einen neuen vertrauenswürdigen Datenanbieter hinzu. Dann können Sie die Visio-Zeichnung anhand von im Datenanbieter auf dem Computer SharePoint Server 2010 gespeicherten Daten aktualisieren. Die eingegebene Anbieter-ID sollte das folgende Format haben:
Namespace.EinfacherKlassenname,EinfacherAssemblyname, Version=Version, Culture=Kultur, PublicKeyToken= Token
Im folgenden Verfahren wird erläutert, wie Sie einen neuen vertrauenswürdigen Datenanbieter hinzufügen.
So fügen Sie dem Visio-Grafikdienst einen neuen vertrauenswürdigen Datenanbieter hinzu
Klicken Sie auf dem Computer mit SharePoint Server 2010 auf Start, und klicken Sie dann auf SharePoint 2010-Zentraladministration.
Klicken Sie unter Anwendungsverwaltung auf Dienstanwendungen verwalten.
Klicken Sie auf Visio-Grafikdienst und dann auf Vertrauenswürdige Datenanbieter.
Klicken Sie auf Neuen vertrauenswürdigen Datenanbieter hinzufügen.
Geben Sie unter ID des vertrauenswürdigen Datenanbieters die Zeichenfolge DataModules.VisioCustomDataProvider,VisioCustomDataProvider, Version=1.0.0.0, Culture=Neutral, PublicKeyToken= ÖffentlichesSchlüsseltoken ein.
Den Wert des öffentlichen Schlüsseltokens finden Sie, wenn Sie im Ordner c:\Windows\Assembly nach dem Eintrag für den benutzerdefinierten Datenanbieter suchen.
Geben Sie unter Typ des vertrauenswürdigen Datenanbieters die Zahl 6 ein.
Geben Sie unter Beschreibung für den Typ des vertrauenswürdigen Datenanbieters (optional) die Zeichenfolge Visio Web Services ein.
Testen des benutzerdefinierten Beispieldatenanbieters
Wenn Sie die erstellte Visio-VDW-Datei noch nicht in eine SharePoint Server 2010-Dokumentbibliothek hochgeladen haben, sollten Sie dies jetzt tun. Wenn Sie die erstellte XML-Datei nicht im Stammordner von Laufwerk C:\ erstellt haben, sollten Sie auch dies jetzt tun.
Wenn Sie die VDW-Datei hochgeladen und den benutzerdefinierten Datenanbieter und die XML-Dateidatei auf dem Server mit Visio Services bereitgestellt haben, können Sie das Beispiel testen. Verwenden Sie das folgende Verfahren.
So testen Sie den benutzerdefinierten Beispieldatenanbieter
Klicken Sie in der Dokumentbibliothek, in die Sie die VDW-Datei hochgeladen haben, auf die Datei, um diese zu rendern.
Klicken Sie auf Aktivieren (diese Sitzung) oder Aktivieren (immer), um Aktualisieren zu aktivieren.
Öffnen Sie die auf dem Server gespeicherte XML-Datei, und ändern Sie einige der Daten.
Klicken Sie in der gerenderten Zeichnung auf Aktualisieren, und beobachten Sie, wie das Diagramm geändert wird, um die Änderungen widerzuspiegeln, die Sie an den XML-Daten vorgenommen haben.
Siehe auch
Referenz
Konzepte
Visio Services in SharePoint Server
Anpassen von Visio-Webzeichnungen im Visio Web Access-Webpart