xcaliber2222
Programmer
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:
Here's the full xml file:
Any help would be greatly appreciated.
Thanks,
Alejandro
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