Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations gkittelson on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

BDC - Application Definition Import Failed

Status
Not open for further replies.

xcaliber2222

Programmer
Apr 10, 2008
70
US
Hello,

I have gone through the xml file for my application definition over and over, checked the syntax, etc. I'm almost there, but I can't find any information on this error:

Application definition import failed. The following error occurred: Setting IsCollection on TypeDescriptor with Name 'ProductDataRecord' and Id '<unavailable>' (belonging to Parameter with Name 'Contacts' and Id '94') will create two consecutive parent-child TypeDescriptors that have 'IsCollection' set. Collection TypeDescriptors may only have a single child TypeDescriptor, representing the structure of each element of the collection. Parameter name: isCollection Error was encountered at or just before Line: '88' and Position: '16'.

Here is the xml. THe lines in particular that it's complaining about are these:
Code:
     <Parameter Direction="Return" Name="Contacts">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader">
              
              <TypeDescriptors> 
                        
              <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataRecord">

Here's the full xml file:
Code:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<LobSystem xmlns:xsi="[URL unfurl="true"]http://www.w3.org/2001/XMLSchema-instance"[/URL] xsi:schemaLocation="[URL unfurl="true"]http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog[/URL] BDCMetadata.xsd" Type="Database" Version="1.0.0.1" Name="Contacts" xmlns="[URL unfurl="true"]http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">[/URL]
  <Properties>
   	<Property Name="Wildcard Character" Type="System.String">%</Property>
  </Properties>
  <LobSystemInstances>
    <LobSystemInstance Name="CRM Contacts">
      <Properties>
        <Property Name="Authentication Mode" Type="System.String">PassThrough</Property>
        <Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
         <Property Name="RdbConnection Data Source" Type="System.String">servername</Property>
		 <Property Name="RdbConnection Data Initial Catalog" Type="System.String">CRMtest</Property>
		 <Property Name="RdbConnection Data Integrated Security" Type="System.String">SSPI</Property>
		 <Property Name="RdbConnection Pooling" Type="System.String">false</Property>
      </Properties>
    </LobSystemInstance>
  </LobSystemInstances>
  <Entities>
    <Entity EstimatedInstanceCount="1000" Name="Contact">
      <Properties>
        <Property Name="Title" Type="System.String">LastName</Property>
      </Properties>
      <Identifiers>
        <Identifier TypeName="System.Int32" Name="tp_ID" />
      </Identifiers>
      <Methods>
        <Method Name="GetContacts">
          <Properties>
          	  <Property Name="RdbCommandText" Type="System.String">
          	  	select tp_ID
          	  	, modified
          	  	, tp_Editor
          	  	, LastName
          	  	, FirstName 
          	  	, FirstName + ' ' + LastName as FullName
          	  	, Customer
				, email
				, workphone
				from Contacts_VW          	  
          	  	where lastName like @lastName AND firstName like @firstName AND tp_id = Case When @tp_ID = 0 then tp_ID else @tp_ID End
          	  </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="Comparison" Name="tp_ID" />
            <FilterDescriptor Type="Wildcard" Name="LastName">
             <Properties>
	          <Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
	          <Property Name="Comparator" Type="System.String">Equals</Property>
	          <Property Name="IsDefault" Type="System.Boolean">true</Property>
	         </Properties> 
	        </FilterDescriptor>
	        <FilterDescriptor Type="Wildcard" Name="FirstName">
	        <Properties>
	        	<Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>	
	        </Properties>
	        </FilterDescriptor>
          </FilterDescriptors>
          <Parameters>
            <Parameter Direction="In" Name="@tp_ID">
              <TypeDescriptor TypeName="System.Int32" IdentifierName="tp_ID" AssociatedFilter="tp_ID" Name="tp_ID">
              	 <DefaultValues>
              	   	<DefaultValue MethodInstanceName="ContactFinderInstance" Type="System.Int32">0</DefaultValue>
               	 </DefaultValues>
              </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@lastName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="LastName" Name="lastName">
             	<DefaultValues>
              		<DefaultValue MethodInstanceName="ContactFinderInstance" Type="System.String">%</DefaultValue>
               		<DefaultValue MethodInstanceName="ContactSpecificFinderInstance" Type="System.String">%</DefaultValue>
               	</DefaultValues>
	          </TypeDescriptor>
            </Parameter>
            <Parameter Direction="In" Name="@firstName">
              <TypeDescriptor TypeName="System.String" AssociatedFilter="FirstName" Name="firstName">
             	<DefaultValues>
              		<DefaultValue MethodInstanceName="ContactFinderInstance" Type="System.String">%</DefaultValue>
               		<DefaultValue MethodInstanceName="ContactSpecificFinderInstance" Type="System.String">%</DefaultValue>
               	</DefaultValues>
	          </TypeDescriptor>
            </Parameter>
            <Parameter Direction="Return" Name="Contacts">
              <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataReader">
              
              <TypeDescriptors> 
                        
              <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="ProductDataRecord">
                            
              <TypeDescriptors>
              
              <TypeDescriptor TypeName="System.Int32" IdentifierName="tp_ID" Name="tp_ID">
              	<LocalizedDisplayNames>
                	<LocalizedDisplayName LCID="1033">tp_ID</LocalizedDisplayName>
                </LocalizedDisplayNames>
                	<Properties>
                  		<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                      </Properties>
              </TypeDescriptor>                    
              <TypeDescriptor TypeName="System.String" Name="FirstName">
              	<LocalizedDisplayNames>
            		<LocalizedDisplayName LCID="1033">FirstName</LocalizedDisplayName>
                </LocalizedDisplayNames>
	     	      	<Properties>
                     	<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
             	 	</Properties>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="FirstName">
              	<LocalizedDisplayNames>
           			<LocalizedDisplayName LCID="1033">FirstName</LocalizedDisplayName>
              	</LocalizedDisplayNames>
		      		<Properties>
                      	<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                    </Properties>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="LastName">
              	<LocalizedDisplayNames>
             		<LocalizedDisplayName LCID="1033">LastName</LocalizedDisplayName>
             	</LocalizedDisplayNames>
		      		<Properties>
                 		<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
                    </Properties>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="FullName">
          		<LocalizedDisplayNames>
                	<LocalizedDisplayName LCID="1033">FullName</LocalizedDisplayName>
           		</LocalizedDisplayNames>
		      		<Properties>
                   		<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
              		</Properties>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="email">
              	<LocalizedDisplayNames>
  					<LocalizedDisplayName LCID="1033">email</LocalizedDisplayName>
                </LocalizedDisplayNames>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="Customer">
             	<LocalizedDisplayNames>
                	<LocalizedDisplayName LCID="1033">Customer</LocalizedDisplayName>
            	</LocalizedDisplayNames>
		      </TypeDescriptor>
		      <TypeDescriptor TypeName="System.String" Name="Workphone">
              	<LocalizedDisplayNames>
           			<LocalizedDisplayName LCID="1033">Workphone</LocalizedDisplayName>
            	</LocalizedDisplayNames>
		      </TypeDescriptor>
		     </TypeDescriptors>
		    </TypeDescriptor>
		   </TypeDescriptors>
		  </TypeDescriptor>
	     </Parameter>
        </Parameters>
          <MethodInstances>
            <MethodInstance Type="Finder" ReturnParameterName="Contacts" ReturnTypeDescriptorName="ProductDataReader" ReturnTypeDescriptorLevel="0" Name="ContactFinderInstance">
            </MethodInstance>
            <MethodInstance Type="SpecificFinder" ReturnParameterName="Contacts" ReturnTypeDescriptorName="ProductDataReader" ReturnTypeDescriptorLevel="0" Name="ContactSpecificFinderInstance">
            </MethodInstance>
          </MethodInstances>
        </Method>
      </Methods>
     </Entity>
    </Entities>
   </LobSystem>

Any help would be greatly appreciated.

Thanks,
Alejandro
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top