<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.dotnetmafia.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Corey Roth [MVP] : Business Data Catalog, SharePoint</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/SharePoint/default.aspx</link><description>Tags: Business Data Catalog, SharePoint</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Slides from my talks at SPTechCon Boston 2011</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2011/06/20/slides-from-my-talks-at-sptechcon-boston-2011.aspx</link><pubDate>Mon, 20 Jun 2011 21:54:46 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:4801</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=4801</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2011/06/20/slides-from-my-talks-at-sptechcon-boston-2011.aspx#comments</comments><description>&lt;p&gt;This post is long overdue, but better late than never.&amp;#160; I had a great time at SPTechCon 2011 in Boston.&amp;#160; I had the chance to meet a lot of people in person for the first time that I had only previously known through twitter.&amp;#160; I gave two talks this year.&amp;#160; The first being my Instant ECM talk showing you how to leverage out-of-the-box SharePoint ECM features.&amp;#160; My second talk was an advanced developer talk discussing how to build Business Data Connectivity models and custom connectors.&amp;#160; My slides can be found on SlideShare.&amp;#160; It was definitely great to get out to the east coast and see how people were using SharePoint.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.slideshare.net/CoreyRoth/instant-ecm-with-sharepoint-2010-sptechcon-boston-2011"&gt;Instant ECM with SharePoint 2010 - SPTechCon Boston 2011 Slides&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.slideshare.net/CoreyRoth/advanced-bcs-business-data-connectivity-models-and-custom-connectors-sptechcon-boston-2011"&gt;Advanced BCS: Business Data Connectivity Models and Custom Connectors – SPTechCon 2011 Slides&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Follow me on twitter &lt;a href="http://twitter.com/coreyroth"&gt;@coreyroth&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=4801" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Presentations/default.aspx">Presentations</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/ECM/default.aspx">ECM</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SPTechCon/default.aspx">SPTechCon</category></item><item><title>How to: Create a BCS Profile Page in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/15/how-to-create-a-bcs-profile-page-in-sharepoint-2010.aspx</link><pubDate>Thu, 15 Apr 2010 20:36:42 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:3095</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>16</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=3095</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/15/how-to-create-a-bcs-profile-page-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;I was working on updating my Search demo for &lt;a href="http://twitter.com/#search?q=spshou"&gt;#spshou&lt;/a&gt; and my BCS search results were really ugly.&amp;#160; I didn’t have a default action specified on my search results, nor did I have a profile page, so instead the search results would give me the BDC protocol URL which is not usable by an end user.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSearchResults_79677100.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSSearchResults" border="0" alt="BCSSearchResults" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSearchResults_thumb_58E0314E.png" width="364" height="255" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In MOSS 2007, if you did not create a default action, it would automatically create a profile page for you.&amp;#160; In SharePoint 2010, this is not the case.&amp;#160; It’s pretty easy but there are a few steps involved.&lt;/p&gt;  &lt;p&gt;Start by opening SharePoint Designer and open your external content type in question.&amp;#160; In the top right, you will find the &lt;em&gt;Create Profile Page&lt;/em&gt; button.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSharePointDesignerNewProfilePageButton_2D2F6752.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSSharePointDesignerNewProfilePageButton" border="0" alt="BCSSharePointDesignerNewProfilePageButton" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSharePointDesignerNewProfilePageButton_thumb_5807CB64.png" width="80" height="91" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Give it a click.&amp;#160; However, if you haven’t configured a profile host URL, you will get the following error.&amp;#160; Chances are you haven’t configured one of these yet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSharePointDesignerProfilePageError_5EBAD4E7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSSharePointDesignerProfilePageError" border="0" alt="BCSSharePointDesignerProfilePageError" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSharePointDesignerProfilePageError_thumb_774A7237.png" width="353" height="116" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Unable to provision profile page because the profile host URL was not specified.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;After doing a search, I found only one usable result on the Internet on &lt;a href="http://social.technet.microsoft.com/Forums/en/sharepoint2010setup/thread/90923a9c-0bc6-40a4-b00e-82eed95e2b25?prof=required"&gt;MSDN forums&lt;/a&gt;.&amp;#160; It had the answer, but it wasn’t clear to me at first.&amp;#160; It said to use the &lt;em&gt;Configure &lt;/em&gt;button in the ribbon.&amp;#160; However, I was looking in SPD, and in fact its in the Service Application instead as you can see below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSServiceApplicationConfigureButton_04B0853E.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSServiceApplicationConfigureButton" border="0" alt="BCSServiceApplicationConfigureButton" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSServiceApplicationConfigureButton_thumb_4B2D7546.png" width="453" height="270" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Select the application you want to edit and then you can click &lt;em&gt;Configure&lt;/em&gt;.&amp;#160; This brings up the popup shown below which prompts you for a URL of the site that to keep you profile pages in.&amp;#160; I like this since you can configure these at a per application definition level now instead of one location for every entity on the SSP.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSConfigureProfileSite_718F5891.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSConfigureProfileSite" border="0" alt="BCSConfigureProfileSite" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSConfigureProfileSite_thumb_510818DF.png" width="344" height="167" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I decided that I wanted my profile pages in a specific subsite, so I went ahead and created a new one.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSProfileNewProfileSite_02938675.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSProfileNewProfileSite" border="0" alt="BCSProfileNewProfileSite" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSProfileNewProfileSite_thumb_1403E74D.png" width="561" height="192" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After I finished configuring my site and setting up the Profile Page Host, I was able to go back to SPD and click the button.&amp;#160; This pops up a progress bar, but it doesn’t really give you any visual indication that anything is done.&amp;#160; I then went back to my content sources and recrawled my BCS content source.&amp;#160; When it finished, I executed a new search, and now I get actual usable URLs in my search results.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSearchResultsProfilePage_4F574D0B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSSearchResultsProfilePage" border="0" alt="BCSSearchResultsProfilePage" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSearchResultsProfilePage_thumb_67E6EA5B.png" width="383" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see it generated kind of a long URL with _bdc in it.&amp;#160; I believe the http and sp2010 come from the namespace specified in SharePoint Designer.&amp;#160; Finally it names a page after the entity itself.&amp;#160; So far, I’m not sure if any of the page name stuff is configurable or not, so I need to look into that.&amp;#160; Once you click on the page, you get a simple profile page to display the results.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSProfilePageComplete_0E48CDA7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSProfilePageComplete" border="0" alt="BCSProfilePageComplete" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSProfilePageComplete_thumb_6DC18DF4.png" width="244" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It’s simple, but it has all the pertinent information from the underlying database table.&amp;#160; It beats what I had before.&amp;#160; I think a &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/01/29/adding-a-default-action-to-a-business-data-catalog-entity.aspx"&gt;custom default action&lt;/a&gt; can be specified just like in MOSS 2007, but I get the feeling you have to edit the application definition XML manually to make it happen.&amp;#160; I’m still looking into it.&amp;#160; Anyhow, I hope this helps, the next time you try to use the BCS.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=3095" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Tulsa SharePoint Interest Group – How the SharePoint 2010 BCS will change your life</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/09/tulsa-sharepoint-interest-group-how-the-sharepoint-2010-bcs-will-change-your-life.aspx</link><pubDate>Fri, 09 Apr 2010 14:51:49 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:3059</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=3059</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/09/tulsa-sharepoint-interest-group-how-the-sharepoint-2010-bcs-will-change-your-life.aspx#comments</comments><description>&lt;p&gt;I’m excited to bring a SharePoint 2010 talk to the Tulsa SharePoint Interest Group this Monday (4/12).&amp;#160; Here is a brief summary.&lt;/p&gt;  &lt;p&gt;How many hours have your wasted building simple ASP.NET applications to do nothing more than simple CRUD operations against a database?&amp;#160; Many tools have made this easier, but now it&amp;#39;s so easy, you&amp;#39;ll be up and running in minutes.&amp;#160; This session will show you hot easy it is to get started integrating external data from your line of business systems in SharePoint 2010.&amp;#160; You will learn how to register an external content type using SharePoint Designer based upon a database table or web service and then build an external list.&amp;#160; With external lists, you will see how you can perform CRUD operations on your line of business directly from SharePoint without ever having to do manual configuration in XML files.&amp;#160; Finally, we will walk through how to create custom edit forms for your list using InfoPath 2010.&lt;/p&gt;  &lt;p&gt;For more information or to register, click &lt;a href="http://www.tulsasharepoint.com/Lists/Events%20Calendar/DispForm.aspx?ID=16&amp;amp;Source=http://www.tulsasharepoint.com/default.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also, Tulsa SharePoint Interest Group is now on twitter &lt;a href="http://twitter.com/TulsaSPIG"&gt;@TulsaSPIG&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=3059" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Tulsa+SharePoint+Interest+Group/default.aspx">Tulsa SharePoint Interest Group</category></item><item><title>Speaking about How Business Connectivity Services (BCS) may change your life in SharePoint 2010 at Tulsa SharePoint Interest Group on 4/12</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/03/09/speaking-about-how-business-connectivity-services-bcs-may-change-your-life-in-sharepoint-2010-at-tulsa-sharepoint-interest-group-on-4-12.aspx</link><pubDate>Tue, 09 Mar 2010 23:00:09 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2936</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2936</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/03/09/speaking-about-how-business-connectivity-services-bcs-may-change-your-life-in-sharepoint-2010-at-tulsa-sharepoint-interest-group-on-4-12.aspx#comments</comments><description>&lt;p&gt;Ok, so the title may be overly dramatic, but the BCS is really freaking cool now.&amp;#160; With SharePoint 2010 just around the corner, now is the time to start learning how you can leverage it.&amp;#160; I’ll be talking about the Business Connectivity Services at the &lt;a href="http://www.tulsasharepoint.com/Lists/Events%20Calendar/DispForm.aspx?ID=16&amp;amp;Source=http://www.tulsasharepoint.com/default.aspx"&gt;Tulsa SharePoint Interest Group&lt;/a&gt; on 4/12.&amp;#160; If you’re not familiar with everything yet, here is what has changed.&amp;#160; The Business Data Catalog from MOSS 2007 had morphed into the new Business Connectivity Services also known as the BCS.&amp;#160; To add to the confusion, there are places where you will still see term BDC lying around such as the case of the BDC entity model (although maybe the name has changed by now).&amp;#160; With 2010, we get the ability to easily and quickly create new application definitions using SharePoint Designer 2010.&amp;#160; On top of that the data we have abstracted through the BCS can be manipulated in something new called the external list.&amp;#160; It’s so cool that in fact you can edit and do all CRUD operations on that external list and the changes get persisted to the backend database (or web service, etc).&amp;#160; If you’re not familiar with the BCS yet, this is a must-see session.&lt;/p&gt;  &lt;p&gt;If you are going to make it to the event, please &lt;a href="http://www.tulsasharepoint.com/Lists/Events%20Calendar/DispForm.aspx?ID=16&amp;amp;Source=http://www.tulsasharepoint.com/default.aspx"&gt;RSVP&lt;/a&gt;.&amp;#160; Thanks.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2936" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Presentations/default.aspx">Presentations</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Tulsa+SharePoint+Interest+Group/default.aspx">Tulsa SharePoint Interest Group</category></item><item><title>It’s easy to configure an External List with Business Connectivity Services (BCS) in SharePoint Foundation 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/02/it-s-easy-to-configure-an-external-list-with-business-connectivity-services-bcs-in-sharepoint-foundation-2010.aspx</link><pubDate>Tue, 02 Feb 2010 23:02:01 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:2694</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=2694</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/02/02/it-s-easy-to-configure-an-external-list-with-business-connectivity-services-bcs-in-sharepoint-foundation-2010.aspx#comments</comments><description>&lt;p&gt;One of my favorite features in SharePoint 2010 is External Lists.&amp;#160; If you haven’t heard by now, the MOSS 2007 Business Data Catalog (BDC) has become Business Connectivity Services (BCS) in SharePoint 2010.&amp;#160; The ever better part is that it is included in SharePoint Foundation and does not require SharePoint Server.&amp;#160; One new concept that we get from this is the External List.&amp;#160; To the end user, these look like regular lists in SharePoint, however they really are reaching out to external systems such as databases and web services.&amp;#160; Whereas the BDC only “officially” supported read operations, the BCS supports full CRUD operations on your external data source.&amp;#160; &lt;/p&gt;  &lt;p&gt;The title of the article mentions how easy it is to set up.&amp;#160; As you will see shortly, it really is quite easy using SharePoint Designer.&amp;#160; In fact, if you have a database table, you can have it exposed in SharePoint in under 10 minutes.&amp;#160; If you worked with the BDC before, you know that we had to manipulate huge XML files that represented the application definition.&amp;#160; We relied on third party tools to make this easier, but it was never a clean experience until now.&amp;#160; Before we get started with SharePoint Designer though, first make sure that you have the Business Data Connectivity (likely to be renamed) Service Application started.&amp;#160; To verify this go to Central Administration –&amp;gt; Manage Service Applications.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSServiceApplication_3B398295.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSServiceApplication" border="0" alt="BCSServiceApplication" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSServiceApplication_thumb_44460E16.png" width="567" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can tell this is SharePoint Foundation since there are only a few Service Applications (SA).&amp;#160; Ok, admittedly it could be server with very few installed, but you get the point.&amp;#160; If you click the Manage button, you can manage any application definitions you have created already.&amp;#160; Although, we’ll skip this since we’ll be using SharePoint Designer.&amp;#160; If the SA is not started for some reason, go to Central Administration –&amp;gt; Services on Server and click Start next to the appropriate service.&amp;#160; Also remember if you are using Windows Server 2008 R2, you will need to have the &lt;a href="http://support.microsoft.com/kb/976462"&gt;WCF hotfix&lt;/a&gt; installed before any SA works.&lt;/p&gt;  &lt;p&gt;Now let’s take a look at our table.&amp;#160; In my case I have a table of products with a few columns.&amp;#160; I want to expose this table to SharePoint and make it editable.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSTable_708294FA.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSTable" border="0" alt="BCSTable" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSTable_thumb_2854D91E.png" width="379" height="148" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now open SharePoint Designer 2010 and connect to your SharePoint site.&amp;#160; My server is called sp2010, so I would click open site and then enter http://sp2010.&amp;#160; SharePoint Designer is redesigned and has a new item on the left-hand tab called External Content Types.&amp;#160; This is where we want to go.&amp;#160; Click the &lt;em&gt;External Content Type&lt;/em&gt; button in the New section of the ribbon.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSNewECT_4DDE567F.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSNewECT" border="0" alt="BCSNewECT" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSNewECT_thumb_1E4037F3.png" width="346" height="326" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It will take a minute, but then you will get some details about your new External Content Type.&amp;#160; Here is what mine looks like after I gave it a name of &lt;em&gt;Products&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSECTTab_3180EE92.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSECTTab" border="0" alt="BCSECTTab" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSECTTab_thumb_2191A9CE.png" width="488" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;We’re then going to click the link &lt;em&gt;Click here to discover external data sources and define operations&lt;/em&gt;.&amp;#160; This is where we pick that we want to pull data from my database table.&amp;#160; We can also use this to connect to a web service or talk to a custom .NET object.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSAddDataSource_66CA00F7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSAddDataSource" border="0" alt="BCSAddDataSource" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSAddDataSource_thumb_2C6E8B16.png" width="316" height="123" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/p&gt;  &lt;p&gt;I’m just going to go with the defaults on the next screen for my data connection.&amp;#160; I gave it my database name of bcs_test as well as my SQL Server name.&amp;#160; You can also configure out which identity is used here to talk to the database.&amp;#160; Remember that you may need to grant permissions on the SQL Server itself for the appropriate user.&amp;#160; It will then iterate your data source and display it to you.&amp;#160; Pick out the table you want, and then right click on it.&amp;#160; This gives you a list of operations you can add as you can see below.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSDataSourceAddOperations_2B29F237.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSDataSourceAddOperations" border="0" alt="BCSDataSourceAddOperations" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSDataSourceAddOperations_thumb_29E55958.png" width="324" height="272" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;As you can see, you can add individual operations such as Read Item, Read List, Create, Update, and Delete.&amp;#160; You can also create an association if you have multiple tables related to each other.&amp;#160; However, I want everything, so I am going to choose &lt;em&gt;Create All Operations&lt;/em&gt;.&amp;#160; This starts a wizard.&amp;#160; The most important part for you will be the &lt;em&gt;Parameters&lt;/em&gt; configuration.&amp;#160; Here you set what field to show in a picker control as well as what the id is.&amp;#160; Usually, you don’t need to configure much.&amp;#160; Here I am setting that the name field should show up in the picker.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSWizardParametersName_1A624789.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSWizardParametersName" border="0" alt="BCSWizardParametersName" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSWizardParametersName_thumb_6D6CE4AD.png" width="432" height="383" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;It automatically detects my primary key and maps it to the identifier for me.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSWizardIdentifier_1700AFE1.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSWizardIdentifier" border="0" alt="BCSWizardIdentifier" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSWizardIdentifier_thumb_4AC8A632.png" width="358" height="82" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can also specify an Office Property to allow you to map things into existing types such as an Outlook Contact or Task.&amp;#160; This lets you use Office to edit things directly in the BCS.&amp;#160; I won’t cover that today though since that is a little bit more involved.&amp;#160; The next step in the wizard allows you to do some filtering.&amp;#160; In my case, I am skipping it.&amp;#160; &lt;/p&gt;  &lt;p&gt;When that is finished, go back to the main tab for your External Content Type and you should see something like this.&amp;#160; It has the operations you have chosen as well as what fields are in the type.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSTabComplete_6DA967E2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSTabComplete" border="0" alt="BCSTabComplete" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSTabComplete_thumb_0E503188.png" width="533" height="377" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;Now, we want to save out External Content Type, by pressing the Save (Disk Icon) in the top left corner.&amp;#160; On to the fun part.&amp;#160; Let’s use SharePoint Designer to create an External List by using the &lt;em&gt;Create Lists &amp;amp; Form&lt;/em&gt; button in the ribbon.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSCreateListsFormButton_252F0304.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSCreateListsFormButton" border="0" alt="BCSCreateListsFormButton" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSCreateListsFormButton_thumb_3CE63A6A.png" width="124" height="102" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Clicking it you will get the following screen asking about your list.&amp;#160; I’m calling my lists &lt;em&gt;Products&lt;/em&gt; and I just use default values for the rest.&amp;#160; If you are using server, you can click the Create InfoPath Form checkbox and you will be able to customize the InfoPath form for the list right there.&amp;#160; Since we are using Foundation today, I’ll leave that unchecked.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSExternalList_482F4EA7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSExternalList" border="0" alt="BCSExternalList" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSExternalList_thumb_52144012.png" width="330" height="200" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;You can also create the list directly through SharePoint as well.&amp;#160; Once the list is created, go to your SharePoint site, navigate to the list, and you should see something that looks like this.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSExternalListView_10998DB9.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSExternalListView" border="0" alt="BCSExternalListView" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSExternalListView_thumb_27E4922A.png" width="709" height="313" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Comparing it to my table from the SQL Server, you can see that it matches.&amp;#160; You can see that it looks a lot like a regular list in SharePoint.&amp;#160; Now, what if I want to change the price on the Plush Bear?&amp;#160; Not a problem.&amp;#160; Click on the item and select edit, change the value in the form and save it.&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSEditItem_01A238D2.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSEditItem" border="0" alt="BCSEditItem" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSEditItem_thumb_19597038.png" width="335" height="234" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Now what does the data in SQL look like?&lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSQLEdit_77F9CA9B.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="BCSSQLEdit" border="0" alt="BCSSQLEdit" src="http://www.dotnetmafia.com/blogs/dotnettipoftheday/BCSSQLEdit_thumb_5DB96177.png" width="348" height="136" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;It has the new price of course.&amp;#160; You can also add and delete rows and perform bulk operations, but screenshots really don’t do it justice.&amp;#160; It’s this simple to set up, you should go out and try it for yourself.&amp;#160; One reminder, I will give you is that even though this looks like a list, it doesn’t always quite act like a list.&amp;#160; You won’t find it in SPWeb.Lists for example.&amp;#160; There are a also a number of other things that do and don’t work.&amp;#160; Be on the lookout for a follow-up post on what you can and can’t do with an external list.&amp;#160; This is a great new feature in SharePoint 2010 and I hope you will like it as much as I do.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=2694" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SP2010+Beta/default.aspx">SP2010 Beta</category></item><item><title>Features I am looking forward to the most in SharePoint 2010</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/07/13/features-i-am-looking-forward-to-the-most-in-sharepoint-2010.aspx</link><pubDate>Mon, 13 Jul 2009 15:47:36 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:935</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=935</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/07/13/features-i-am-looking-forward-to-the-most-in-sharepoint-2010.aspx#comments</comments><description>&lt;p&gt;I’m not privy to the NDA, so I got to look at some of the new SharePoint 2010 (&lt;a href="http://twitter.com/#search?q=sp2010"&gt;#sp2010&lt;/a&gt;) information for the first time with the &lt;a href="http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/default.aspx"&gt;Sneak Peak&lt;/a&gt; videos on the Microsoft site.&amp;#160; I’ll try not to just repeat information in the videos, but tell you what I am looking forward to and make comments.&amp;#160; I am sure everything they have stated so far is subject to change, but if half of it even gets implemented we’ll be in good shape.&amp;#160; As I was watching the admin video, the first thing that I noted is that there will be a logging database.&amp;#160; This appears to replace the need to find errors in the 12 hive’s LOGS folder.&amp;#160; This is very exciting and should make it much easier to track down problems.&amp;#160; Also of interest is that there is much improved export support and you will be able to backup specific sites and lists.&amp;#160; This one is a no-brainer and should have always been included to begin with.&amp;#160; &lt;/p&gt;  &lt;p&gt;Another thing I saw was various things to help support large lists.&amp;#160; The first thing being an admin configurable threshold on allowing how many items can be displayed in the default view at a time.&amp;#160; The default was 5000 in the demo, so I am wondering if this will be the new suggested limit as opposed to the existing 3000 item limit today.&amp;#160; What is cool is that the interface will display all of the items for an administrator but it will notify a regular user that too many items have been returned and that they need to use a filter.&lt;/p&gt;  &lt;p&gt;Visual Studio 2010 looks like it will be a great experience for developing SharePoint solutions.&amp;#160; Out-of-the-box there is built in support for editing all types of things in SharePoint including importing workflows created by SharePoint Designer and existing .wsp packages.&amp;#160; Building web parts no longer requires generating HTML via code due to the new Visual Web Part Designer.&amp;#160; It appears they created a new typed called VisualWebPartUserControl which inherits from UserControl.&amp;#160; You can drag and drop controls right onto the design surface and then easily deploy the web part with minimal effort.&amp;#160; There are lots of designers and tools for working with the features and solution package itself, but it appears it takes care of most everything for you while still allowing you to customize things when you need to.&lt;/p&gt;  &lt;p&gt;The changes to the Business Data Catalog really excite me.&amp;#160; The BDC is now known as Business Connectivity Services (BCS).&amp;#160; Application definition files can be created easily with Visual Studio 2010 or SPD.&amp;#160; A visual design surface is available and allows you to easily create an application definition for an entity which comes from a database, web service, or .NET object.&amp;#160; It also now has true insert/update/delete support and will create the methods in your application definition so that you can use that functionality later in a list.&amp;#160; The new External List feature allows you to associate this application definition with a list and perform all of the CRUD operations on it just like it was a regular SharePoint list.&amp;#160; This will make it very easy to integrate external data into SharePoint.&amp;#160; My only question with this that comes to mind is there a way to customize the edit form or will that result in an unsupported scenario.&amp;#160; &lt;/p&gt;  &lt;p&gt;Some other cool things about the BCS is that it integrates with Office.&amp;#160; Document templates can be created and data can be retrieved directly from the BCS to fill in values in a document.&amp;#160; Microsoft Groove has been renamed SharePoint Workspace and provides a graphical interface for working with SharePoint.&amp;#160; On top of that it provides the capability of syncing entire sites offline including BCS data.&amp;#160; Documents can be updated and LOB data can be changed and then it can be synced back to SharePoint.&amp;#160; I think this will provide great functionality for any type of field or remote users who are occasionally connected.&lt;/p&gt;  &lt;p&gt;As a developer, another feature I was really excited about was LINQ support for SharePoint lists.&amp;#160; You will be able to point the spmetal tool at a SharePoint list to generate a strongly typed data context class.&amp;#160; You can then query the list as you would anything else using LINQ.&amp;#160; I took a look at the CTP of the &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=94afe886-3b20-4bc9-9a0d-acd8cd232c24#tm"&gt;Developer Documentation&lt;/a&gt; today as well.&amp;#160; It looks like all of the collections now have a method called GetTypeEnumerator(T).&amp;#160; This returns an IEnumerator&amp;lt;T&amp;gt; which means any collection that implements this can also be queried with LINQ.&amp;#160; I am really hoping this eliminates CAML queries, however I did see in the Client Object Model demo, that they still used a CAML query there.&amp;#160; Since I brought up the Client OM, I’ll mention that there is a client object model available now for SharePoint which will make things like integrating with Silverlight very easy.&lt;/p&gt;  &lt;p&gt;Unfortunately, they haven’t really produced any information about the changes in Search yet.&amp;#160; I am looking forward to hearing most about those.&amp;#160; Hopefully, they completely scrapped the Search Center and started over.&amp;#160; I am wondering if there are any changes in the Records Center too.&amp;#160; I also wonder how this will affect partners that have built tools around MOSS 2007.&amp;#160; I can see Lightning Tools BDC Meta Man and AvePoint being directly affected.&amp;#160; However, I am sure there will still be new areas for these companies to explore with the new product.&amp;#160; This is an exciting time and I can’t wait for the public beta and to hear more about the product.&amp;#160; Unfortunately, it’s not looking like I will make it to the SharePoint Conference this year, so I will have to be getting a lot of information second hand.&lt;/p&gt;  &lt;p&gt;On a related note, don’t forget about the &lt;a href="http://www.tulsadnug.org/DesktopDefault.aspx"&gt;Tulsa SharePoint Interest Group&lt;/a&gt; tonight.&lt;/p&gt;  &lt;p&gt;Follow me on &lt;a href="http://twitter.com/coreyroth"&gt;twitter&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=935" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+Designer/default.aspx">SharePoint Designer</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Connectivity+Services/default.aspx">Business Connectivity Services</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint+2010/default.aspx">SharePoint 2010</category></item><item><title>The object was not found. (The item was deleted because it was either not found or the crawler was denied access to it.)</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/05/19/the-object-was-not-found-the-item-was-deleted-because-it-was-either-not-found-or-the-crawler-was-denied-access-to-it.aspx</link><pubDate>Tue, 19 May 2009 20:03:42 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:907</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=907</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/05/19/the-object-was-not-found-the-item-was-deleted-because-it-was-either-not-found-or-the-crawler-was-denied-access-to-it.aspx#comments</comments><description>&lt;p&gt;I’ve seen a few people asking about this in the Crawl Logs and thought I would take a few minutes to address it.&amp;#160; First and foremost this is a warning and not an error message.&amp;#160; Sometimes when you receive this message, it is the crawler behaving normally.&amp;#160; Other times it is because of an issue.&amp;#160; I’ll first talk about when it is a normal behavior.&amp;#160; When an item is deleted, it is perfectly normal to see this in your logs the next time a crawl occurs.&amp;#160; This is simply indicating that SharePoint is removing the record from the search index.&amp;#160; If you see an occasional one of these, then you can assure your administrator that things are probably fine. &lt;/p&gt;  &lt;p&gt;Other times it can indicate another issue.&amp;#160; In the situation where you already have your index built and your crawl log is filled with nothing but this warning, that is usually indicative of a problem (not to mention your index is empty).&amp;#160; Before you do anything, the first thing I always recommend is just try crawling again.&amp;#160; It might just fix it.&amp;#160; If it doesn’t then more than likely you have a permissions problem.&amp;#160; If you are dealing with a SharePoint content source, verify that the crawl account can still access SharePoint, the password hasn’t expired, it isn’t locked out, etc.&amp;#160; Get the credentials for your crawl account and actually make sure you can log into a SharePoint site.&amp;#160; While I am here, I’ll remind you again to never give this account administrator level privileges as it causes your search index to have deleted an unapproved files in it.&amp;#160; After you make any necessary changes, try to crawl again (twice if necessary) and see if that resolves your issue.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you are crawling a Business Data Catalog content source, make sure that the content access account has access to the BDC itself first by going to the Business Data Catalog permissions page on your SSP.&amp;#160; Then also verify that the content access account also has permissions to the BDC application itself as well as its child entities.&amp;#160; If you make any changes, be sure and crawl again.&lt;/p&gt;  &lt;p&gt;If none of this has helped, my recommendation of course it to go to the 12 hive’s LOGS folder.&amp;#160; You will need to sift through this file and see if you can find anything potentially permissions related with Search.&amp;#160; Don’t follow any advice to reset your index unless absolutely necessary.&amp;#160; More than likely your index is already effectively reset and doing this probably won’t get you any where.&amp;#160; There are some other causes of this in your logs I am sure, but hopefully this will give you a good start in resolving this issue (if there is one to begin with).&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=907" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Error/default.aspx">Error</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>Error: Entity Id is Invalid when viewing Business Data Catalog entity</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/04/13/error-entity-id-is-invalid-when-viewing-business-data-catalog-entity.aspx</link><pubDate>Mon, 13 Apr 2009 20:49:08 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:886</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=886</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2009/04/13/error-entity-id-is-invalid-when-viewing-business-data-catalog-entity.aspx#comments</comments><description>&lt;p&gt;Recently, I was troubleshooting and Enterprise Search / BDC issue and I encountered the following error when trying to view the entity page of a given LOB system.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Entity id is invalid&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;As usual, this error was completely and totally useless.&amp;#160; I really needed to be able to view the details of my entity to ensure proper configuration and security settings, so I decided to pursue an answer.&amp;#160; After looking at the 12 hive logs as well as the event log, I found the following error.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Runtime Error in method ViewBDCEntity.OnLoad of type System.UriFormatException.The exception was System.UriFormatException: Invalid URI: The hostname could not be parsed.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In this particular application definition, I am appending a relative URL onto a server name.&amp;#160; So in this case, my action url looks like &lt;a href="http://server{0"&gt;&lt;em&gt;http://server{0&lt;/em&gt;&lt;/a&gt;&lt;em&gt;} &lt;/em&gt;where my Action Paramter would contain something like &lt;em&gt;/Sites/SomeSubSite&lt;/em&gt;.&amp;#160; SharePoint does not like this one bit.&amp;#160; Although, the search crawler has no issue with it and you will be able to link to sites fine, this causes the BDC entity page on your SSP to completely die.&lt;/p&gt;  &lt;p&gt;How did I resolve it?&amp;#160; I tried just adding a slash after the server name (i.e.: &lt;a href="http://server/{0"&gt;&lt;em&gt;http://server/{0&lt;/em&gt;&lt;/a&gt;&lt;em&gt;}&lt;/em&gt;).&amp;#160; This works, but you do end up with two slashes in your URL.&amp;#160; I’m not sure of a better way to fix it for now, so it will have to do for now.&lt;/p&gt;  &lt;p&gt;Follow me on &lt;a href="http://twitter.com/coreyroth"&gt;twitter&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=886" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>Enterprise Search Crawl Error: The parameter is incorrect</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/12/29/enterprise-search-crawl-error-the-parameter-is-incorrect.aspx</link><pubDate>Mon, 29 Dec 2008 16:06:29 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:811</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=811</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/12/29/enterprise-search-crawl-error-the-parameter-is-incorrect.aspx#comments</comments><description>&lt;p&gt;I have been reconfiguring a search index and running into this issue a lot, so I thought I would post on it.&amp;nbsp; In my case, I am crawling a content source that comes from a BDC application definition.&amp;nbsp; The first time I crawl, I get the following error.&lt;/p&gt; &lt;p&gt;&lt;em&gt;The parameter is incorrect. (LobSystemInstance could not be found using criteria &amp;#39;Name=MyBDCInstance&amp;#39;.)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;This is obviously a cryptic error.&amp;nbsp; As I have said in the past though, if you get an error crawling, always try to crawl again.&amp;nbsp; In this case, this is exactly the fix for it.&amp;nbsp; Full Crawl again and everything works just fine.&amp;nbsp; I am sure there is a good reason this happens, but I have never bothered to look into it.&amp;nbsp; If you get the error, just crawl again.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=811" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>Data Types of Managed Properties in Search Results</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/12/09/data-types-of-managed-properties-in-search-results.aspx</link><pubDate>Tue, 09 Dec 2008 22:17:18 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:801</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=801</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/12/09/data-types-of-managed-properties-in-search-results.aspx#comments</comments><description>&lt;p&gt;The other day, I was trying to work some XSLT magic with my CoreResultsWebPart.&amp;nbsp; What I was trying to do is pass an integer value in a search query (that went against a BDC application definition) in a link to a page.&amp;nbsp; This should be a simple task, but when I added the field to my template, it displayed the value of System.Int64[] instead of the value of the integer.&amp;nbsp; This obviously wouldn&amp;#39;t work with the page on the other side of the link that is expecting that integer value.&lt;/p&gt; &lt;p&gt;I first went back to my BDC application definition and confirmed that the field in the TypeDescriptor element was in fact set to System.Int32.&amp;nbsp; I then decided to issue my query with some code going against the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/07/17/how-to-query-search-using-the-web-service.aspx"&gt;web service&lt;/a&gt;.&amp;nbsp; I discovered that other builtin fields were returning Int64 as the type, but mine was returning the type as Object (I am sure there is a reason it uses Int64 versus Int32, but I don&amp;#39;t know).&amp;nbsp;&amp;nbsp; This led me back to the Managed Property itself.&amp;nbsp; I took a look and saw that I had two crawled properties (from two different BDC application definitions) mapped to it.&amp;nbsp; On a hunch, I removed one of them and recrawled my content source.&amp;nbsp; I ran my query again and to my surprise it was now returning the field as an Int64 as intended.&lt;/p&gt; &lt;p&gt;So the lesson, I have learned here is that Enterprise Search uses an Object type when you are mapping multiple crawled properties to one managed property.&amp;nbsp; I am not really sure why this is, but I assume it thinks that it might receive a different type from one of the crawled properties (even though it wouldn&amp;#39;t let you map it).&amp;nbsp; Now my only issue is that if I want to have multiple crawled properties map to a single managed property in this case.&amp;nbsp; It may also be possible to somehow cast the object back into an integer and get the actual value, but my XSL skills aren&amp;#39;t that good.&amp;nbsp; If you know how to do it, please let me know.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=801" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>Exposing data from the BDC as a DataTable</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/07/09/exposing-data-from-the-bdc-as-a-datatable.aspx</link><pubDate>Wed, 09 Jul 2008 18:07:00 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:630</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=630</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/07/09/exposing-data-from-the-bdc-as-a-datatable.aspx#comments</comments><description>&lt;p&gt;Recently, I wanted to bind some data from the BDC to an ASP.NET control (i.e. a GridView, ListView, or DropDownList).&amp;nbsp; For what I needed a Business Data List web part just wouldn&amp;#39;t cut it, so I decided to create something that I could bind to.&amp;nbsp; I also needed a quick and dirty way to get an XML representation of the data so that I could use it from InfoPath.&amp;nbsp; Normally, I avoid DataSets but for this purpose today, I am willing to tolerate it.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;First, we&amp;#39;ll start with the process of how to retrieve data from the BDC through the API.&amp;nbsp; We&amp;#39;ll start with the process to execute a BDC finder method.&amp;nbsp; The first thing you have to do is get a LobSystemInstance using the ApplicationRegistry object.&amp;nbsp; Application Registry is what the API guys came up with before marketing decided to call it the Business Data Catalog.&amp;nbsp; You pass it the name of the instance you want.&amp;nbsp; Note, this is the name of the instance in the XML file and not the application name you see in the BDC configuration pages.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get a reference to the instance&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;LobSystemInstance&lt;/span&gt; instance = &lt;span style="COLOR:#2b91af;"&gt;ApplicationRegistry&lt;/span&gt;.GetLobSystemInstanceByName(&amp;quot;MyInstance&amp;quot;);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get a reference to the entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;Entity&lt;/span&gt; entity = instance.GetEntities()[&amp;quot;MyEntity&amp;quot;];&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Once you have the LobSystemInstance you need to get a reference to the entity you want.&amp;nbsp; Since we are creating a dataTable, we need to get a list of the Fields returned in the view and create a dataTable.&amp;nbsp; The Fields collection can be accessed after calling &lt;em&gt;GetFinderView&lt;/em&gt; (use &lt;em&gt;GetSpecificFinderView &lt;/em&gt;when calling the SpecificFinder method).&amp;nbsp; After that I call a simple method which manually creates a new dataTable given the fields I have provided.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get a view so that the fields can be retrieved&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;FieldCollection&lt;/span&gt; fieldCollection = entity.GetFinderView().Fields;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// create a datatable based on the fields in the entity&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt; dataTable = CreateDataTable(fieldCollection);&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;My CreateDataTable method is simple.&amp;nbsp; It just iterates through the field collection and adds a column to the table.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt; CreateDataTable(&lt;span style="COLOR:#2b91af;"&gt;FieldCollection&lt;/span&gt; fieldCollection)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// create a new datatable&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt; dataTable = &lt;span style="COLOR:blue;"&gt;new&lt;/span&gt; &lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt;();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;Field&lt;/span&gt; field &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; fieldCollection)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataTable.Columns.Add(field.Name);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return&lt;/span&gt; dataTable;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;To execute the BDC Finder method, you have to pass it a FilterCollection even if you aren&amp;#39;t using any filters.&amp;nbsp; You then call the &lt;em&gt;FindFiltered &lt;/em&gt;method which returns an IEntityInstanceEnumerator.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get an empty filter collection&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;FilterCollection&lt;/span&gt; filterCollection = entity.GetFinderFilters();&lt;/p&gt;&lt;/div&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get an enumerator over IEntityInstances&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;IEntityInstanceEnumerator&lt;/span&gt; entityInstanceEnumerator = entity.FindFiltered(filterCollection, instance);&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;This gives you an enumerator, then you just need to use it and add rows to the dataTable.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// iterate through the entity instances&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;while&lt;/span&gt; (entityInstanceEnumerator.MoveNext())&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// add the row to the dataTable&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FillDataTable(dataTable, fieldCollection, entityInstanceEnumerator.Current);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;The FillDataTable method just copies the values from the IEntityInstance into new dataRows.&lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:blue;"&gt;private&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;&lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt;&lt;/span&gt; FillDataTable(&lt;span style="COLOR:#2b91af;"&gt;DataTable&lt;/span&gt; dataTable, &lt;span style="COLOR:#2b91af;"&gt;FieldCollection&lt;/span&gt; fieldCollection, &lt;span style="COLOR:#2b91af;"&gt;IEntityInstance&lt;/span&gt; entityInstance)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;{&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// create a new row based on the dataTable&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:#2b91af;"&gt;DataRow&lt;/span&gt; newDataRow = dataTable.NewRow();&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// add the data from each field into the datatable&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;foreach&lt;/span&gt; (&lt;span style="COLOR:#2b91af;"&gt;Field&lt;/span&gt; field &lt;span style="COLOR:blue;"&gt;in&lt;/span&gt; fieldCollection)&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newDataRow[field.Name] = entityInstance[field];&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:green;"&gt;// add the row to the table&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataTable.Rows.Add(newDataRow);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="COLOR:blue;"&gt;return &lt;font color="#000000"&gt;dataTable;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;}&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;After this we have a complete dataTable that can be used for binding or whatever.&amp;nbsp; You can do manual binding or could put this code in a class and have an ObjectDataSource call it.&amp;nbsp; As you can see in the example here, that I haven&amp;#39;t included any exception handling or null checking.&amp;nbsp; Calling a SpecificFinder method is pretty similar except for a few changes.&amp;nbsp; &lt;/p&gt;
&lt;div style="FONT-SIZE:10pt;BACKGROUND:white;COLOR:black;FONT-FAMILY:courier new;"&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get an entity instance given the id&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;IEntityInstance&lt;/span&gt; entityInstance = entity.FindSpecific(id, instance);&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:green;"&gt;// get a view so that the fields can be retrieved&lt;/span&gt;&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&lt;span style="COLOR:#2b91af;"&gt;FieldCollection&lt;/span&gt; fieldCollection = entity.GetSpecificFinderView().Fields;&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Instead of calling FindFiltered we call FindSpecifc passing in a value for the identity (i.e.: give me entity with id 37223).&amp;nbsp; The other change we make is that we get the FieldCollection from &lt;em&gt;GetSpecificFinderView &lt;/em&gt;instead of &lt;em&gt;GetFinderView&lt;/em&gt;.&amp;nbsp; Even if you don&amp;#39;t want a dataTable, hopefully these examples will help you get the data out of the BDC into some form that you can use.&lt;/p&gt;
&lt;p style="MARGIN:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=630" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>Error: The parameter is incorrect. (Access denied by BDC.)</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/05/14/error-the-parameter-is-incorrect-access-denied-by-bdc.aspx</link><pubDate>Wed, 14 May 2008 14:47:08 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:582</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=582</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/05/14/error-the-parameter-is-incorrect-access-denied-by-bdc.aspx#comments</comments><description>&lt;p&gt;When attempting to configure the Business Data Catalog for use with MOSS Enterprise Search, it can be quite common to get this message when you try crawling for the first time.&amp;nbsp; The cause is actually pretty simple, but I figured I would give some troubleshooting advice today.&amp;nbsp; When you get this error, the fact is, your Enterprise Search crawl account cannot access some portion of the item in the BDC.&amp;nbsp; When crawling, permission has to be given to the crawl account in three different places: the BDC itself, the Application Definition you are crawling, and the individual entities inside the Application Definition.&lt;/p&gt; &lt;p&gt;When troubleshooting this error, the first thing you need to do is identify your crawl account.&amp;nbsp; The easiest way to do this is to go to the Search Settings page on your SSP and see what the default content access account is.&amp;nbsp; When looking for the source of this error, you can try looking in the Event Log, but typically the only time you see an error in there is if you are indexing a SQL Server data source and the crawl account doesn&amp;#39;t have access to the SQL Server database.&amp;nbsp; This is a good time to check and make sure that the crawl account does have access to the database.&amp;nbsp; Your next best bet is to check the latest log file in your 12 hive&amp;#39;s LOG folder.&amp;nbsp; Search for something like &amp;quot;Access Denied&amp;quot; and see what you find.&amp;nbsp; Here is an example of what I found.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Closing chunk on Exception: Access Denied for User &amp;#39;MOSSTEST\MOSS_Search&amp;#39;. Securable MethodInstancewith Name &amp;#39;GetGetContactIdsResultsInstance&amp;#39; has ACL that contains:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; User &amp;#39;MOSSTEST\administrator&amp;#39; with Rights &amp;#39;Execute, Edit, SetPermissions, UseInBusinessDataInLists, SelectableInClients&amp;#39;&lt;/em&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;In this case, my error is indicating that my crawl account did not have access to the entity itself.&amp;nbsp; Let&amp;#39;s assume though that we don&amp;#39;t know what permission is needed.&amp;nbsp; First, start off by going to the Business Data Catalog Permissions link on your SSP.&amp;nbsp; Make sure your crawl account is listed and that it has &lt;em&gt;Execute&lt;/em&gt; and &lt;em&gt;SelectableInClients&lt;/em&gt; permissions.&amp;nbsp; You can try and click the Copy all permissions to descendants link and hope it copies the same permissions down to the application definition and entity itself, but more than likely it won&amp;#39;t work.&amp;nbsp; So, the next step is to go to the Application Definition, and make sure your crawl account has the same permissions there.&amp;nbsp; Again you can try the Copy all permissions to descendants link, but I recommend also going to each entity and verifying that your crawl account has permission.&amp;nbsp; &lt;/p&gt; &lt;p&gt;At this point, try crawling again and hopefully everything will work.&amp;nbsp; To alleviate some of the pain in the process, you can also set your permissions via &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2007/07/19/setting-appropriate-permissions-on-your-bdc-lobsysteminstance-to-work-with-enterprise-search.aspx"&gt;Application Definition&lt;/a&gt;.&amp;nbsp; One thing to note is that I have tried just granting Domain Users (or some other group) the needed permission to crawl, but it does not seem to work for some reason.&amp;nbsp; It seems that you must explicitly grant access to the crawl account (and not some group that it is a member of) for the crawl to succeed.&amp;nbsp; I have set up numerous BDC Crawls and it seems like I still run into this error on a regular basis.&amp;nbsp; Hopefully, with these steps, you can get your crawl to run.&amp;nbsp; If you can&amp;#39;t get it to work, try checking your log files.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=582" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>School of Dev Tomorrow</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/05/09/school-of-dev-tomorrow.aspx</link><pubDate>Fri, 09 May 2008 19:24:18 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:576</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=576</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/05/09/school-of-dev-tomorrow.aspx#comments</comments><description>&lt;p&gt;I am looking forward to giving my updated talk on the &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/05/01/speaking-at-tulsa-s-school-of-dev.aspx"&gt;Business Data Catalog and Enterprise Search&lt;/a&gt; tomorrow at &lt;a href="http://www.schoolofdev.com/default.aspx"&gt;School of Dev&lt;/a&gt;.&amp;nbsp; For the two of you that read my blog, feel free to stop by and see the session.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=576" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Presentations/default.aspx">Presentations</category></item><item><title>How to: Specify a Content Source using the Keyword Syntax</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/03/11/how-to-specify-a-content-source-using-the-keyword-syntax.aspx</link><pubDate>Tue, 11 Mar 2008 18:18:02 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:534</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=534</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/03/11/how-to-specify-a-content-source-using-the-keyword-syntax.aspx#comments</comments><description>&lt;p&gt;At some point you may want to do an Enterprise Search query and specify that the results come from a particular content source.&amp;nbsp; A lot of times you might create a custom scope with that content source in it, but if you don&amp;#39;t want to create a new scope, you can just query the content source directly.&amp;nbsp; The syntax is simple.&amp;nbsp; Just use it like in the example below.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;ContentSource:&amp;quot;Local Office SharePoint Sites&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In this case, I want everything to come from the Local Office SharePoint Sites content source.&amp;nbsp; You can of course combine it with other terms as well like in the example below.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bike Color:&amp;quot;Red&amp;quot; ContentSource:&amp;quot;BDC AdventureWorks&amp;quot;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;In this case, it would search for red bikes in the BDC AdventureWorks content source.&amp;nbsp; Kind of a simple tip today, but I really haven&amp;#39;t seen this documented anywhere.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=534" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Enterprise+Search/default.aspx">Enterprise Search</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item><item><title>BDC: Could not create profile page for Entity</title><link>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/27/bdc-could-not-create-profile-page-for-entity.aspx</link><pubDate>Wed, 27 Feb 2008 14:53:53 GMT</pubDate><guid isPermaLink="false">ceb7fe2a-c56b-4d85-99e6-8dd548580538:522</guid><dc:creator>CoreyRoth</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotnetmafia.com/blogs/dotnettipoftheday/rsscomments.aspx?PostID=522</wfw:commentRss><comments>http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/27/bdc-could-not-create-profile-page-for-entity.aspx#comments</comments><description>&lt;p&gt;I have seen quite a few searches for this warning in our stats, so I thought I would address the following message received when importing an application definition into the Business Data Catalog.&lt;/p&gt; &lt;p&gt;&lt;em&gt;Could not create profile page for Entity MyEntity.&amp;nbsp; The error is: Default action exists for application &amp;#39;MyInstance&amp;#39;, entity &amp;#39;MyEntity&amp;#39;.&amp;nbsp; Profile page creation skipped.&lt;/em&gt;&lt;/p&gt; &lt;p&gt;When you import your application definition, this kind of looks like an error but in fact is not.&amp;nbsp; This is just the message MOSS gives when you &lt;a href="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/01/29/adding-a-default-action-to-a-business-data-catalog-entity.aspx"&gt;add a default action to an entity&lt;/a&gt;.&amp;nbsp; I describe how to do that in the linked blog post.&amp;nbsp; Unfortunately, this appears as an error in the Event Log instead of a warning.&amp;nbsp; This is unfortunate, because your MOSS administrator will likely ask you about it (my last one did).&amp;nbsp; The long story short.&amp;nbsp; Don&amp;#39;t worry about this message.&amp;nbsp; It is perfectly normal to receive it when you have specified a default action.&lt;/p&gt;&lt;img src="http://www.dotnetmafia.com/aggbug.aspx?PostID=522" width="1" height="1"&gt;</description><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/SharePoint/default.aspx">SharePoint</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Error/default.aspx">Error</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/MOSS/default.aspx">MOSS</category><category domain="http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/tags/Business+Data+Catalog/default.aspx">Business Data Catalog</category></item></channel></rss>