SharePoint Gen

The official blog of Chandrasekar, Microsoft SharePoint PFE

BDC : How to Create Filters in ADF manually

BDC : How to Create Filters in ADF manually

Rate This
  • Comments 11

When an ADF is generated using BDC Editor tool, by default no filters will be added to any method instance.  There is an option available in BDC editor tool to create filter.  For guys who have tried to create filters using BDC Editor tool know how much painful it is.  I know that there are other tools available in market using which this can be achieved easily but remember that nothing comes for free !

 

Let’s remember that nothing is as great as “Programming Ourselves” and that is what exactly we are going to do.  Once you know what changes need to be done and why, then it’s just a matter of time to change.

 

So, first create ADF using the BDC Editor tool and save it.  Open the XML file and locate the method where you like to add filters.

 

1.     Change the Query adding where clause in it.  Remember, the field in the where clause is going to be the filter.

 

Select "EmployeeKey","FirstName" from  DimEmployee where([EmployeeKey] LIKE @ EmployeeKey)

 

2.     Add Filter Descriptors and parameters in it.  Here we are assuming it’s a Comparison type – you can also use WildCharacter.

<FilterDescriptors>

     <FilterDescriptor Type="Comparison" Name="EmployeeKey" />

</FilterDescriptors>

 

<Parameter Direction="In" Name="@ EmployeeKey ">

  <TypeDescriptor TypeName="System.Int32" Name="EmployeeKey" AssociatedFilter="EmployeeKey" IdentifierName="[EmployeeKey]">

      <DefaultValues>

        <DefaultValue MethodInstanceName="FindAll_DimEmployee_Instance" Type="System.Int32">1</DefaultValue>

      </DefaultValues>

  </TypeDescriptor>

</Parameter>

 

3.     Make sure that MethodInstanceName specified in the default value matches with the method instance name specified in <MethodInstances>

 

Leave a Comment
  • Please add 3 and 8 and type the answer here:
  • Post
  • · BDC Tool Design Surface Error Message : “Could not process Table ‘xyz’. Make sure you have SELECT rights

  • Hello there!

    Thanks for sharing this information, but unfotunatelly i can't do filters works on my project.

    look what MS BDC Definition Editor has generated:

    <Method Name="GetCargas">

             <Properties>

               <Property Name="RdbCommandText" Type="System.String">select

    car.Atendimento as "Atendimento"

    ,car.CD_CARGA as "ID Carga"

    ,car.DS_Carga as "Descrição Carga"

    ,car.RS_Carga as "Carga"

    ,un.Acronym

    ,un.Description as "Descrição"

    ,un.Type as "Tipo de Unidade"

    ,un.[Fator to Metric] as "Fator para Métrica"

    ,clas.DS_Genero as "Gênero"

    ,tipo.DS_Tipo as "Tipo de Carga"

    from Cargas car

    inner join Units un

    on un.CD_UNIT = car.CD_UNIT

    inner join [Classe de Carga] clas

    on clas.CD_Genero = car.CD_GENERO

    inner join [Tipos de Cargas] tipo

    on tipo.CD_Tipo = clas.CD_TIPO

    WHERE

    (car.Atendimento = @Atendimento or @Atendimento is null)</Property>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

             </Properties>

             <FilterDescriptors>

               <FilterDescriptor Type="Wildcard" Name="Atendimento" />

             </FilterDescriptors>

             <Parameters>

               <Parameter Direction="Return" Name="@Cargas">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32" IdentifierName="CD_Carga" Name="ID Carga" />

                         <TypeDescriptor TypeName="System.String" Name="Descrição Carga" />

                         <TypeDescriptor TypeName="System.String" Name="Carga" />

                         <TypeDescriptor TypeName="System.String" Name="Acronym" />

                         <TypeDescriptor TypeName="System.String" Name="Tipo de Unidade" />

                         <TypeDescriptor TypeName="System.String" Name="Descrição" />

                         <TypeDescriptor TypeName="System.String" Name="Fator para Métrica" />

                         <TypeDescriptor TypeName="System.String" Name="Tipo de Carga" />

                         <TypeDescriptor TypeName="System.String" Name="Gênero" />

                         <TypeDescriptor TypeName="System.String" Name="Atendimento" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

               <Parameter Direction="In" Name="@Atendimento">

                 <TypeDescriptor TypeName="System.String" Name="@Atendimento" AssociatedFilter="Atendimento">

                   <Properties>

                     <Property Name="ShowInPicker" Type="System.Boolean">false</Property>

                   </Properties>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Type="Finder" ReturnParameterName="@Cargas" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="GetCargas_Instance" />

             </MethodInstances>

           </Method>

    But sharepoint always give me the error "An error occurred while retrieving data from LBH_Instance. Administrators, see the server log for more information." . I don't know what i can do to make this works... If i remove the filter and "where" statement form query my BDC works just fine... but i need this filter. And when i test it on BDC Definition Editor the error is "has a value in field "TypeDescription" that is invalid"

    Do u have any other ideas to help me?!

    Thx anyway! =D

    Cya!

  • Hey Filipe....I see that you have used BDC Editor tool to genereate this ADF.

    My blog here says how to add filters manually.  In your ADF i see "FilterDescriptors".  Here is what i would suggest you.  

    Don't try to add filters using the BDC tool.  If you do that then you are going to land in trouble.  Just create ADF "Without filters" and then using any XML editor, try the steps that i said before to add the filters and it should work.  Let me know how if you have any problem !

    -Chandrasekar

  • Hi I tried adding filters using the method posted above.

    Here is my xml :

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>

    <LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="Database" Version="1.0.0.0" Name="BFS Accounts1" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

     <LobSystemInstances>

       <LobSystemInstance Name="BFS Accounts1_Instance">

         <Properties>

           <Property Name="rdbconnection Data Source" Type="System.String">01HW125397\BFSTEG</Property>

           <Property Name="rdbconnection Initial Catalog" Type="System.String">BFS Accounts</Property>

           <Property Name="rdbconnection Integrated Security" Type="System.String">True</Property>

           <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">SqlServer</Property>

           <Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">PassThrough</Property>

         </Properties>

       </LobSystemInstance>

     </LobSystemInstances>

     <Entities>

       <Entity EstimatedInstanceCount="10000" Name="Product">

         <Identifiers>

           <Identifier TypeName="System.Int32" Name="ProductID" />

         </Identifiers>

         <Methods>

           <Method Name="Find_Product">

             <Properties>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

               <Property Name="RdbCommandText" Type="System.String">Select "ProductID","Name","ProductNumber","Color","Size","Class","Style" from  Product where ProductID=@ProductID</Property>

             </Properties>

    <FilterDescriptors>

    <FilterDescriptor Type="Comparison" Name="ProductID" />

    </FilterDescriptors>

             <Parameters>

               <Parameter Direction="In" Name="@ProductID">

                 <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

     IdentifierName="ProductID"

     Name="ProductID"

     AssociatedFilter ="ProductID">

     <DefaultValues>

     <DefaultValue MethodInstanceName="Find_Product_Instance"

    Type="System.Int32">

     1

     </DefaultValue>

     </DefaultValues>

     </TypeDescriptor>

     </Parameter>

               <Parameter Direction="Return" Name="@Product">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="ProductID" Name="ProductID" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Name" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ProductNumber" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Color" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Size" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Class" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Style" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Type="SpecificFinder" ReturnParameterName="@Product" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_Product_Instance" />

             </MethodInstances>

           </Method>

           <Method Name="FindAll_Product">

             <Properties>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

               <Property Name="RdbCommandText" Type="System.String">Select "ProductID" from  Product where ProductID=@ProductID</Property>

             </Properties>

    <FilterDescriptors>

    <FilterDescriptor Type="Comparison" Name="ProductID" />

    </FilterDescriptors>

    <Parameters>

    <Parameter Direction="In" Name="@ProductID">

    <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

    IdentifierName="ProductID"

    Name="ProductID"

    AssociatedFilter ="ProductID">

    <DefaultValues>

    <DefaultValue MethodInstanceName="FindAll_Product_Instance"

     Type="System.Int32">

    1

    </DefaultValue>

    </DefaultValues>

    </TypeDescriptor>

    </Parameter>

               <Parameter Direction="Return" Name="@Product">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="ProductID" Name="ProductID" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Type="IdEnumerator" ReturnParameterName="@Product" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Product_Instance" />

             </MethodInstances>

           </Method>

         </Methods>

       </Entity>

     </Entities>

    </LobSystem>

    But whenI import the application to BDC in Central admin ,  it says no filters configured for the entity. also I am unable to use it in the BDC Data List Webpart.

  • I don't think so the problem is with the "Filter" but with the "MethodInstance" Type.

    I belive you have generated this ADF using BDC Editor tool.  By default, you will get two method instance, Specific Finder and IdEnumerator.  As you are using BDC Data List Webpart, it will be looking for methodinstance of type "Finder".  IdEnumerator is generally used for BDC search.

    You have

    <MethodInstance Type="IdEnumerator" ReturnParameterName="@Product" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Product_Instance" />

           </MethodInstances>

    So Change it to "Finder" Type and check

    <MethodInstance Type="Finder" ReturnParameterName="@Product" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_Product_Instance" />

           </MethodInstances>

  • Thanks :)

    The solution worked.

  • Hello Chandrasekar,

    I'm creating my filters manually based on your  solution which works fine.

    I have a couple of issues:

    1. I'm not able to get results when using more than one filters with data type Integer.

    2. I'm not able to get results when I combine different data types (for example date & string).

    3. I'm not able to get results when I have more than five filters in a ADF.

    I'm not sure if it's my fault or these are BDC constraints. Do you have any ideas?

    Thank you in advance for your time & effort.

    Yannis

    Here is my xml :

    <?xml version="1.0"?>

    <LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.XSD" Type="Database" Version="1.0.0.0"

    Name="SIS_DBLOBSystem_Assignments_Integers" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

     <Properties>

       <Property Name="WildcardCharacter" Type="System.String">%</Property>

     </Properties>

     <LobSystemInstances>

       <LobSystemInstance Name="SIS_DBLOBSystem_Assignments_Integers">

         <Properties>

    <Property Name="AuthenticationMode"

    Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">RevertToSelf</Property>

           <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>

    <Property Name="RdbConnection Data Source" Type="System.String"></Property>

    <Property Name="RdbConnection Initial Catalog" Type="System.String"></Property>

    <Property Name="RdbConnection Integrated Security" Type="System.String">false</Property>

    <Property Name="RdbConnection User ID" Type="System.String"></Property>

    <Property Name="RdbConnection Password" Type="System.String"></Property>

         </Properties>

       </LobSystemInstance>

     </LobSystemInstances>

     <Entities>

       <Entity EstimatedInstanceCount="0" Name="dbo.TBL_RfR_Assignments_test">

         <Identifiers>

           <Identifier TypeName="System.String" Name="[purchaseorder_key]" />

           <Identifier TypeName="System.String" Name="[poItem]" />

         </Identifiers>

         <Methods>

           <Method Name="Getdbo.[TBL_RfR_Assignments_test]">

             <Properties>

               <Property Name="RdbCommandText" Type="System.String">Select

    [purchaseorder_key],[consultant_key],[fteorder],[poItem],[poSAPCreationDate],[poStartDate],[poEndDate],[poMaterialNumber],[quantity],[rate],

    [rateUnit],[guard],[travel],[overtime],[purRequestDate],[functionalLead],[functionalLeadName],[hierarchicalMgr],[hierarchicalMgrName],[funct

    ion],[role],[experienceLevel],[gbu],[group],[project],[locationOfMission],[costcenter],[fincoCostcenter],[fincoCostcenterName],[fincoProject

    ],[fincoProjectName],[Itec],[esnCodeHQ],[siemensLocalNr],[wbsElement],[startMissionDate],[endMissionDate],[endMissionReason],[activityType],

    [poStoppedPrematureOn],[description] From dbo.[TBL_RfR_Assignments_test] where ([consultant_key] LIKE @ConsultantKey) and ([quantity] LIKE

    @Quantity)</Property>

               <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>

             </Properties>

             <FilterDescriptors>

       <FilterDescriptor Type="Comparison" Name="Consultant Key" />

               <FilterDescriptor Type="Comparison" Name="Quantity" />

             </FilterDescriptors>

             <Parameters>

               <Parameter Direction="In" Name="@ConsultantKey">

                 <TypeDescriptor TypeName="System.Int32" Name="consultant_key" AssociatedFilter="Consultant Key">

                   <DefaultValues>

                     <DefaultValue MethodInstanceName="dbo.[TBL_RfR_Assignments_test]Finder" Type="System.Int32">1</DefaultValue>

                   </DefaultValues>

                 </TypeDescriptor>

               </Parameter>

               <Parameter Direction="In" Name="@Quantity">

                 <TypeDescriptor TypeName="System.Int32" Name="quantity" AssociatedFilter="Quantity">

                   <DefaultValues>

                     <DefaultValue MethodInstanceName="dbo.[TBL_RfR_Assignments_test]Finder" Type="System.Int32">1</DefaultValue>

                   </DefaultValues>

                 </TypeDescriptor>

               </Parameter>

               <Parameter Direction="Return" Name="dbo.[TBL_RfR_Assignments_test]">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="dbo.[TBL_RfR_Assignments_test]DataReader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" Name="dbo.[TBL_RfR_Assignments_test]DataRecord">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.String" Name="purchaseorder_key" IdentifierName="[purchaseorder_key]" />

                         <TypeDescriptor TypeName="System.Int32" Name="consultant_key" />

                         <TypeDescriptor TypeName="System.Double" Name="fteorder" />

                         <TypeDescriptor TypeName="System.String" Name="poItem" IdentifierName="[poItem]" />

                         <TypeDescriptor TypeName="System.String" Name="poSAPCreationDate" />

                         <TypeDescriptor TypeName="System.String" Name="poStartDate" />

                         <TypeDescriptor TypeName="System.String" Name="poEndDate" />

                         <TypeDescriptor TypeName="System.String" Name="poMaterialNumber" />

                         <TypeDescriptor TypeName="System.Int32" Name="quantity" />

                         <TypeDescriptor TypeName="System.Decimal" Name="rate" />

                         <TypeDescriptor TypeName="System.String" Name="rateUnit" />

                         <TypeDescriptor TypeName="System.Boolean" Name="guard" />

                         <TypeDescriptor TypeName="System.Boolean" Name="travel" />

                         <TypeDescriptor TypeName="System.Boolean" Name="overtime" />

                         <TypeDescriptor TypeName="System.String" Name="purRequestDate" />

                         <TypeDescriptor TypeName="System.Int32" Name="functionalLead" />

                         <TypeDescriptor TypeName="System.String" Name="functionalLeadName" />

                         <TypeDescriptor TypeName="System.Int32" Name="hierarchicalMgr" />

                         <TypeDescriptor TypeName="System.String" Name="hierarchicalMgrName" />

                         <TypeDescriptor TypeName="System.String" Name="function" />

                         <TypeDescriptor TypeName="System.String" Name="role" />

                         <TypeDescriptor TypeName="System.String" Name="experienceLevel" />

                         <TypeDescriptor TypeName="System.String" Name="gbu" />

                         <TypeDescriptor TypeName="System.String" Name="group" />

                         <TypeDescriptor TypeName="System.String" Name="project" />

                         <TypeDescriptor TypeName="System.String" Name="locationOfMission" />

                         <TypeDescriptor TypeName="System.String" Name="costcenter" />

                         <TypeDescriptor TypeName="System.Int32" Name="fincoCostcenter" />

                         <TypeDescriptor TypeName="System.String" Name="fincoCostcenterName" />

                         <TypeDescriptor TypeName="System.Int32" Name="fincoProject" />

                         <TypeDescriptor TypeName="System.String" Name="fincoProjectName" />

                         <TypeDescriptor TypeName="System.String" Name="Itec" />

                         <TypeDescriptor TypeName="System.String" Name="esnCodeHQ" />

                         <TypeDescriptor TypeName="System.String" Name="siemensLocalNr" />

                         <TypeDescriptor TypeName="System.String" Name="wbsElement" />

                         <TypeDescriptor TypeName="System.String" Name="startMissionDate" />

                         <TypeDescriptor TypeName="System.String" Name="endMissionDate" />

                         <TypeDescriptor TypeName="System.String" Name="endMissionReason" />

                         <TypeDescriptor TypeName="System.String" Name="activityType" />

                         <TypeDescriptor TypeName="System.String" Name="poStoppedPrematureOn" />

                         <TypeDescriptor TypeName="System.String" Name="description" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Name="dbo.[TBL_RfR_Assignments_test]Finder" Type="Finder" ReturnParameterName="dbo.[TBL_RfR_Assignments_test]"

    ReturnTypeDescriptorName="dbo.[TBL_RfR_Assignments_test]DataReader" ReturnTypeDescriptorLevel="0" />

             </MethodInstances>

           </Method>

           <Method Name="dbo.[TBL_RfR_Assignments_test]SpecificFinder">

             <Properties>

               <Property Name="RdbCommandText" Type="System.String">Select

    [purchaseorder_key],[consultant_key],[fteorder],[poItem],[poSAPCreationDate],[poStartDate],[poEndDate],[poMaterialNumber],[quantity],[rate],

    [rateUnit],[guard],[travel],[overtime],[purRequestDate],[functionalLead],[functionalLeadName],[hierarchicalMgr],[hierarchicalMgrName],[funct

    ion],[role],[experienceLevel],[gbu],[group],[project],[locationOfMission],[costcenter],[fincoCostcenter],[fincoCostcenterName],[fincoProject

    ],[fincoProjectName],[Itec],[esnCodeHQ],[siemensLocalNr],[wbsElement],[startMissionDate],[endMissionDate],[endMissionReason],[activityType],

    [poStoppedPrematureOn],[description] From dbo.[TBL_RfR_Assignments_test] Where (purchaseorder_key=@purchaseorder_key) AND

    (poItem=@poItem)</Property>

               <Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>

             </Properties>

             <Parameters>

               <Parameter Direction="In" Name="@purchaseorder_key">

                 <TypeDescriptor TypeName="System.String" Name="[purchaseorder_key]" IdentifierName="[purchaseorder_key]" />

               </Parameter>

               <Parameter Direction="In" Name="@poItem">

                 <TypeDescriptor TypeName="System.String" Name="[poItem]" IdentifierName="[poItem]" />

               </Parameter>

               <Parameter Direction="Return" Name="dbo.[TBL_RfR_Assignments_test]">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="dbo.[TBL_RfR_Assignments_test]DataReader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" Name="dbo.[TBL_RfR_Assignments_test]DataRecord">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.String" Name="purchaseorder_key" IdentifierName="[purchaseorder_key]" />

                         <TypeDescriptor TypeName="System.Int32" Name="consultant_key" />

                         <TypeDescriptor TypeName="System.Double" Name="fteorder" />

                         <TypeDescriptor TypeName="System.String" Name="poItem" IdentifierName="[poItem]" />

                         <TypeDescriptor TypeName="System.String" Name="poSAPCreationDate" />

                         <TypeDescriptor TypeName="System.String" Name="poStartDate" />

                         <TypeDescriptor TypeName="System.String" Name="poEndDate" />

                         <TypeDescriptor TypeName="System.String" Name="poMaterialNumber" />

                         <TypeDescriptor TypeName="System.Int32" Name="quantity" />

                         <TypeDescriptor TypeName="System.Decimal" Name="rate" />

                         <TypeDescriptor TypeName="System.String" Name="rateUnit" />

                         <TypeDescriptor TypeName="System.Boolean" Name="guard" />

                         <TypeDescriptor TypeName="System.Boolean" Name="travel" />

                         <TypeDescriptor TypeName="System.Boolean" Name="overtime" />

                         <TypeDescriptor TypeName="System.String" Name="purRequestDate" />

                         <TypeDescriptor TypeName="System.Int32" Name="functionalLead" />

                         <TypeDescriptor TypeName="System.String" Name="functionalLeadName" />

                         <TypeDescriptor TypeName="System.Int32" Name="hierarchicalMgr" />

                         <TypeDescriptor TypeName="System.String" Name="hierarchicalMgrName" />

                         <TypeDescriptor TypeName="System.String" Name="function" />

                         <TypeDescriptor TypeName="System.String" Name="role" />

                         <TypeDescriptor TypeName="System.String" Name="experienceLevel" />

                         <TypeDescriptor TypeName="System.String" Name="gbu" />

                         <TypeDescriptor TypeName="System.String" Name="group" />

                         <TypeDescriptor TypeName="System.String" Name="project" />

                         <TypeDescriptor TypeName="System.String" Name="locationOfMission" />

                         <TypeDescriptor TypeName="System.String" Name="costcenter" />

                         <TypeDescriptor TypeName="System.Int32" Name="fincoCostcenter" />

                         <TypeDescriptor TypeName="System.String" Name="fincoCostcenterName" />

                         <TypeDescriptor TypeName="System.Int32" Name="fincoProject" />

                         <TypeDescriptor TypeName="System.String" Name="fincoProjectName" />

                         <TypeDescriptor TypeName="System.String" Name="Itec" />

                         <TypeDescriptor TypeName="System.String" Name="esnCodeHQ" />

                         <TypeDescriptor TypeName="System.String" Name="siemensLocalNr" />

                         <TypeDescriptor TypeName="System.String" Name="wbsElement" />

                         <TypeDescriptor TypeName="System.String" Name="startMissionDate" />

                         <TypeDescriptor TypeName="System.String" Name="endMissionDate" />

                         <TypeDescriptor TypeName="System.String" Name="endMissionReason" />

                         <TypeDescriptor TypeName="System.String" Name="activityType" />

                         <TypeDescriptor TypeName="System.String" Name="poStoppedPrematureOn" />

                         <TypeDescriptor TypeName="System.String" Name="description" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Name="dbo.[TBL_RfR_Assignments_test]SpecificFinder" Type="SpecificFinder"

    ReturnParameterName="dbo.[TBL_RfR_Assignments_test]" ReturnTypeDescriptorName="dbo.[TBL_RfR_Assignments_test]DataReader"

    ReturnTypeDescriptorLevel="0" />

             </MethodInstances>

           </Method>

           <Method Name="dbo.[TBL_RfR_Assignments_test]IDEnumerator">

             <Properties>

               <Property Name="RdbCommandType" Type="System.String">Text</Property>

               <Property Name="RdbCommandText" Type="System.String">Select [purchaseorder_key],[poItem] from

    dbo.[TBL_RfR_Assignments_test]</Property>

             </Properties>

             <Parameters>

               <Parameter Direction="Return" Name="dbo.[TBL_RfR_Assignments_test]IDs">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="dbo.[TBL_RfR_Assignments_test]IDs">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral,

    PublicKeyToken=b77a5c561934e089" Name="dbo.[TBL_RfR_Assignments_test]">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.String" Name="purchaseorder_key" IdentifierName="[purchaseorder_key]" />

                         <TypeDescriptor TypeName="System.String" Name="poItem" IdentifierName="[poItem]" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Name="dbo.[TBL_RfR_Assignments_test]EnumeratorInstance" Type="IdEnumerator"

    ReturnParameterName="dbo.[TBL_RfR_Assignments_test]IDs" />

             </MethodInstances>

           </Method>

         </Methods>

       </Entity>

     </Entities>

    </LobSystem>

  • Please ignore my previous post. My issues where caused by wrong use of 'AND & OR Operators' as well as incorrect 'DefaultValues'.

    Kind regards,

    Yannis

  • · BDC Tool Design Surface Error Message : “Could not process Table ‘xyz’. Make sure you have SELECT rights

  • Hi this is my adf and it is keep on stating that there are no filters for this entity. am i doing something wrong?

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>

    <LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="Database" Version="1.0.0.0" Name="Cyl" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

     <LobSystemInstances>

       <LobSystemInstance Name="Cyl_Instance">

         <Properties>

           <Property Name="rdbconnectionData Source" Type="System.String">TEST</Property>

           <Property Name="rdbconnectionInitial Catalog" Type="System.String">C</Property>

           <Property Name="rdbconnectionUser ID" Type="System.String">sabg</Property>

           <Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">SqlServer</Property>

         </Properties>

       </LobSystemInstance>

     </LobSystemInstances>

     <Entities>

       <Entity EstimatedInstanceCount="10000" Name="[C].[dbo].[CYL]">

         <Identifiers>

           <Identifier TypeName="System.Int32" Name="CYL_USN" />

         </Identifiers>

         <Methods>

           <Method Name="Find_[C].[dbo].[CYL]">

             <Properties>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934">Text</Property>

               <Property Name="RdbCommandText" Type="System.String">Select "CYL_USN","CYL_NUMBER"from  [C].[dbo].[CYL] where CYL_USN=@CYL_USN</Property>

             </Properties>

    <FilterDescriptors>

    <FilterDescriptor Type="Comparison" Name="CYL_USN" />

    </FilterDescriptors>

             <Parameters>

               <Parameter Direction="In" Name="@CYL_USN">

                 <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CYL_USN" Name="CYL_USN" />

               </Parameter>

               <Parameter Direction="Return" Name="@[C].[dbo].[CYL]">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CYR_USN" Name="CYL_USN" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="CYL_NUMBER" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="STOCK_CODE" />                    

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

            <MethodInstances>

               <MethodInstance Type="SpecificFinder" ReturnParameterName="@[C].[dbo].[CYL]" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_[C].[dbo].[CYL]_Instance" />

             </MethodInstances>  

           </Method>

    <Method Name="FFind_[C].[dbo].[CYL]">

             <Properties>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

               <Property Name="RdbCommandText" Type="System.String">Select "CYL_USN","CYL_NUMBER" from  [C].[dbo].[CYL]</Property>

             </Properties>

             <Parameters>    

               <Parameter Direction="Return" Name="@[C].[dbo].[CYL]">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CYL_USN" Name="CYL_USN" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="CYL_NUMBER" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="VALVE_TPED_CONFORMANT" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="NEW_VALVE_BATCH_NUMBER" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="RESERVED_FOR" />

                         <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="MANUFACTURER" />                

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

            <MethodInstances>

               <MethodInstance Type="SpecificFinder" ReturnParameterName="@[C].[dbo].[CYL]" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FFind_[C].[dbo].[CYL]_Instance" />

             </MethodInstances>  

           </Method>

           <Method Name="FindAll_[C].[dbo].[CYL]">

             <Properties>

               <Property Name="RdbCommandType" Type="System.Data.CommandType, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

               <Property Name="RdbCommandText" Type="System.String"></Property>

             </Properties>

             <Parameters>

               <Parameter Direction="Return" Name="@[C].[dbo].[CYL]">

                 <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Reader">

                   <TypeDescriptors>

                     <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Record">

                       <TypeDescriptors>

                         <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="CYL_USN" Name="CYL_USN" />

                       </TypeDescriptors>

                     </TypeDescriptor>

                   </TypeDescriptors>

                 </TypeDescriptor>

               </Parameter>

             </Parameters>

             <MethodInstances>

               <MethodInstance Type="Finder" ReturnParameterName="@[C].[dbo].[CYL]" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_[C].[dbo].[CYL]_Instance" />

             </MethodInstances>

           </Method>

         </Methods>

       </Entity>

     </Entities>

    </LobSystem>

  • Hi,

    I have a BDC file with filter.

    when user enters text to search it retrives some records. Every the records, i have one link field. Here user can edit, view and delete the particular item. whenever user clicking on  the item. it redirects to some other page. user return back to BDC page. I have to hold the search value.

    Please help me to worked out this

Page 1 of 1 (11 items)