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

最終更新日: 2010年6月11日

適用対象: SharePoint Server 2010

この手順では、LineItem という名前の外部コンテンツ タイプを定義します。LineItem 外部コンテンツ タイプは、A->B->C という種類の関連付けを持つことができることを示します。ここでは、Customer および Region -> Order -> LineItem です。GetLineItemsForOrder メソッドは、関連付けメソッドです。ここで示すもう 1 つの概念は、OrderID および ProductID という複数の識別子を持つ外部コンテンツ タイプ (複合キー) です。

前提条件

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

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

  • LineItem 外部コンテンツ タイプの XML を、Order エンティティ要素の後に追加します。この XML では、エンティティのタイトル、識別子、および LineItems を返すメソッドが定義されています。

    <Entity Namespace="SampleWebService" Version="1.0.0.0" 
            EstimatedInstanceCount="10000" Name="WSLineItem" 
            DefaultDisplayName="WSLineItem">
      <Identifiers>
        <Identifier TypeName="System.String" Name="OrderID" />
        <Identifier TypeName="System.String" Name="ProductID" />
      </Identifiers>
      <Methods>
        <Method IsStatic="false" Name="GetLineItemByID">
          <Parameters>
            <Parameter Direction="In" Name="ordid">
              <TypeDescriptor TypeName="System.String" 
                              IdentifierName="OrderID" Name="ordid" 
                              DefaultDisplayName="OrderID" />
            </Parameter>
            <Parameter Direction="In" Name="prodid">
              <TypeDescriptor TypeName="System.String" 
                              IdentifierName="ProductID" Name="prodid" 
                              DefaultDisplayName="ProductID" />
            </Parameter>
            <Parameter Direction="Return" Name="GetLineItemByID">
              <TypeDescriptor TypeName="BCSServiceProxy.LineItem, 
                              http://air-mail/WSOrders2010/service.asmx?wsdl" 
                              Name="GetLineItemByID">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="System.String" ReadOnly="true" 
                                  IdentifierName="OrderID" Name="OrderID" />
                  <TypeDescriptor TypeName="System.String" ReadOnly="true" 
                                  IdentifierName="ProductID" Name="ProductID" />
                  <TypeDescriptor TypeName="System.String" Name="ProductName" />
                  <TypeDescriptor TypeName="System.Int32" Name="OrderQty" />
                  <TypeDescriptor TypeName="System.Decimal" Name="UnitPrice">
                    <Properties>
                      <Property Name="Decimal Digits" 
                                Type="System.Int32">4</Property>
                    </Properties>
                  </TypeDescriptor>
                  <TypeDescriptor TypeName="System.Decimal" Name="LineTotal">
                    <Properties>
                      <Property Name="Decimal Digits" 
                                Type="System.Int32">4</Property>
                    </Properties>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="SpecificFinder" 
                            ReturnParameterName="GetLineItemByID" Default="true" 
                            Name="GetLineItemByID" 
                            DefaultDisplayName="Read Item WSLineItem">
              <Properties>
                <Property Name="LastDesignedOfficeItemType" 
                          Type="System.String">None</Property>
              </Properties>
            </MethodInstance>
          </MethodInstances>
        </Method>
        <Method IsStatic="false" Name="GetLineItems">
          <Parameters>
            <Parameter Direction="Return" Name="GetLineItems">
              <TypeDescriptor TypeName="BCSServiceProxy.LineItem[], 
                              http://air-mail/WSOrders2010/service.asmx?wsdl" 
                              IsCollection="true" Name="GetLineItems">
                <TypeDescriptors>
                  <TypeDescriptor TypeName="BCSServiceProxy.LineItem, 
                                  http://air-mail/WSOrders2010/service.asmx?wsdl" 
                                  Name="GetLineItemsElement">
                    <TypeDescriptors>
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" 
                                      IdentifierName="OrderID" Name="OrderID" />
                      <TypeDescriptor TypeName="System.String" ReadOnly="true" 
                                      IdentifierName="ProductID" Name="ProductID" />
                      <TypeDescriptor TypeName="System.String" Name="ProductName">
                        <Properties>
                          <Property Name="ShowInPicker" 
                                    Type="System.Boolean">true</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Int32" Name="OrderQty" />
                      <TypeDescriptor TypeName="System.Decimal" Name="UnitPrice">
                        <Properties>
                          <Property Name="Decimal Digits" 
                                    Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                      <TypeDescriptor TypeName="System.Decimal" Name="LineTotal">
                        <Properties>
                          <Property Name="Decimal Digits" 
                                    Type="System.Int32">4</Property>
                        </Properties>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </TypeDescriptors>
              </TypeDescriptor>
            </Parameter>
          </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="GetLineItems" 
                            Default="true" Name="GetLineItems" 
                            DefaultDisplayName="WSLineItem Read List">
              <Properties>
                <Property Name="UseClientCachingForSearch" 
                          Type="System.String"></Property>
                <Property Name="RootFinder" Type="System.String"></Property>
              </Properties>
            </MethodInstance>
          </MethodInstances>
        </Method>
      </Methods>
    </Entity>