JXJ

I have the BDC configured to pull data from a table in one of our databases. The table has an ID column and a description column.

I set up a Sharepoint list with a column that does a lookup from the BDC, returning the ID value into the Sharepoint list column.

That works, but when the user clicks the Browse icon (book) when entering data into the list, the list that displays only shows the ID field. I need it to display the description field also - otherwise, the ID field is almost meaningless to a user.

Is there a way to do this

I found a previous post in microsoft.public.sharepoint.development_and_programming that said to add something like this:

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

but it doesn't say exactly where to add it - I've tried various places, but none seem to work.



Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

JXJ

I found it - the post I found referred to a "ShowInPicker" property, but that post was incorrect - it should be "DisplayByDefault".





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

Keith McArt

Did you have to set both fields as Identifiers in the App Def file I've run into the same problem you had, where I wanted to display a text field in the picker, and the only way I was able to do that was to set it as an identifier...problem is, sharepoint apparently encodes the identifier field(s) and stores it in a column in the database. For any selections that have long descriptions (more than 55 chars, actually) the encoded values it is generating are too big for the column in the database, so it is failing. I would love to find a way to have the descriptive field show in the picker w/out having to set it as an indentifier.

Thx,

Keith





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

JXJ

No, I didn't.

In the , I have this:

<Parameters>
<Parameter Direction="Return" Name="dbo.[Properties]">
<TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="dbo.[Projects]DataReader" IsCollection="true">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="dbo.[Projects]DataRecord">
<TypeDescriptors>
<TypeDescriptor TypeName="System.String" IdentifierName="[ProjectID]" Name="ProjectID">
<Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="Address">
<Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="City" />
<TypeDescriptor TypeName="System.String" Name="State" />
<TypeDescriptor TypeName="System.String" Name="Zip" />

By adding the this within the <TypeDescriptor> tag for the column:

Code Snippet

<Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
</Properties>

It then did display that column in the list.





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

Nick Swan

Hi,

has anybody else managed to get this working I'm stuck with 1 column in the pop up chose values

Thanks

Nick






Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

Nick Swan

hmmm weird, it was

<TypeDescriptor TypeName="System.String" Name="Tester" >
<Properties>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>

That I needed to get it to display in the picker for me.

Nick






Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

JXJ

Actually, now that I look in my file, I have both options in there (DisplayByDefault and ShowInPicker).





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

bsmith9

Same issue here...can't get additional columns to display...I inserted the ShowInPicker and DisplayByDefault options but there must be additional xml goo that I need Filters

< xml version="1.0" encoding="utf-8" >

- <LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlnsTongue TiedchemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.XSD" Type="Database" Version="1.1.0.0" Name="SCMALOBSystem" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
- <Properties>
<Property Name="WildcardCharacter" Type="System.String">%</Property>
</Properties>
+ <LobSystemInstances>
- <LobSystemInstance Name="SCMAInstance">
- <Properties>
<Property Name="AuthenticationMode" Type="System.String">WindowsCredentials</Property>
<Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
<Property Name="RdbConnection Data Source" Type="System.String">SCMADEV01</Property>
<Property Name="RdbConnection Initial Catalog" Type="System.String">SCMA</Property>
<Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property>
<Property Name="RdbConnection Pooling" Type="System.String">false</Property>
<Property Name="SsoApplicationId" Type="System.String">SCMA_db</Property>
<Property Name="SsoProviderImplementation" Type="System.String">Microsoft.SharePoint.Portal.SingleSignon.SpsSsoProvider, Microsoft.SharePoint.Portal.SingleSignon, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
</Properties>
</LobSystemInstance>
</LobSystemInstances>
- <Entities>
- <Entity EstimatedInstanceCount="0" Name="dbo.tblAvailableClasses">
- <Identifiers>
<Identifier TypeName="System.String" Name="[CourseNumber]" />
</Identifiers>
- <Methods>
- <Method Name="Getdbo.[tblAvailableClasses]">
- <Properties>
<Property Name="RdbCommandText" Type="System.String">Select [CourseNumber],[Name],[HoursCounted],[CourseDescription],[CourseType] From dbo.[tblAvailableClasses]</Property>
<Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
</Properties>
- <Parameters>
- <Parameter Direction="Return" Name="dbo.[tblAvailableClasses]">
- <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="dbo.[tblAvailableClasses]DataReader">
- <TypeDescriptors>
- <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="dbo.[tblAvailableClasses]DataRecord">
- <TypeDescriptors>
<TypeDescriptor TypeName="System.String" Name="CourseNumber" IdentifierName="[CourseNumber]" />
<TypeDescriptor TypeName="System.String" Name="Name" />
<TypeDescriptor TypeName="System.Single" Name="HoursCounted" />
<TypeDescriptor TypeName="System.String" Name="CourseDescription" />
<TypeDescriptor TypeName="System.Byte" Name="CourseType" />
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
- <MethodInstances>
<MethodInstance Name="dbo.[tblAvailableClasses]Finder" Type="Finder" ReturnParameterName="dbo.[tblAvailableClasses]" ReturnTypeDescriptorName="dbo.[tblAvailableClasses]DataReader" ReturnTypeDescriptorLevel="0" />
</MethodInstances>
</Method>
- <Method Name="dbo.[tblAvailableClasses]SpecificFinder">
- <Properties>
<Property Name="RdbCommandText" Type="System.String">Select [CourseNumber],[Name],[HoursCounted],[CourseDescription],[CourseType] From dbo.[tblAvailableClasses] Where ([CourseNumber]=@CourseNumber)</Property>
<Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
</Properties>
- <FilterDescriptors>
<FilterDescriptor Type="Comparison" Name="[CourseNumber]" />
</FilterDescriptors>
- <Parameters>
- <Parameter Direction="In" Name="@CourseNumber">
<TypeDescriptor TypeName="System.String" Name="[CourseNumber]" AssociatedFilter="[CourseNumber]" IdentifierName="[CourseNumber]" />
</Parameter>
- <Parameter Direction="Return" Name="dbo.[tblAvailableClasses]">
- <TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="dbo.[tblAvailableClasses]DataReader">
- <TypeDescriptors>
- <TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="dbo.[tblAvailableClasses]DataRecord">
- <TypeDescriptors>
<TypeDescriptor TypeName="System.String" Name="CourseNumber" IdentifierName="[CourseNumber]" />
- <TypeDescriptor TypeName="System.String" Name="Name">
- <Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>
<TypeDescriptor TypeName="System.Single" Name="HoursCounted" />
<TypeDescriptor TypeName="System.String" Name="CourseDescription" />
<TypeDescriptor TypeName="System.Byte" Name="CourseType" />
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
</Parameters>
- <MethodInstances>
<MethodInstance Name="dbo.[tblAvailableClasses]SpecificFinder" Type="SpecificFinder" ReturnParameterName="dbo.[tblAvailableClasses]" ReturnTypeDescriptorName="dbo.[tblAvailableClasses]DataReader" ReturnTypeDescriptorLevel="0" />
</MethodInstances>
</Method>
</Methods>
</Entity>
</Entities>
</LobSystem>




Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

Nick Swan

from memory you need to have the showinpicker property against the finders properties. Makes sense I think as it's the Finder methods that is executed in pick list...






Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

JXJ

It's working for me. Here is a scaled down version of my xml file - you can compare it to yours.

(I'm still dealing with two problems though, so I can't say it's 100% correct - first, nothing displays in the picker list until I enter criteria and click the search button - I'm hoping there's a way to just display a full list without having to enter anything and second, for some reason when I use a BDC column in a list, I can't click on it to display the profile, but I can drop down the menu next to the BDC data field and click View Profile to view it.)

Code Snippet

< 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.19" Name="BDC Data" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">
<Properties>
<Property Name="WildcardCharacter" Type="System.String">%</Property>
</Properties>
<LobSystemInstances>
<LobSystemInstance Name="BDC Data">

<Properties>
<Property Name="AuthenticationMode" Type="System.String">RdbCredentials</Property>
<Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
<Property Name="RdbConnection Data Source" Type="System.String">datawarehouse</Property>
<Property Name="RdbConnection Initial Catalog" Type="System.String">Portal</Property>
<Property Name="RdbConnection Integrated Security" Type="System.String"></Property>
<Property Name="RdbConnection Pooling" Type="System.String">false</Property>
<Property Name="SsoApplicationId" Type="System.String">BDC SSO</Property>
<Property Name ="SsoProviderImplementation" Type="System.String">Microsoft.SharePoint.Portal.SingleSignon.SpsSsoProvider, Microsoft.SharePoint.Portal.SingleSignon, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Property>
</Properties>

</LobSystemInstance>
</LobSystemInstances>

<Entities>

<Entity EstimatedInstanceCount="1000" Name="BusinessUnits">

<Properties>
<Property Name="Address" Type="System.String">Address</Property>
</Properties>
<Identifiers>
<Identifier Name="BusUnit" TypeName="System.String" />
</Identifiers>

<Methods>

<Method Name="GetBusinessUnits">
<Properties>
<Property Name="RdbCommandText" Type="System.String">
SELECT * FROM BusinessUnits WHERE BusUnit LIKE @BusUnit AND [Address] LIKE @Address AND Region LIKE @Region AND City LIKE @City AND Manager LIKE @Manager
</Property>
<Property Name="RdbCommandType" Type="System.Data.CommandType">Text</Property>
</Properties>

<FilterDescriptors>
<!-- Define the filters supported by the back-end method (or sql query) here. -->
<FilterDescriptor Type="Wildcard" Name="BusUnit" />
<FilterDescriptor Type="Wildcard" Name="Address">
<Properties>
<Property Name="UsedForDisambiguation" Type="System.Boolean">true</Property>
</Properties>
</FilterDescriptor>
<FilterDescriptor Type="Wildcard" Name="Region" />
<FilterDescriptor Type="Wildcard" Name="City" />
<FilterDescriptor Type="Wildcard" Name="Manager" />
</FilterDescriptors>

<Parameters>

<Parameter Direction="In" Name="@BusUnit">
<TypeDescriptor TypeName="System.String" AssociatedFilter="BusUnit" Name="BusUnit" IdentifierName="BusUnit">
<DefaultValues>
<DefaultValue MethodInstanceName="PropertyFinderInstance" Type="System.String">%</DefaultValue>
<DefaultValue MethodInstanceName="PropertySpecificFinderInstance" Type="System.String">%</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>

<Parameter Direction="In" Name="@Address">
<TypeDescriptor TypeName="System.String" AssociatedFilter="Address" Name="Address">
<DefaultValues>
<DefaultValue MethodInstanceName="PropertyFinderInstance" Type="System.String">%</DefaultValue>
<DefaultValue MethodInstanceName="PropertySpecificFinderInstance" Type="System.String">%</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>

<Parameter Direction="In" Name="@Region">
<TypeDescriptor TypeName="System.String" AssociatedFilter="Region" Name="Region">
<DefaultValues>
<DefaultValue MethodInstanceName="PropertyFinderInstance" Type="System.String">%</DefaultValue>
<DefaultValue MethodInstanceName="PropertySpecificFinderInstance" Type="System.String">%</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>

<Parameter Direction="In" Name="@City">
<TypeDescriptor TypeName="System.String" AssociatedFilter="City" Name="City">
<DefaultValues>
<DefaultValue MethodInstanceName="PropertyFinderInstance" Type="System.String">%</DefaultValue>
<DefaultValue MethodInstanceName="PropertySpecificFinderInstance" Type="System.String">%</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>

<Parameter Direction="In" Name="@Manager">
<TypeDescriptor TypeName="System.String" AssociatedFilter="Manager" Name="Manager">
<DefaultValues>
<DefaultValue MethodInstanceName="PropertyFinderInstance" Type="System.String">%</DefaultValue>
<DefaultValue MethodInstanceName="PropertySpecificFinderInstance" Type="System.String">%</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>

<Parameter Direction="Return" Name="BusinessUnits">

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

<TypeDescriptors>

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

<TypeDescriptors>

<TypeDescriptor TypeName="System.String" IdentifierName="BusUnit" Name="BusUnit">
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">BusUnit</LocalizedDisplayName>
</LocalizedDisplayNames>
<Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>

<TypeDescriptor TypeName="System.String" Name="Address" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Address</LocalizedDisplayName>
</LocalizedDisplayNames>
<Properties>
<Property Name="DisplayByDefault" Type="System.Boolean">true</Property>
<Property Name="ShowInPicker" Type="System.Boolean">true</Property>
</Properties>
</TypeDescriptor>

<TypeDescriptor TypeName="System.String" Name="City">
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="State">
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="ZIP">
</TypeDescriptor>
<TypeDescriptor TypeName="System.String" Name="Manager">
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Manager</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>

</TypeDescriptors>

</TypeDescriptor>

</TypeDescriptors>

</TypeDescriptor>

</Parameter>

</Parameters>

<MethodInstances>
<MethodInstance Name="BusUnitFinderInstance" Type="Finder" ReturnParameterName="BusinessUnits" />
<MethodInstance Name="BusUnitSpecificFinderInstance" Type="SpecificFinder" ReturnParameterName="BusinessUnits" />
</MethodInstances>

</Method>
</Methods>

</Entity>

</Entities>

</LobSystem>





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

bsmith9

tnx Nick...that worked...

How/where do you find that info





Re: SharePoint - Business Data Catalog Showing multiple BDC item fields in pick list

Nick Swan

A mixture of the SDK and constant playing around with the BDC I guess :-)