作成手順 4: Address 外部コンテンツ タイプを定義する

最終更新日: 2010年4月16日

適用対象: SharePoint Server 2010

基本レベルでは、外部コンテンツ タイプは、タイトル (Properties 要素で定義)、一意の識別子 (主キーと同じ)、およびメソッドで構成されます。メソッドは、エンティティのフィールドを定義し、外部システムからのデータの取得方法を Business Data Connectivity (BDC) service に指示するために使用されます。

データベースの場合は、BDC のメソッドには、データベース クエリを定義する Properties 要素、クエリから返されるデータを定義する Parameters 要素、およびメソッドを呼び出すことのできる別の方法を定義する MethodInstances 要素が含まれます。一方、Web サービスの場合、メソッドには、目的のデータを取得するために呼び出す必要のある Web メソッドが記述されます。メソッド名は Web メソッド名と一致する必要があり、Parameters 要素は Web メソッドから返されるデータを定義し、MethodInstances 要素はメソッドを呼び出すことのできる別の方法を定義します。すべての名前および型は、Web サービス プロキシでの名前および型と一致する必要があります。

この手順では、Address という名前の外部コンテンツ タイプを定義します。SampleWebService プロキシの Address エンティティでは、エンティティの識別子を定義しなくてもよいシナリオを紹介します。これは、必要な処理は顧客の住所を一覧表示することだけであり、特定の住所の検索や表示は行わないためです。識別子がない場合、BDC は、外部システムによって返される住所を単にデータの塊として処理します。この外部コンテンツ タイプに対するアクションの実行、エンティティ インスタンス選択機能の使用、住所と別の外部コンテンツ タイプとの関連付け、外部データの検索やクロールなどは、行うことができません。

この外部コンテンツ タイプで紹介するもう 1 つの重要な概念として、BDC による複雑な書式設定のサポートが挙げられます。複雑な書式設定の機能を使用すると、住所の構造を "Street, BlockNumber, City, State - PostalCode, Country" のような形式に書式設定して表示できます。

前提条件

作成手順 3: LOB システム インスタンスを定義する

Address 外部コンテンツ タイプを定義するには

  1. Address 外部コンテンツ タイプの XML を、LobSystemInstances 要素の後に追加します。この XML では、外部コンテンツ タイプのタイトル、および住所を返すためのメソッドが定義されます。

    注意

    ここで定義されている GetAddresses メソッドは "ダミー" です。Web サービスには存在しません。XML でこのメソッドを定義する唯一の理由は、すべてのエンティティがファインダー メソッドを持つように要求する BDC の現在の制限によるものです。

    <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. XML ファイルを保存します。

次の手順

作成手順 5: Customer 外部コンテンツ タイプを定義する