Monthly Archives: August 2012

How to Export SharePoint 2010 External Content Types (BDC Metadata Models) to Xml File

External content types are defined through XML files referred to as “BDC metadata models”. These BDC metadata models can be created in both SharePoint Designer and Visual Studio. The technique used to create the BDC metadata models determines the technique used to export it.

  • Models created using Visual Studio can be exported directly through the SharePoint UI in a browser (via the BDC service application).
  • Models created using SharePoint Designer must be exported using SharePoint Designer


How to Export BDC Metadata Model using the BDC Service Application

Open SharePoint Central Administration | Application Management | Manage Service Applications


Select the Business Data Connectivity Service


Change the view drop-down to BDC Models


From the context menu on the BDC Model choose Export BDC Model


Ensure the file type is set to Model to Export


Select the save location. The exported file is an xml file saved with a .bdcm file extension (Visual Studio SharePoint BDC Designer File)



How to Export BDC Metadata Model using SharePoint Designer

Open the SharePoint site in SharePoint Designer and select External Content Types


Select the External Content Type and choose the Export BDC Model ribbon button


Provide a name for the exported model and the settings profile to export.


The settings refer to the Default and Client settings profiles under on the Connection Properties.


Select save location. The exported file is an xml file saved with a .bdcm file extension (Visual Studio SharePoint BDC Designer File)


Issues Setting Up External Content Type Filters in SharePoint Designer

I was recently investigating some of the options with External Content Type (ECT) filters that you can setup in SharePoint Designer. In particular, the following 2 settings did not appear to make any difference if I enabled or disabled them.

  • Is Default
  • Use to create match list in external item picker


At first I thought I has misunderstood the effect of these settings. The hover over text in SharePoint Designer is actually quite informative and provides the following.

Is Default: This filter is used by default when searching for items in the external picker

Use to create match list in external item picker: Used to create a list of possible matches in the external item picker when user input cannot be resolved

Ok, so this goes some way to confirming what these settings should do, but this is what I see when using the external picker in SharePoint.

The default filter in the external picker is simply the last filter (that accepts user input) I have configured (even if I haven’t checked “Is Default”). No matter what I do in SharePoint Designer I can’t get this setting to work. The only way to set the default filter is to make it the last filter in the list of filters.

As for the match list… if I uncheck the “Use to create match list in external item picker” for all the filters SharePoint still seems to match against all filters. Again this setting appears to have no effect.

Enter much scratching and searching before the answer surfaced. The issue is actually a common issue in both cases and I found it first when investigating the create match list setting. This setting actually corresponds to a property of the filter called UsedForDisambiguation. Here’s an extract from an MSDN article on recommendations for setting up filters for BDC Model Best Practices for Duet Enterprise.


So I wonder what the underlying BDC Model (xml) looks like that SharePoint Designer is creating. Here’s the result of exporting the BDC Model.


As suspected SharePoint Designer is ALWAYS creating elements in the xml model for these settings with a value of either true or false (as you have configured it in SharePoint Designer). But reading the MSDN documentation, SharePoint only looks to see if the element is PRESENT in the xml, and it doesn’t care what value it is. This now explains the behaviour I was experiencing, it was as though every filter had “Is Default” checked and “UsedForDisambiguation” checked.

%d bloggers like this: