0

I am building a POC system based on Search in SharePoint 2013. I have setup BCS to crawl external SQL DB. Search crawl is successful and I am getting the results. I have not setup any Managed Properties to show the external data in the search results, so currently it is showing bdc3:// URLs (Ex: bdc3://amms_amms/default/00000000%252d0000%252d0000%252d0000%252d000000000000/1971/amms/1973?s_id=ibqaaaaaaaaa=&s_ce=07nk0004080g10003o03vvf).

Is it possible to get the BDC data just by using the BDC URL that comes up in search results?

I want to do this to automate data retrieval for external crawled data, other wise I would need to map the managed properties for every table being crawled.

1

You have to associate a Profile Page with your External Content Type. If you do the Search Results will use the URL to your Profile Page rather than the default bdc3:// url. THen you can augment the profile page (using XSL) to make it look better than the default page.

You can either use SharePoint Designer to create the page (I don't because the default location in lame) or Create your own page using a standard web part page and BDC Web Parts like the Business Data Item and Related Item parts associated with a Business Data Item Builder for filtering.

  • I want the search results in C# code (I am using the keywordquery class). If I create the Profile page, will the results turn up in KeywordQuery resultTable ? Right now, it only shows the bdc3:// URLs in the Path column of the returned Results table. If I create the profile page, then I guess the Path column will only change to the Profile page URL. I want to access the search results without navigating to the Profile page. – suhas Feb 28 '14 at 17:39
  • It only changes the Search Result URL (Path). In order to access the properties returned you have to map the crawled properties to managed properties and then request those properties in your code. Another alternative MIGHT be to invoke BCS code with the returned URL and attempt to instantiate the BCS Item. But that is more of a BCS question than a search question. – Matthew McDermott Feb 28 '14 at 18:20
  • Ok. I tried using Managed Properties and the properties appear in the KeywordQuery results, but to make this work I have to crawl twice: first time to get the crawled properties and 2nd time after mapping managed property to crawled property. – suhas Mar 2 '14 at 8:02
  • Getting the BCS item from the bdc3 URL is a BCS question. I was looking for APIs when I noticed the LobUri abstract class defined under the Search connector namespace. If we are building our custom connector, then we have to define the Entity property that returns the external content type. I could not find the class that derives LobUri that connects to SQL tables. MS have not exposed this class OR have not documented it. Any clues on this ? – suhas Mar 2 '14 at 8:06
  • Yes, you have to crawl twice, that's how it works. I would have to look at a BCS source like Scot Hillier for that. I can do it next week, or I'll ask him when I see him tomorrow. – Matthew McDermott Mar 4 '14 at 3:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.