The Microsoft Office System Accelerator for Proposals


The proposal accelerator is a generalized solution designed so that you can use it horizontally across many different industries. Essentially, any organization that must prepare proposals, scopes of work, or detailed written plans can use the proposal accelerator. It is perhaps the most generic of all solutions because it works for any team that must prepare a document.

The first challenge any team faces when preparing a proposal is locating the document templates and company boilerplate materials that go into every document. In most organizations, these elements are kept in various file shares with cryptic names or mapped drives . Consequently, they are difficult to find. Most of the time, teams simply locate the person responsible for the documents and ask that person to forward them by e-mail. In other cases, individuals copy templates to their local machines and use them again and again only to discover that the actual company template changed long ago.

The proposal accelerator attempts to solve this problem by providing the centralized Content Library in the form of a SharePoint Services document library. This centralized library is integrated into the accelerator to ensure that only the most recent templates and boilerplate information is used. The Content Library is available to all proposal writers using the solution.

The next major challenge is to coordinate the work of several people and incorporate it into the final document. In most organizations, such coordination is handled in an ad-hoc way using e-mail notification. For example, if a proposal writer needs an estimate of effort from an engineer, they send an e-mail requesting the estimate. In some cases, the engineer may receive the proposal document as an attachment, but most likely they simply respond with the information in an e-mail. The proposal writer must then lift the content out of the e-mail and paste it into the document.

For small documents, this method may work fine, but problems arise when several people become involved in the proposal process. Some people have a copy of the proposal, others send e- mails with information, and still others might send spreadsheets. It becomes nearly impossible for the efforts to be coordinated and the results to be tracked.

The proposal accelerator helps with this problem by allowing a proposal writer to assign sections of the proposal to various team members and associate tasks with that assignment. The writer can literally assign responsibility directly from a section of the document in Microsoft Word. That assignment is tracked as part of a document workspace and is associated with the document through an XML schema.

Another challenge facing teams is locating documents that were successful proposals in the past. Quite often, proposal writers will ask others for a copy of a successful proposal. In many cases, these documents cannot be found. Because proposal writers have to manage the writing process alone, they typically keep the proposal on their personal computer. More often than not, this document is never moved to a searchable centralized document store.

The proposal accelerator solves this problem by managing all proposals from a central location. When the proposal is finished, it is stored in a document library that is searchable by future teams. Furthermore, the central management of proposals allows management to ensure a level of consistent quality across all proposals. At any time, a manager may look into the progress of a team and look across the organization to evaluate uniformity .

The Proposal Process

The proposal accelerator is designed to implement a simple business process that creates a new site with a new proposal document. The document can then be opened directly from the web site, and the author can immediately begin assigning tasks to the proposal team. Team members subsequently edit the document to complete their tasks.

Creating a new site for a proposal is accomplished from the Proposals Home page. From this page, users will see a link to the Proposal Library. Clicking this link displays a list of all individual proposal sites. The user may create a new proposal site by clicking the Create Proposal Site link. When creating the site, the user is asked to supply some basic information such as the site name and location, and then the site is created. Figure 11-1 shows a new proposal site.

click to expand
Figure 11-1: A new proposal site

When the new proposal site is created, a template proposal document is also created. The template proposal document is a Smart Document placed in the document library associated with the site. This document can then be opened in Microsoft Word for editing using the drop-down menu associated with the document.

When the document opens in Microsoft Word, the task pane for the Smart Document appears with the tools necessary to assign tasks to team members. The proposal author simply highlights the section to assign and clicks the "Assign a new section" link in the task pane. This action opens a dialog where the author can select the section name and team member to assign. Figure 11-2 shows the assignment dialog in Microsoft Word.

click to expand
Figure 11-2: Assigning sections to team members

In addition to assigning sections, the task pane also allows the author to search the Content Library for boilerplate information to include in the proposal. The author simply clicks the Library link in the task pane and types a keyword for the search. The search results return documents in the Content Library that match the keyword. The author may then preview the resulting documents and paste the desired text directly into the proposal. Figure 11-3 shows the task pane with results from a Content Library search.

click to expand
Figure 11-3: Searching the Content Library

Solution Architecture

Figure 11-4 shows a diagram of the underlying architecture upon which the proposal accelerator is based. The client-side components consist of a Smart Document that forms the foundation of the proposal. When loaded, the Smart Document brings along an XML expansion pack that ties the proposal into a web service. The web service is the backbone of the server-side solution together with SharePoint Services and a Metadata database.

click to expand
Figure 11-4: The accelerator architecture

SharePoint Services Components

The SharePoint Services components of the proposal accelerator are composed of three site templates. These templates allow you to create a site collection for proposals, a site for each individual proposal, and the Content Library to hold all of the templates and boilerplate information.

All proposal sites are created under a single top-level site. Within this site collection, you create a home page for proposals. This page acts as the starting point for any team that needs to create a proposal. The Proposals Home site is created using a template from the accelerator installation, and consists of little more than some instructions and a link to the Proposal Library.

The Proposal Library is also created from a template associated with the accelerator. It is a modified site creation page, which lists all of the individual proposal sites that exist in the collection. From this list, a user may create a new site for a specific proposal. The Proposal Library also acts as a very simple tool to manage the overall proposal process within an organization. Managers can, for example, filter the view based on any field defined in the list.

When a new individual proposal site is created, the accelerator builds the site based on another template. This template creates a new site with a Smart Document already available in the document library. The Smart Document is the template for the new proposal and is already associated with an XML expansion pack. Assuming the client-side installation is complete, the proposal process can begin when the template is opened in Microsoft Word.

The last site created for the accelerator is the Content Library. The Content Library is designed to hold all of the templates, boilerplate, and other data that may be important to proposal creation. Through the use of the Proposals Web Service, the Content Library is searchable directly from the task pane of Microsoft Word.

The Metadata Database

The Metadata database is a SQL Server database that keeps configuration information for the accelerator. You can access the database directly using SQL Server client tools, but there is very little you would ever want to do with this data. Be careful not to change any of the data should you choose to examine it.

The Proposals Web Service

The accelerator ships with a web service that facilitates the search and retrieval of information from SharePoint Services necessary to work within the document sections of the proposal. Unfortunately, almost no documentation on the web service ships with the accelerator. Furthermore, the web methods are not initially exposed through Web Service Description Language (WSDL), and you cannot set a reference to the web service in Visual Studio. In order to solve this problem, you must modify the web.config file associated with the web service to allow WSDL to be automatically generated.

To modify the web.config file, follow these steps:

  1. Log in to SPSPortal as a local administrator.

  2. Open the file C:\Program Files\Microsoft Solutions\Information Worker\Proposals\MSProposals\web.config in Visual Studio.

  3. Remove the following code from the file:

     <webServices>     <protocols>         <remove name="Documentation"/>         <!- This removes WSDL and help from being autogenerated ->     </protocols> </webServices> 
  4. Save and close the file.

  5. Select Start Administrative Tools Internet Information Services (IIS) Manager.

  6. In the IIS Manager dialog, right-click the SPSPortal node and select All Tasks Restart IIS.

  7. In the Start/Stop/Restart dialog, click OK.

Once the web.config file is modified, you can return the WSDL and set references to the web service. You can examine the members of the web service directly from a browser by navigating to the URL http://spsportal:6002/MSProposals.asmx . Table 11-1 lists the web service members and a brief description of each.

Table 11-1: Proposals Web Service Members

WEB METHOD

DESCRIPTION

SearchForSections

Searches Content Library for documentation that matches the given set of search properties.

Publish

Publishes files to a SharePoint site.

SendWmiEvent

Sends notifications to WMI. Used when section changes occur in the document.

SendNotificationEmail

Sends notifications via e-mail. Used when section ownership changes in the document.

GetUsers

Gets the list of users (including users from cross groups) for the site.

GetFilesProperties

Retrieves one or more file properties from a SharePoint site.

GetSolutionConfiguration

Gets the configuration information that corresponds to the config file for a particular solution namespace (e.g., microsoft.com/Solutions/InformationWorker/Proposals/ )

GetLibraries

Gets all SharePoint document libraries from the SharePoint server.

The Smart Document

The client side of the application consists primarily of a Smart Document that is associated with an XML schema and a task assignment utility. Using the associated XML schema, you can assign sections of the proposal to various team members directly from Microsoft Word. Users receive an e-mail notifying them that they have been assigned a section of the document to complete. A link to the document is included in the e-mail.

Customizing the Accelerator

Although you can perform some limited customization of the client installation, such as changing the logo associated with the solution, most of your customization efforts will be directed toward items on the server. When you first install the solution, it has a proposal template, but the template is blank. Additionally, the XML schema for the Smart Document has predefined sections that are unlikely to be immediately useful to your organization. Therefore, you will want to change these items as a first order of business.

The proposal template used by the solution can be located from the Proposals Home site. Clicking the Documents and List link on the home page will show the three document libraries used by the accelerator when creating new sites. Table 11-2 lists the available document libraries and provides a brief description.

Table 11-2: The Proposal Accelerator Libraries

LIBRARY NAME

DESCRIPTION

Help

A library containing the Help documents displayed in the solution

Manifests

A library containing the solution manifest and Smart Document schema

Templates

A library containing the proposal template for the solution

The simplest way to customize the template associated with the solution is to open it in Microsoft Word for editing. Once you open it in Word, you can edit the document or copy the contents of your organization's proposal template directly into the document. Then simply save the template back into the Templates document library.

After the template is customized, you will need to edit the Smart Document schema to reflect the document sections in your new proposal template. The schema is located in the Manifests document library, but the best way to edit it is to edit the file that was used for installation and then upload it again into the Manifests library.

The schema file can be found on the client at C:\Program Files\Microsoft Solutions\Information Worker\Proposals\ProposalsSchema.xsd . You can open this file directly in Visual Studio to edit the sections. Several default document elements are listed under a single General Section. Listing 11-1 shows a truncated example of how a section and its attributes are defined in the file.

Listing 11-1: Defining a Document Section and Attributes
start example
 <xsd:complexType name="GeneralSection" mixed="true">     <xsd:attributeGroup ref="SectionAttributeGroup" /> </xsd:complexType> <xsd:attributeGroup name="SectionAttributeGroup">     <xsd:attribute name="Title" type="xsd:string" use="optional" />     <xsd:attribute name="ID" type="xsd:string" use="required" />     <xsd:attribute name="CreatedBy" type="xsd:string" use="optional" />     <xsd:attribute name="DateCreated" type="xsd:long" use="optional" />     <xsd:attribute name="ModifiedBy" type="xsd:string" use="optional" /> </xsd:attributeGroup> 
end example
 
Caution

The attributes defined in the schema file should never be modified. The proposal accelerator expects these attributes to be present and can fail if they are deleted or changed.

Underneath each section, you can define document elements that may be assigned to team members. These are defined using a simple single-line element. The element is then tied back to the section. The following code shows a truncated example of how the document elements are defined in the schema.

 <xsd:element name="LegalNotice" type="GeneralSection" /> <xsd:element name="TableOfContents" type="GeneralSection" /> <xsd:element name="Overview" type="GeneralSection" /> 



Microsoft SharePoint[c] Building Office 2003 Solutions
Microsoft SharePoint[c] Building Office 2003 Solutions
ISBN: 1590593383
EAN: N/A
Year: 2006
Pages: 92

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net