SharePoint’s out-of-the-box functionality is not to be underestimated. Leveraging document libraries, custom lists, and out-of-the-box workflows are always mentioned as “low-hanging fruit” when implementing SharePoint for a client. Where you can provide extra value to clients is when conversations switch to more specific business needs. By understanding the extent to which SharePoint is configurable, you can work with your clients to demonstrate how out-of-the-box functionality can be leveraged. Gartner research on “The 90/10-10/90 Rule for Portal Deployment” has revealed that for initial releases, “90 percent of the requirements can be delivered by the out-of-the-box features… while only 10 percent can be delivered by custom integration components.” They also mentioned that, for subsequent releases, this ratio is reversed. One then needs to calculate the ROI to understand whether it makes sense to introduce customizations and programming to address the remaining 10%.
We’re using the designation out-of-the-box to include configuration of the product. We are considering the use of SharePoint Designer and Visual Studio as an indication of customization and programming. Although these tools can add tremendous value, the intent of this topic is to focus on demonstrating the value of solutions that can be created without these tools.
The SharePoint functionality that is addressed in this article covers features such as custom lists and SharePoint Search. Before diving into the real-world scenarios, make sure you understand these basic features.
Basic SharePoint Features
You can equate a custom list to an Excel spreadsheet or a database table. After creating a new custom list in SharePoint, users will add columns that represent the fields that make up the items to store in the list. For example, instead of maintaining a list of your company’s office locations in an Excel spreadsheet, you can add your locations to a custom list, as shown in Figure 1.
Figure 1: Adding a new location
Each column is associated with a data type (text, number, and so forth) and has a set of basic validation rules (required, max characters, and so on). Columns are added, as shown in Figure 2.
Figure 2: Adding a new column
The list settings control such features as versioning, permissions, and workflow. More advanced features include the site column and the ability to save the list as a template.
One of the most powerful features of the custom list is the capability to filter and define views. Depending on how much data is contained in a list, and depending on how the list is intended to be used, different views can be created. For the office location example, you can specify a view that shows locations organized by state. As part of the view configuration, one can specify the columns to be displayed, sort order, filter criteria, group by, and the like. Figure 3 shows the creation of the view; Figure 4 shows the results.
Figure 3: custom view
Figure 4: Custom view results
The creation of views allows users to get to the information they need efficiently.
Right out of the box, SharePoint offers several powerful search features. These include full-text indexing of any Office documents, a “Did you mean?” feature, People Search, and the ability to index information outside of SharePoint, such as file shares (see Figure 5).
Figure 5: Search results example
On top of all that, SharePoint has advanced relevancy features that put the most relevant results at the top. End users can be notified when search results change by using the alerts or RSS features. Security trimming prevents users from seeing results that they don’t have access to. Search management tools (including reporting) allow the administrators to analyze and monitor searching. In the following examples, you’ll walk through how the capability to specify additional search scopes can narrow down search results for specific scenarios.
Scenario 1: How to Use Two Custom Lists to Standardize Dropdowns or Create a Dropdown with Dynamic Data
A large university is looking to provide its fast-growing segment of online students’ similar services to those that are currently available to on-campus students. One particular example is the English Department’s initiative to offer online writing assistance services to off-campus students via SharePoint 2007. The challenge faced today is that when off-campus students request assistance by submitting their papers, the English Department has to manually look up all the tutors, by name, and assign a tutor to each incoming request.
Once a request has been submitted, it gets stored in the “Request Assistance” document library. Then, a supervisor from the English Department manually looks up the list of tutors in the “Tutors” list and assigns a tutor to the request as part of the metadata of the document. The list of the tutors changes on a regular basis and is currently managed by the English Department. Due to security policies, the IT department can only delegate “Contribute” access rights to the English Department over the “Request Assistance” document library. Therefore, the English Department does not have access to modify the dropdown options in the “Tutors” column once it has been created by the IT Department.
To provide users in the English Department the ability to dynamically control the dropdown of tutors’ names available to assign to a request, a lookup column can be leveraged. “Tutors” is a custom list within SharePoint with a “Tutors Name” column.
The use of the feature has multiple advantages. Some of these advantages include:
- As the tutors get added to the “Tutors” list, they will also automatically get added to the lookup column in the “Request Assistance” document library.
- All tutors are managed in one central location.
- The IT Department can delegate any administrative rights to the English Department on the “Request Assistance” document library to manage the columns.
The following steps demonstrate how to implement the dynamic dropdown “lookup” column:
- On the site, click Site Actions and Create.
- Create a Custom List named “Tutors”.
- Click Settings and Create New Column called “Tutors Name” (or change existing, unused, column “Title” to “Tutors Name”). See Figure 6.
Figure 6: Column name settings
- Follow Steps 1 and 2 above to create a Document Library called “Request Assistance” and Create New Column of type “lookup” and name it “Tutor Assigned”.
- In the Get Information From field, select “Tutors” from the dropdown.
- In the In This Column section, select the column as “Tutors Name” from the dropdown (see Figure 7).
- Click OK.
Note: The “Tutors” list and “Request Assistance” document library have to reside in the same site within SharePoint.
Figure 7: Create new column page
Now, as the requests get added to the “Request Assistance” document library, the supervisors have the ability to assign the request to a specific tutor from a dropdown. This dropdown dynamically pulls all the names of the tutors in the “Tutors” list that is managed separately, as shown in Figure 8.
Figure 8: Edit document properties
Taking It to the Next Level
Now, with a library that captures the tutors’ names, the SharePoint Business Data Catalog can be leveraged to connect to a back-end system that contains the tutors’ availability. Then, with a custom .NET feature, new requests automatically can be assigned to a tutor based on availability. This process automation can result in increased efficiency and cost savings for the English Department.
Scenario 2: How to Search for External Content Using SharePoint Search
A real estate company would like to provide its users the ability to search for Internet content from their intranet site. The company intranet is on SharePoint and the IT Director has observed that the many users are searching for Internet content and not utilizing any features of their SharePoint intranet site. The IT Director would like to ensure that users are visiting and using the new intranet site to its full potential and still have the ability to search Internet content from SharePoint.
To provide users with the ability to search Internet content on an intranet site in SharePoint, Content Sources can be leveraged. A Content Source is a location that contains content or resources that users would like to search. By default, SharePoint 2007 supports indexing or searching through web sites. Once a new Content Source has been added that indexes the external sites, the users can leverage the default SharePoint search to query content on both the intranet and Internet sites. This also allows the user to search for content from a central location and in a familiar user interface.
To add a new Content Source in SharePoint to search through an external site, follow these steps:
- Open SharePoint Central Administration and go to Shared Service Provider (SSP).
- Click Search Setting under the Search options (see Figure 9).
- Click Content Sources and Crawl Schedules within the Crawl Settings section, as shown in Figure 10.
- On the Manage Content Sources page, click New Content Source.
- Enter a Name for the Content Source and select Web Sites as the Content Source Type (see Figure 11).
- In Start Address, enter the URL for the external site and specify the crawl settings and schedules for the external site (see Figure 12). Click OK.
- The new Content Source will crawl at the next scheduled crawl. Now, when the user enters a search in SharePoint, it will query both the intranet and external web site.
Figure 9: Search settings in SSP
Figure 10: Search setting page
Figure 11: Adding content source
Figure 12: Specify content source
Taking It to the Next Level
Now that you know how to extend SharePoint to search for Internet sites, the organization can add competitors’ sites to the list of sites to be crawled to keep up to date on their competitors’ latest development. This will allow the real estate company to maintain a competitive edge by leveraging SharePoint to provide search results for content both internally and on competitors’ site for any specific search query.
As a part of any SharePoint initiative, we recommend that you start by understanding your customer’s real business requirements strategically before thinking of it as a tactical implementation. Once you have a solid grasp on the requirements, you can brainstorm multiple options that address those requirements in different ways. The options, together with the pros and cons, can be presented to the customer to demonstrate how some requirements can be met with configuration while others would require customization or programming. We hope that these two scenarios provided you with some insight into the power of configuration for custom lists and searching and encourage you to think creatively about addressing your customer’s needs before concluding that programming is an absolute necessity. The scenarios presented above are based on our experience in real projects.
Once a set of options has been created, they can be compared against the requirements and a cost-benefit analysis can be performed to understand the relative value of each option. Do not forget to include the ongoing support and maintenance costs in these calculations.
A follow-up and soon to be published article, “More ways to Maximize SharePoint’s Out-of-the-Box Features,” will walk you through three more real-world scenarios where SharePoint out-of-the-box features can be leveraged to address client needs without needing to write custom code.
About the Authors
Daan De Brouckere is an executive with Crowe Horwath LLP in the Oak Brook office. You can reach Daan at email@example.com.
Raj Agarwal is a developer with Crowe Horwath LLP in the Livingston office. You can reach Raj at firstname.lastname@example.org.