サンプル BDC モデル

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

適用対象: SharePoint Server 2010

次の BDC モデルの例は、種類が Web サービスの外部システムの Customer 外部コンテンツ タイプを表しています。この例では、SharePoint 2010 SDK に収録されているサンプル AdventureWorks Web サービスを使用して、次の処理を示します。

  • 1 つの Method オブジェクトを持つ簡単な外部コンテンツ タイプ WSCustomer の追加

  • 実行時に Method を実行可能にする MethodInstance オブジェクトの追加

  • Customer 外部コンテンツ タイプと Order 外部コンテンツ タイプの関連付け

例: 1 つの Method オブジェクトを持つ簡単なエンティティの追加

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog BDCMetadata.xsd" Name="AdventureWorksWSModel" IsCached="false" xmlns="https://schemas.microsoft.com/windows/2007/BusinessDataCatalog">
   <LobSystems>
    <LobSystem Type="Wcf" Name="AdventureWorksWS">
      <Properties>
        <Property Name="WsdlFetchAuthenticationMode" Type="System.String">PassThrough</Property>
        <Property Name="WcfMexDiscoMode" Type="System.String">Disco</Property>
        <Property Name="WcfMexDocumentUrl" Type="System.String">http://webserver:90/webservice.asmx?wsdl</Property>
        <Property Name="WcfProxyNamespace" Type="System.String">BCSServiceProxy</Property>
        <Property Name="WildcardCharacter" Type="System.String">*</Property>
      </Properties>
      <LobSystemInstances>
        <LobSystemInstance Name="AdventureWorksWS">
          <Properties>
            <Property Name="WcfAuthenticationMode" Type="System.String">PassThrough</Property>
            <Property Name="WcfEndpointAddress" Type="System.String">http://webserver:90/webservice.asmx</Property>
            <Property Name="ShowInSearchUI" Type="System.String"></Property>
          </Properties>
        </LobSystemInstance>
      </LobSystemInstances>
      <Entities>
        <Entity Namespace="AdventureWorks” Version="1.0.0.0" EstimatedInstanceCount="10000" Name="WSCustomer" DefaultDisplayName="WSCustomer">
          <Properties>
            <Property Name="OutlookItemType" Type="System.String">Contact</Property>
          </Properties>
          <Identifiers>
            <Identifier TypeName="System.Int32" Name="CustomerId" />
          </Identifiers>
          <Methods>
            <Method IsStatic="false" Name="GetCustomerById">
              <Parameters>
                <Parameter Direction="In" Name="customerId">
                  <TypeDescriptor TypeName="System.Int32" IdentifierName="CustomerId" Name="customerId" />
                </Parameter>
                <Parameter Direction="Return" Name="GetCustomerById">
                  <TypeDescriptor TypeName="BCSServiceProxy.SalesCustomer, AdventureWorksWS" Name="GetCustomerById">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.Int32" ReadOnly="true" IdentifierName="CustomerId" Name="CustomerId" />
                      <TypeDescriptor TypeName="System.String" Name="Title" />
                      <TypeDescriptor TypeName="System.String" Name="FirstName">
                        <Properties>
                          <Property Name="OfficeProperty" Type="System.String">FirstName</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="MiddleName" />
                      <TypeDescriptor TypeName="System.String" Name="LastName">
                        <Properties>
                          <Property Name="OfficeProperty" Type="System.String">LastName</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.String" Name="EmailAddress" />
                      <TypeDescriptor TypeName="System.String" Name="Phone" />
                      <TypeDescriptor TypeName="System.DateTime" Name="ModifiedDate" />
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <!- See below>
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
      </Entities>
    </LobSystem>
  </LobSystems>
</Model>

例: 実行時に Method オブジェクトを実行可能にする MethodInstance の追加

前の例では、実行時に Method は実行できません。次のコード例では、前の Customer エンティティに MethodInstance を追加して、Method を実行可能にする方法を示します。

<MethodInstances>
       <MethodInstance Type="SpecificFinder" ReturnParameterName="GetCustomerById" Default="true" Name="GetCustomerById" DefaultDisplayName="Read Item WSCustomer">
           <Properties>
             <Property Name="LastDesignedOfficeItemType" Type="System.String">Contact</Property>
           </Properties>
       </MethodInstance>
</MethodInstances>

Associating Two entities, Customer and Order

Association は MethodInstance の 1 つの種類です。次のコード例では、2 つのエンティティを関連付ける方法を示します。モデルに既に定義されている 'Orders という名前のパラメーターを返すメソッドを持つ Order という名前のエンティティの種類が存在すると想定しています。ここでは、モデルは、Customer と Order の 2 つのエンティティを関連付けます。

<!—BDC has three types of association operations - AssociationNavigator, Associate and DisAssociate -->
<MethodInstances>
   <Association Name="GetOrdersByCustomer" Type="AssociationNavigator" ReturnParameterName="Orders">
<!—Name of the Source entity in the association -->
      <Source Name="Customer" Namespace="AdventureWorks">
      <!—Name of the destination entity in the association -->
<Destination Name="Order" Namespace=" AdventureWorks">
   </Association>
</MethodInstances>

注意

わかりやすくするために、この例を完了すると、LobSystem と LobSystemInstance オブジェクトは外部コンテンツ タイプに対して表示されません。

BDC モデル スキーマの説明については「BDCMetadata スキーマ」を、その他の例については「Business Connectivity Services: サンプル XML とコード例」を参照してください。