This is actually something I did for my very first MOSS 2007 BDC project that I forgot to write about. I saw a question about it on the MSDN SharePoint forums so thought I'd write about it there.
When you create an application definition file that describes an entity, you can create a specific finder method. If you do this (and you set the title property of your entity), you'll get a profile page created for that entity that shows all the data returned from the specific finder method. So when you add a business data web part to your page you get the 'View Profile' link:
And when you click on this you get taken to the Profile page that displays all the fields that are returned from the specific finder:
This page can be edited the same as any other web part page by going Site Actions -> Edit Page. You can configure the Business Data Item web part to only show the columns you want. You could add a Business Data Related List web part and show any associated data for the Product (in our example) on show such as Sales Orders.
This all works nicely. If you check out the URL in the browser of the above image you'll see that this page is served up by the Shared Service Provider that you imported your BDC application definition to. This is cool for most scenarios as it means you can share your BDC data across different portals that are served by the same SSP, but what if you are perhaps presenting this data on an Intranet/Extranet site and you don't want the URL to be completely different? Just create your own profile page! For our example we're going to continue to use the Product entity that's part of the AdventureWorks 2000 sample that comes with the SDK.
1, Go and create a web part page where you want to have your profile page. Mine is created at http://usb-server1/bdc/default.aspx
2, Add to a web part zone a Business Data Item Builder and a Business Data Item. The Business Data Item Builder is a web part that is only visible when the page is in edit mode. Its job it to get identifiers from query string parameters from URL of the page it is placed on. It can then pass these values onto other web parts. For example if the url we use to go to default.aspx is default.aspx?productId=3, it would pass the value 3 to our Business Data Item web part which would display the record which has an ID of 3.
3, To make this happen the first thing we need to do is configure out Business Data Item web part. Open the tool bar pane and chose our Product entity as the type we want displayed.
4, Upon closing the tool bar pane we can now connect our web parts up. Do this by clicking edit on the Business Data Item web part, edit -> Connections -> Get Selected Item From -> Business Data Item Builder
5, When we've connected our web parts together the Business Data Item web part will display an error of "Item not found in AdventureWorks2000Instance". If we exit edit mode of the page, and add a query string onto the page url to make it something like:
Default.aspx?productId=3
You'll see our Business Data Item web part is able to display the entity that has the primary key identity of 3.
6, Now we need to get it working so that our Search results and Business Data List Web Part point to our new profile page when users click on the 'View Profile' link. To do this we need to go into Central Admin:
Central Administration -> Our Shared Service Provider -> Business Data Catalog section, View Applications -> Chose our AdventureWorks Instance -> Chose the Product entity
Down towards the bottom on the Actions section you'll see a View Profile link. Click on this. We want to set the URL to be the link to our new profile page, eg http://localhost/bdc/default.aspx?productId={0}
Remember to include the curly brackets and a number for each parameter you want to pass to the url
Click OK to finished editing the action. Now back on the main entity page you will see the URL for the View Profile Action has changed.
If we now add a Business Data List web part that displays this entity, clicking on the View Profile action will take us to our new page. If we want this new page to be the one linked to for search results we'll need to do a full crawl of our Business Data Catalog Content Source. Once that's completed it should all work perfectly.
Remember to always try things like this in your test/development environment first!