2011-12-22 5 views
2

おはようございます:)ReadListメソッドに「BDCワイルドカードフィルタ」を追加する方法

シutターション:SP2010では、私は外部データフィールドを持つ顧客リストを持っています。このソリューションでは、「ReadItem」メソッドと「ReadList」メソッドを含むエンティティを持つBDCモデルがあります。私の機能を展開し、オブジェクトのアクセス許可を設定すると、問題なく項目を読み取ることができます。今私はアイテムを検索する必要があります。私はこの指示に従ってフィルタを作成します:http://msdn.microsoft.com/en-us/library/ee471425.aspxしかし、私は常にパラメータ( "**")に同じ値を持っているので、機能しません。

質問: 1.検索パラメータへの入力? 2.何か間違っていますか?

コード

public IEnumerable<Oppertunity> ReadList(String inputParameter) 
    { 
     using (CRMDataClassesDataContext db = new CRMDataClassesDataContext("server=xxx;database=xxx; uid=xxx ;pwd=xxx")) 
     { 
      List<Oppertunity> oppertunities = new List<Oppertunity>(); 

       var q = from c in db.Opportunities 
         where c.Name.Contains(inputParameter) 
         orderby c.Name ascending 
         select new Oppertunity 
         { 
          OppertunityId = c.OpportunityId, 
          Name = c.Name, 
         }; 

       foreach (var o in q) 
       { 
        Oppertunity oppertunity = new Oppertunity(); 

        oppertunity.OppertunityId = o.OppertunityId; 
        oppertunity.Name = o.Name; 

        oppertunities.Add(oppertunity); 
       } 
      } 

      return oppertunities; 
     } 

BDC部分は、MSDNの説明書のようになります。あなたは、外部リストを使用する場合

<?xml version="1.0" encoding="utf-8"?> 
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog" Name="BdcModel1"> 
    <LobSystems> 
    <LobSystem Name="BdcModel1" Type="DotNetAssembly"> 
     <LobSystemInstances> 
     <LobSystemInstance Name="BdcModel1" /> 
     </LobSystemInstances> 
     <Entities> 
      <Properties> 
      <Property Name="Class" Type="System.String">NX.Intra.Bcs.BdcModel1.ContactService, BdcModel1</Property> 
      </Properties> 
      <Identifiers> 
      <Identifier Name="ContactId" TypeName="System.Guid" /> 
      </Identifiers> 
      <Methods> 
      <Method Name="ReadList"> 
       <Parameters> 
       <Parameter Name="returnParameter" Direction="Return"> 
        <TypeDescriptor Name="ContactList" TypeName="System.Collections.Generic.IEnumerable`1[[NX.Intra.Bcs.BdcModel1.Contact, BdcModel1]]" IsCollection="true"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="Contact" TypeName="NX.Intra.Bcs.BdcModel1.Contact, BdcModel1"> 
         <TypeDescriptors> 
          <TypeDescriptor Name="ContactId" TypeName="System.Guid" IdentifierName="ContactId" IsCollection="false" ReadOnly="true"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">false</Property> 
          </Properties></TypeDescriptor> 
          <TypeDescriptor Name="FirstName" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">true</Property> 
          </Properties> 
          </TypeDescriptor> 
          <TypeDescriptor Name="LastName" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">true</Property> 
          </Properties> 
          </TypeDescriptor> 
          <TypeDescriptor Name="AccountIdName" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">true</Property> 
          </Properties> 
          </TypeDescriptor> 
          <TypeDescriptor Name="FullName" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">false</Property> 
          </Properties> 
          </TypeDescriptor></TypeDescriptors></TypeDescriptor></TypeDescriptors></TypeDescriptor></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadList" Type="Finder" Default="true" DefaultDisplayName="Read List" ReturnParameterName="returnParameter" /> 
       </MethodInstances></Method> 
      <Method Name="ReadItem"> 
       <Parameters> 
       <Parameter Name="returnParameter" Direction="Return"> 
        <TypeDescriptor Name="Contact" TypeName="NX.Intra.Bcs.BdcModel1.Contact, BdcModel1"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="ContactId" TypeName="System.Guid" IsCollection="false" IdentifierName="ContactId" /> 
         <TypeDescriptor Name="LastName" TypeName="System.String" /> 
         <TypeDescriptor Name="FirstName" TypeName="System.String" /> 
         <TypeDescriptor Name="AccountIdName" TypeName="System.String" /> 
         <TypeDescriptor Name="FullName" TypeName="System.String" /></TypeDescriptors> 
        </TypeDescriptor> 
        </Parameter> 
       <Parameter Name="id" Direction="In"> 
        <TypeDescriptor Name="ContactId" TypeName="System.Guid" IdentifierName="ContactId" IsCollection="false" /></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadItem" Type="SpecificFinder" Default="true" DefaultDisplayName="Read Item" ReturnParameterName="returnParameter" /> 
       </MethodInstances> 
       </Method> 
      </Methods></Entity> 
     <Entity Name="Oppertunity" Namespace="NX.Intra.Bcs.BdcModel1" Version="1.0.0.144"> 
      <Properties> 
      <Property Name="Class" Type="System.String">NX.Intra.Bcs.BdcModel1.Oppertunity, BdcModel1</Property> 
      <Property Name="Title" Type="System.String">FirstName</Property> 
      </Properties> 
      <Identifiers> 
      <Identifier Name="OppertunityId" TypeName="System.Guid" /> 
      </Identifiers> 
      <Methods> 
      <Method Name="ReadList" IsStatic="false"> 
       <FilterDescriptors> 
       <FilterDescriptor Name="OppertunityNameFilter" Type="Wildcard" DefaultDisplayName="Suche nach Name" FilterField="Name"> 
        <Properties> 
        <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property> 
        </Properties> 
        </FilterDescriptor> 
       </FilterDescriptors> 
       <Parameters> 
       <Parameter Name="returnParameter" Direction="Return"> 
        <TypeDescriptor Name="OppertunityList" TypeName="System.Collections.Generic.IEnumerable`1[[NX.Intra.Bcs.BdcModel1.Oppertunity, BdcModel1]]" IsCollection="true"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="Oppertunity" TypeName="NX.Intra.Bcs.BdcModel1.Oppertunity, BdcModel1"> 
         <TypeDescriptors> 
          <TypeDescriptor Name="OppertunityId" TypeName="System.Guid" IsCollection="false" IdentifierName="OppertunityId"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">false</Property> 
          </Properties></TypeDescriptor> 
          <TypeDescriptor Name="Name" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">true</Property> 
          </Properties></TypeDescriptor></TypeDescriptors></TypeDescriptor></TypeDescriptors></TypeDescriptor></Parameter> 
       <Parameter Name="inputParameter" Direction="In"> 
        <TypeDescriptor Name="OppertunityFinderTD" TypeName="System.String" AssociatedFilter="OppertunityNameFilter"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="Oppertunity" TypeName="NX.Intra.Bcs.BdcModel1.Oppertunity, BdcModel1"> 
         <TypeDescriptors> 
          <TypeDescriptor Name="OppertunityId" TypeName="System.Guid" IdentifierName="OppertunityId" IsCollection="false"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">false</Property> 
          </Properties></TypeDescriptor> 
          <TypeDescriptor Name="Name" TypeName="System.String"> 
          <Properties> 
           <Property Name="ShowInPicker" Type="System.Boolean">true</Property> 
          </Properties></TypeDescriptor></TypeDescriptors></TypeDescriptor></TypeDescriptors></TypeDescriptor></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadList" Type="Finder" ReturnParameterName="returnParameter" Default="true" DefaultDisplayName="Read List"> 
        <Properties> 
        <Property Name="UseClientCachingForSearch" Type="System.String"></Property> 
        <Property Name="RootFinder" Type="System.String"></Property> 
        </Properties></MethodInstance> 
       </MethodInstances></Method> 
      <Method Name="ReadItem"> 
       <Parameters> 
       <Parameter Name="returnParameter" Direction="Return"> 
        <TypeDescriptor Name="Oppertunity" TypeName="NX.Intra.Bcs.BdcModel1.Oppertunity, BdcModel1"> 
        <TypeDescriptors> 
         <TypeDescriptor Name="OppertunityId" TypeName="System.Guid" IdentifierName="OppertunityId" IsCollection="false" /> 
         <TypeDescriptor Name="Name" TypeName="System.String" /></TypeDescriptors></TypeDescriptor> 
        </Parameter> 
       <Parameter Name="id" Direction="In"> 
        <TypeDescriptor Name="OppertunityId" TypeName="System.Guid" IdentifierName="OppertunityId" IsCollection="false" /></Parameter> 
       </Parameters> 
       <MethodInstances> 
       <MethodInstance Name="ReadItemList" Type="SpecificFinder" ReturnParameterName="returnParameter" Default="true" DefaultDisplayName="Read Item" /> 
       </MethodInstances></Method> 
      </Methods></Entity> 
     </Entities> 
    </LobSystem> 
    </LobSystems> 
</Model> 
+0

ここでは、SharePoint 2010 BDCの部分はどこですか?これは、通常のling-to-sqlクエリによく似ています... – Stefan

+0

今、BDCの部分の私のXMLを見ることができます。 –

答えて

1

Ususallyには、デフォルトのビューを編集して、フィルタパラメータの値を設定することができますリストの作成(または新しいビューの作成)。

希望する;-)

関連する問題