re you a Microsoft developer? Have you heard about SharePoint? Do you use SharePoint in your organization? If you answered "yes" to any of these questions, keep reading.
In this series of articles, I intend to take on common everyday problems that face organizations and solve them using SharePoint. If you already use SharePoint, you will probably raise an eyebrow and think "Neat!" at the end of the article. If you don't use SharePoint yet, maybe this will tip you over the edge.
Let me use a cliché that Microsoft uses annoyingly often: information workers. These employees deal with semi-organized information all the time. The amount of information the information worker (ugh!) deals with is increasing exponentially. The problem is, in spite of our best efforts, a lot of this information is not structured very well. Thus the information worker ends up being not so well informed.
Northwind Traders, a fictional company invented by Microsoft, seems to be running into a similar challenge. They have a Northwind SQL Server database that contains historical data about all their customers. In addition, there is this annoying bespectacled user in the basement, Milton, who insists on not using the SQL Server-based application; instead, he maintains his data in Excel spreadsheets on his local machine. Besides Excel, he also loves his red stapler—and people fear that he may burn down the building one day. He insists that he can search through his Excel spreadsheets just as easily by pressing CTRL_F, and that the newfangled SQL Server-based application doesn't let him search through customer data very well.
Frankly, there is some dissension among the users of the SQL Server-based application. After all, there isn't a unified way to search through Excel spreadsheets or the SQL Server-based application.
The Project Manager is getting worried!
You Are Hired
It seems you have landed onto the scene like a superhero, except your cape says "SharePoint" on it and you don't like to wear your underwear outside like many other superheroes do.
In this article, I will walk you through how to create a unified search solution that searches not only those Excel spreadsheets, but also the Northwind SQL Server database. This solution is also extensible to other search sources that may sprout up within the organization afterwards. It presents users with a simple common search UI—exposed through SharePoint. Also, instead of filling these pages with code that I've copied and pasted from other sources, I am going to point you to the sources so you can write the code yourself and keep this article to the point.
Creating the Solution
To begin, you'll index all those Excel spreadsheets on Milton's desktop. You can do this using the following steps:
A domain administrator will share Milton's C:\Excel Sheets location in such a way that the account that is running the MOSS Search account has read-only access to that location. Alternatively, if Milton is in a good mood, he can set up such a sharing policy himself.
Now under Shared Services → Search settings → Content Sources, add a content source called "Milton Excel Sheets" with the settings shown in Figure 1. Also, set up an incremental crawl schedule.
|Figure 1: Settings for the "Milton Excel Sheets" content source.||
|Figure 2: Issuing a Full Crawl on the Milton Excel Sheets content source.||
From the search page, issue a full crawl as shown in Figure 2
. Assuming you've set up the security permissions appropriately, this crawl should succeed.
|Figure 3: Setting up the Northwind Customers BDC application.|
Next, you'll bring the Northwind customer data from the SQL Server application into SharePoint in such a way that it is searchable. The most logical way to do so is by importing a Business Data Catalog (BDC) application. Rather than copying and pasting mounds of XML data to describe the structure of such an application, instead, I will point you to the instructions to this walkthrough
on my blog, where you'll also find an example of importing customer data and making it searchable
via a BDC application.
Assuming that you have set up a BDC application that imports Northwind Customers, and is searchable, next go ahead and set up a content source that crawls the Northwind BDC application (see Figure 3
After setting up the application and the appropriate access rights, issue a full crawl for the "Northwind Customers" content source, similar to Figure 2.
|Editor's Note: This article was first published in the Nov/Dec 2007 issue of CoDe Magazine, and is reprinted here by permission.|