Freigeben über


Erstellungsschritt 4: Definieren des externen Inhaltstyps "Address"

Letzte Änderung: Freitag, 16. April 2010

Gilt für: SharePoint Server 2010

Auf der einfachsten Ebene besteht ein externer Inhaltstyp aus einem Titel (definiert im Properties-Element), einem eindeutigen Bezeichner (der einem Primärschlüssel entspricht) und Methoden, mit denen die Felder einer Entität definiert werden und der Business Data Connectivity-Dienst (BDC) angewiesen wird, wie Daten aus dem externen System abgerufen werden sollen.

Bei Datenbanken enthält eine BDC-Methode ein Properties-Element zur Definition der Datenbankabfrage, ein Parameters-Element zur Definition der von der Abfrage zurückgegebenen Daten sowie ein MethodInstances-Element zur Definition der unterschiedlichen Vorgehensweisen zum Aufrufen der Methode. Bei Webdiensten beschreibt eine Methode jedoch die Web-Methode, die aufgerufen werden sollte, um die gewünschten Daten zu erhalten. Der Methodenname sollte mit dem Web-Methodennamen übereinstimmen, und das Parameters-Element definiert die von der Webmethode zurückgegebenen Daten. Ein MethodInstances-Element definiert die unterschiedlichen Vorgehensweisen zum Aufrufen der Methode. Alle Namen und Typen sollten mit den Namen und Typen im Webdiensteproxy übereinstimmen.

In diesem Schritt definieren Sie den externen Inhaltstyp Address. Die Address-Entität im SampleWebService-Proxy veranschaulicht ein Szenario, bei dem es akzeptabel ist, keinen Bezeichner für die Entität zu definieren. Denn wir möchten nur eine Liste der Adressen für einen Kunden anzeigen und möchten nicht eindeutige Adressen suchen oder anzeigen. Ohne einen Bezeichner werden die vom externen System zurückgegebenen Adressen von BDC lediglich als Daten-BLOB behandelt. Es ist nicht möglich, Aktionen für diesen externen Inhaltstyp auszuführen, die Entitätsinstanzauswahl zu verwenden, Adressen mit einem anderen externen Inhaltstyp zu verknüpfen oder die externen Daten zu durchsuchen oder zu durchforsten.

Dieser externe Inhaltstyp veranschaulicht ein weiteres wichtiges Konzept, nämlich die Unterstützung komplexer Formatierung durch BDC. Mit dem Feature für komplexe Formatierung können Sie die Adressenstruktur formatiert anzeigen, wie z. B. "Street, BlockNumber, City, State – PostalCode, Country".

Voraussetzungen

Erstellen von Schritt 3: Definieren der LobSystem-Instanz

So definieren Sie den externen Inhaltstyp "Address"

  1. Fügen Sie das XML für den externen Inhaltstyp Address nach dem LobSystemInstances-Element hinzu. Mit diesem XML werden der Titel des externen Inhaltstyps und eine Methode zum Zurückgeben von Adressen definiert.

    HinweisHinweis

    Die hier definierte GetAddresses-Methode ist ein "Dummy". Diese Methode gibt es im Webdienst nicht. Die aktuelle Beschränkung von BDC, dass für alle Entitäten eine Finder-Methode benötigt wird, ist der einzige Grund, diese Methode im XML zu definieren.

    <Entities>
      <Entity Namespace="SampleWebService" Version="1.1.0.0" 
              EstimatedInstanceCount="10000" Name="WSAddress" 
              DefaultDisplayName="WSAddress">
        <Methods>
          <Method IsStatic="false" Name="GetAddresses">
            <Parameters>
              <Parameter Direction="In" Name="id">
                <TypeDescriptor TypeName="System.String" 
                                IdentifierName="CustomerID" 
                                Name="id" 
                                DefaultDisplayName="CustomerID" />
              </Parameter>
              <Parameter Direction="Return" Name="Addresses">
                <TypeDescriptor 
                  TypeName="BCSServiceProxy.CustomerAddress[], http://air-mail/WSOrders2010/service.asmx?wsdl" 
                  IsCollection="true" Name="CustomerAddresses">
                  <TypeDescriptors>
                    <TypeDescriptor 
                      TypeName="BCSServiceProxy.CustomerAddress, http://air-mail/WSOrders2010/service.asmx?wsdl" 
                      Name="CustomerAddressesElement">
                      <Properties>
                        <Property Name="ComplexFormatting" Type="System.String" />
                        <Property Name="FormatString" Type="System.String">
                          {0}, {1}, {2}, {3} - PostalCode, {4}
                        </Property>
                      </Properties>
                      <TypeDescriptors>
                        <TypeDescriptor 
                          TypeName="BCSServiceProxy.CustomerStreet, http://air-mail/WSOrders2010/service.asmx?wsdl" 
                          Name="Street">
                          <TypeDescriptors>
                            <TypeDescriptor TypeName="System.String" 
                                            Name="BlockNumber" />
                            <TypeDescriptor TypeName="System.String" 
                                            Name="Street" />
                          </TypeDescriptors>
                        </TypeDescriptor>
                        <TypeDescriptor TypeName="System.String" 
                                        Name="City" />
                        <TypeDescriptor 
                          TypeName="BCSServiceProxy.States, http://air-mail/WSOrders2010/service.asmx?wsdl" 
                          Name="StateProvince" />
                        <TypeDescriptor TypeName="System.String" 
                                        Name="CountryRegion" />
                        <TypeDescriptor TypeName="System.String" 
                                        Name="PostalCode" />
                      </TypeDescriptors>
                    </TypeDescriptor>
                  </TypeDescriptors>
                </TypeDescriptor>
              </Parameter>
            </Parameters>
            <MethodInstances>
              <Association Name="GetAddressesForCustomer" 
                           Type="AssociationNavigator" 
                           ReturnParameterName="Addresses" 
                           DefaultDisplayName="Customer Addresses Navigate Association">
                <SourceEntity Namespace="SampleWebService" Name="WSCustomer" />
                <DestinationEntity Namespace="SampleWebService" Name="WSAddress" />
              </Association>
            </MethodInstances>
          </Method>
        </Methods>
      </Entity>
    </Entities>
    
  2. Speichern Sie die XML-Datei.

Weitere Schritte

Erstellungsschritt 5: Definieren des benutzerdefinierten externen Inhaltstyps "Customer"