locked
Business Data Catalog: Application Definition File issue RRS feed

  • Question

  • I created my BDC application definition file with the help of Application Definition Designer. Before exporting the file, I executed the methods and they are all executing fine without issues. I then exported the file and imported it in my SSP which got imported without issues.

    However, when I try to add the Business Data List webpart and tried to browse the business data type, I am unable to get the just imported application file. I tried the same steps with BDC meta man and I am able to view my Business data in SharePoint.

    Do I need to do any specific changes before exporting my ADF file while using Application Definition Designer?
    Thursday, June 21, 2012 6:50 AM

Answers

All replies

  • Hi,

    Can you compare these ADF files and find the difference?


    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog

    Thursday, June 21, 2012 9:52 AM
  • I tried and compared. There is a difference of just one extra method when I created the App definition file through BDC metaman. One more thing i noticed was that, there was an article which stated to change the MethodInstanceType from SpecificFinder to Finder. I changed that. Still the same results. Any help would be appreciated.
    Thursday, June 21, 2012 10:06 AM
  • Please post here ADF that doesn't work.

    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog

    Thursday, June 21, 2012 10:37 AM
  • Here it is:

    <?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="AdventureWorks" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
      <LobSystemInstances>
        <LobSystemInstance Name="AdventureWorks_Instance">
          <Properties>
            <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>
            <Property Name="rdbconnectionData Source" Type="System.String">local</Property>
            <Property Name="rdbconnectionInitial Catalog" Type="System.String">AdventureWorks</Property>
            <Property Name="rdbconnectionIntegrated Security" Type="System.Boolean">true</Property>
            <Property Name="rdbconnectionUser ID" Type="System.String">test</Property>
            <Property Name="rdbconnectionPassword" Type="System.String">test</Property>
          </Properties>
        </LobSystemInstance>
      </LobSystemInstances>
      <Entities>
        <Entity EstimatedInstanceCount="10000" Name="[AdventureWorks].[Person].[Contact]">
          <Identifiers>
            <Identifier TypeName="System.Int32" Name="ContactID" />
          </Identifiers>
          <Methods>
            <Method Name="Find_[AdventureWorks].[Person].[Contact]">
              <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 "ContactID","NameStyle","Title","FirstName","MiddleName","LastName","Suffix","EmailAddress","EmailPromotion","Phone","PasswordHash","PasswordSalt","AdditionalContactInfo","rowguid","ModifiedDate" from  [AdventureWorks].[Person].[Contact] where ContactID=@ContactID</Property>
              </Properties>
              <Parameters>
                <Parameter Direction="In" Name="@ContactID">
                  <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="ContactID" Name="ContactID" />
                </Parameter>
                <Parameter Direction="Return" Name="@[AdventureWorks].[Person].[Contact]">
                  <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="ContactID" Name="ContactID" />
                          <TypeDescriptor TypeName="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="NameStyle" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Title" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="FirstName" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="MiddleName" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="LastName" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Suffix" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="EmailAddress" />
                          <TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="EmailPromotion" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Phone" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="PasswordHash" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="PasswordSalt" />
                          <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="AdditionalContactInfo" />
                          <TypeDescriptor TypeName="System.Guid, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="rowguid" />
                          <TypeDescriptor TypeName="System.DateTime, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="ModifiedDate" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="SpecificFinder" ReturnParameterName="@[AdventureWorks].[Person].[Contact]" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="Find_[AdventureWorks].[Person].[Contact]_Instance" />
              </MethodInstances>
            </Method>
            <Method Name="FindAll_[AdventureWorks].[Person].[Contact]">
              <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 "ContactID" from  [AdventureWorks].[Person].[Contact]</Property>
              </Properties>
              <Parameters>
                <Parameter Direction="Return" Name="@[AdventureWorks].[Person].[Contact]">
                  <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="ContactID" Name="ContactID" />
                        </TypeDescriptors>
                      </TypeDescriptor>
                    </TypeDescriptors>
                  </TypeDescriptor>
                </Parameter>
              </Parameters>
              <MethodInstances>
                <MethodInstance Type="IdEnumerator" ReturnParameterName="@[AdventureWorks].[Person].[Contact]" ReturnTypeDescriptorName="Reader" ReturnTypeDescriptorLevel="0" Name="FindAll_[AdventureWorks].[Person].[Contact]_Instance" />
              </MethodInstances>
            </Method>
          </Methods>
        </Entity>
      </Entities>
    </LobSystem>


    Thursday, June 21, 2012 11:56 AM
  • You have to define Finder method in your ADF. Your current ADF should be visible in Business Data Item Web Part.

    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog


    Thursday, June 21, 2012 12:10 PM
  • Do I need to manually add a finder method? If yes, can you please show me how do that and with what values?
    Thursday, June 21, 2012 12:18 PM
  • You may add it manually and you may take it from the ADF generated with BDC MetaMan.

    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog

    Thursday, June 21, 2012 12:28 PM
  • But when we build the App Definition file with Application Definition Designer, all methods should be built. Is there a way I can generate it automatically via the tools itself? Manually adding or copying from BDC is a temp solution.
    Thursday, June 21, 2012 12:37 PM
  • Please find a couple examples (how to create ADF with Application Definition Designer) in these articles:


    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog

    Thursday, June 21, 2012 2:16 PM
  • Thanks for the reply Dmitry. I already followed the same links to start with and was facing issues there after. If you have any more help articles would be really grateful.
    Friday, June 22, 2012 3:01 AM
  • This is a bug in the Application Definition Designer. Please take a look at this article that contains possible workaround There are no Business Data Types loaded in the Catalog – Business Data Type Picker

    Dmitry

    Lightning Tools LogoLightning Tools Check out our SharePoint tools and web parts | Lightning Tools Blog


    Friday, June 22, 2012 11:04 AM