role-based templates for sharepoint my sites:...

74
le-Based Templates for arePoint My Sites: der the Hood 7

Upload: tranduong

Post on 15-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Role-Based Templates for SharePoint My Sites: Under the HoodMay 2007

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

This article is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

2007 Microsoft Corporation. All rights reserved.

http://www.microsoft.com/sharepoint i

Table of ContentsRole-Based Templates for SharePoint My Sites: Under the Hood.......................iNeed for Role-Based My Sites.........................................................................2Strategy for Building Role-Based My Site Templates........................................4Microsoft Office SharePoint Server 2007.........................................................6My Site in Microsoft Office SharePoint Server 2007..........................................9Introduction to My Site Templates................................................................11Features......................................................................................................13Branding with Custom Banners, Logos and Themes.......................................13Collaboration...............................................................................................15

Alerts for Lists, Document Libraries......................................................15Presence Management.........................................................................16Outlook / Exchange Server Integration..................................................16Personalized by Custom Views on Lists and Document Libraries.............18

Business Process Management.....................................................................18Workflows............................................................................................18Custom Workflows using SharePoint Designer.......................................22Office Forms Server 2007.....................................................................23

Reporting....................................................................................................24Business Data Catalog..........................................................................24Architecture.........................................................................................25Metadata Model...................................................................................25

LOBSystem..........................................................................................................26LOBSystemInstance............................................................................................28Entity...................................................................................................................29Identifier..............................................................................................................30Method................................................................................................................31MethodInstance...................................................................................................32Parameter...........................................................................................................32TypeDescriptor....................................................................................................33DefaultValue.......................................................................................................36FilterDescriptor...................................................................................................37Association..........................................................................................................38

Sample Data for BDC Site Templates.............................................................39Business Intelligence....................................................................................40

Key Performance Indicator (KPI) Lists and Web Parts.............................40Key Performance Indicators on Excel Spreadsheets............................................40Key Performance Indicators from SQL Server Analysis Services Cube.................43

http://www.microsoft.com/sharepoint ii

Excel Services......................................................................................46Business Intelligence and Dashboards in Excel Services.........................50Connecting Excel Web Access Web Parts with Personalization Web Parts51

Document Lifecycle Management..................................................................52Versioning...........................................................................................52Expiration............................................................................................54Document Permissions.........................................................................56

Project Management....................................................................................57Extensibility of Site Templates......................................................................58Deployment.................................................................................................59Lessons Learned..........................................................................................59Resources....................................................................................................60

http://www.microsoft.com/sharepoint iii

Need for Role-Based My SitesPersonalization can be defined as providing the right information to the right person at the right time. It can greatly help enterprises to improve their employee’s job productivity and efficiency. Tools, by providing role-based personalized information and services, enhance employee’s efficiency and enable them to perform effectively in a current, dynamic, market-driven business environment. People planning different roles in the organization have different responsibilities. Technically, a role is a container for business transactions, applications, reports and links to all the related information. As the organization size grows, it becomes difficult to maintain consistency across the interfaces which are used for all business communications. In enterprises, employees have common tasks and activities based on the role they work in respective divisions. The need of the hour was to provide sites which show contents very relevant to the respective roles. This would be a one stop site for everything related to an individual’s business needs in an enterprise.

With personalization becoming an increasingly important business need and the key to effective collaboration, Microsoft® Office SharePoint® Server 2007 offers My Site, a personal site that pulls together summary views of personal information and provides full control over information "for me, by me, and about me." Role-Based Templates for SharePoint My Sites are custom templates designed for Office SharePoint Server 2007 and tailored to address the unique needs and requirements of specific roles. They are envisioned as extensions to the standard My Site functionality, providing a personal portal and dashboard data relevant to job roles.

Role-Based Templates for SharePoint My Sites can provide enhanced business insight and help drive company-wide productivity through a common interface to access priority information from varied sources and systems related to job roles, individual responsibilities, and surrounding processes. The templates display information in a way that is familiar and easy, and is built around the way people in the company work, enabling business decision-making with greater confidence.

In Microsoft Office SharePoint Portal Server 2003, each portal site had its own application services, such as search and My Site. In Office SharePoint Server 2007, all these services

http://www.microsoft.com/sharepoint iv

have become a part of Shared Services Provider and hence the crucial difference between Office SharePoint Portal Server 2003 My Site and Office SharePoint Server 2007 My Site is that there is no portal affiliation. Shared Services Provider (SSP) is a collection of application servers that provide shared services to any portals or sites that need them. These include Search, Index, Audience compilation, user profiles database, My Sites, Business Data Catalog and Excel Services. Office SharePoint Server 2007 provides a personalization site, which is a type of My Site, where the content can be personalized and targeted based on the user context. Using these services, sites specific to individual roles could be used in enterprises in conjunction with SharePoint Server My Sites.

Fig.1 – Shared Services Architecture

Strategy for Building Role-Based My Site Templates

In order to facilitate a personalized-context user experience, Office SharePoint Server 2007 has come out with a new Windows® SharePoint Services enterprise site called a

http://www.microsoft.com/sharepoint v

Personalization Site. Personalization sites are one of the My Sites that contains Current User filter and User Profile Property filter web parts which can be used to deliver the personalized user experience. The profile property filter assists in giving a role-based user experience since this web part can be connected to other web parts with custom views defined to filter content based on the user profile properties, such as Job, Title, etc.

Microsoft identified the following seven roles for developing role-based My Site templates after conducting a comprehensive research.

1. Sales Account Manager

2. Controller/Financial Analyst

3. HR Manager

4. IT Manager

5. Administrative Assistant

6. Customer Service Manager

7. Marketing Manager

The roles identified are managers with whom the decision making responsibility lies. This is one of the important distinctions made since organizations have separate staff and applications to do data entry work.

http://www.microsoft.com/sharepoint vi

Fig. 2 – Strategy to develop Role-Based My Site Templates

The Microsoft Dynamics team had conducted comprehensive research on enterprise roles and compiled personas for a mid-size organization. These personas mainly included their day–to-day activities, responsibilities and the information/reports that are viewed in the process of making business decisions critical to the organization in achieving its goals.

Apart from the above inputs, people playing similar roles entrusted with the same responsibilities were interviewed from a large-sized organization. The difference in the inputs from the above two sources is that in mid-size organizations, the managers are responsible for an entire range of functions within a role whereas in a large-size organization, the managers’ functions are more specialized and focused on one or more responsibilities.

For example, a Human Resources Manager (HR Manager) in a mid-size organization will be entrusted with the responsibilities of recruitment, claims processing, leave management, employee benefits and compensation, and performance reviews. On the other hand, in a large-size organization some of these responsibilities could be handled and executed by different HR Managers. Some of the functions, such as claims processing and leave management, could be totally automated by back-end systems.

http://www.microsoft.com/sharepoint vii

Technically, the process of developing the role-based My Site templates can be summarized in the following way:

1. Create a Personalization Site.

2. Create web part pages.

3. Create document libraries and lists with custom views based on user context.

4. Add the identified web parts pertaining to the roles.

5. Save the site as a template.

Microsoft Office SharePoint Server 2007Microsoft Office SharePoint Server 2007 is an integrated suite of collaboration and communication services designed to connect people, information, processes and systems both within and beyond the organizational firewall.

Office SharePoint Server 2007 has many new features and enhancements compared to Office SharePoint Portal Server 2003. Together, these new features and enhancements provide IT organizations with better control over information resources; individually, these new features and enhancements provide functional benefits that help reduce administrative overhead and help IT administrators work more efficiently and effectively. Some of the new features include:

Centralized configuration and management

Three-tier administration model

Tier 1 - for centrally managing the server farm

Tier 2 - for managing shared services across a server farm.

Tier 3 - for managing sites within a server farm.

Personalization Sites (My Site)

Item-level security

Document lifecycle management

Backup and recovery support

http://www.microsoft.com/sharepoint viii

Upgrade and migration support

Pluggable Authentication Providers for Custom Membership Database

Extensibility enhancements

Integration with LOB applications

Excel Services

Enhanced Business Intelligence capabilities through KPIs and Dashboards.

Automated Workflow for easy review/approval process

The diagram on the following page shows a snapshot of features available in Microsoft Office SharePoint Server 2007 and how the components are integrated.

http://www.microsoft.com/sharepoint ix

Fig. 3 –Features of Microsoft Office SharePoint Server 2007

http://www.microsoft.com/sharepoint x

My Site in Microsoft Office SharePoint Server 2007

My Site is the personal starting point for every user, where the users can edit their profile and add information to be shared with others. Every bit of information can be set to which group it can be shared with. For example, ‘everyone’ in the company, the ‘manager’ you report to, the ‘workgroup’ you are a member of, or ‘colleagues’ you frequently interact with. My Site is a place to save and share your work, a way to find and connect with other people in the organization, and a way to customize how other people in the organization can see your work. My Site is a dedicated site for the user’s own data and web parts.

Fig. 4 – Conceptual View of My Site

The public view of a My Site is called a profile page (My Profile). The profile page contains information that the user can share with others. For example: the user profile, links and sites. The profile page will show the most recent shared documents displayed per site, the user’s colleagues, and sites that the user is a member of.

http://www.microsoft.com/sharepoint

PersonalPortal

By Me – My Site

xi

Fig. 4.1 – My Home (left) and My Profile (right) pages in My Sites

Personalization sites are one of the types of My Sites which target information personalized for every member of the site by using personalized web parts and user filter web parts. Each personalization site is created by a site collection administrator or another user that has site creation permissions. Links to personalization sites can be added to the My Site top link bar by SSP administrators, and appear for every member of each site, or targeted to specific audiences. Links to personalization sites can also appear in the top navigation pane and the left pane of the All Site Content page of the main site.

Personalization sites are registered by the SSP (Refer to Fig. 4.2), so that personalization sites from all site collections that use the same shared service all appear in My Site, depending on the targeted audience of the personalization site link. Individual users can add links to other personalization sites that have not been registered by an administrator, but those sites only appear on that user's My Site top link bar. (Refer to Fig.4.3)

http://www.microsoft.com/sharepoint xii

Fig. 4.2 – Adding Personalization Site links in SSP

Fig. 4.3 – Personalization Site link in the My Site Top navigation bar

Introduction to My Site TemplatesOffice SharePoint Server 2007 provides a site definition for creating personalization sites. Unlike personal sites, which combine web parts that display information configured by Shared Services Provider (SSP) administrators, personalization sites are designed to be customized by site owners for a larger audience.

Site owners are selected during initial deployment by SSP administrators when they configure personalization links. The site owner of each site is typically the site

http://www.microsoft.com/sharepoint xiii

administrator for the site, and decides which audiences to use when targeting the display of the personalization link on the My Site navigation bar. Site administrators, possibly working with site designers, create and customize personalization sites based on recognized business needs.

The following are some of the benefits of the My Site templates:

Special site template with shared navigation

Content targeting and experience controlled by each hosting portal

Audience targeting

Easy to create and deploy

Site templates can be modified without affecting existing sites

Easy deployment with configured web parts and data connections

Improved personal and team productivity

More productive collaborative work environment

Re-use of information

Fig. 5 - My Site Navigation

http://www.microsoft.com/sharepoint

My Hom

e

My Role Site

My Profil

e

My Role Site Shared Navigation

Line of

Business (LOB

) Data

Key Perform

ance Indicators (KPIs)

Excel Dashboards

Personalized

Views of Lists and

Libraries

DocumentsPictures

BlogsRSS FeedsMeeting

Workspace

About MeIn Common

AvailabilityMemberships and Links

Organization Hierarchy

OWA Web Parts

xiv

Features Some of the common features of the templates are as follows:

Branding with Custom Banners, Logos and Themes

Collaboration – Alerts, Presence Management, Exchange Server Integration, Personalization

Business Process Management (Workflows)

Reporting – Business Data Catalog (BDC)

Business Intelligence – Key Performance Indicators (KPIs) and Excel Dashboards

Document Lifecycle Management

Project Management

The above features are explained in detail in the subsequent sections.

Branding with Custom Banners, Logos and Themes

Office SharePoint Server 2007 UI architecture is based on the Master Page concept of .Net Framework 2.0. All the pages have a master page associated with them which contains the definition of the page layout. As a result, the task of branding the sites becomes easier as custom logos and themes need to be applied only to the master page. All of the .aspx pages will inherit the master page. In general, branding is achieved by modifying the style sheet (core.css) and the master page. While the master page is edited to change the page layout, the style sheet is edited for applying themes. The master page and style sheets being referred to by the master page have to be uploaded to the site collection master page gallery. The sites can be made to inherit the master pages from that gallery. Customization of the master page and the style sheet is achieved by using a SharePoint-compatible editor, such as Microsoft Office SharePoint Designer 2007. The following screenshots show a custom banner applied to the HR Manager site template.

http://www.microsoft.com/sharepoint xv

Fig.7 – Custom Banner for HR Manager Site Template

Fig. 7.1 – Branded HR Manager Site

CollaborationAlerts for Lists, Document Libraries

Alerts are used as a mechanism to notify users about changes to documents and list items. The following picture shows the option to set alert in a list.

http://www.microsoft.com/sharepoint

Custom Logo goes here

xvi

Fig. 8 – Configuring Alerts in Lists and Libraries

The users can choose what type of changes needs to be notified. These changes can be

An item changed by someone else

An item created by you, but changed by someone

An item changed by someone which was last modified by you

An item changed and has a specific view

Anything of an item changed

Users can choose to receive alerts as soon as the change has happened, or as a consolidated report of all changes that happened on a daily/weekly basis.

Similar to List items, users can also set alerts on document libraries and on documents within a document library.

Presence Management

Microsoft Live Communications Server 2005 is a valuable part of the Microsoft Office system. It serves as the presence engine for team sites and portals, providing presence and IM access from within SharePoint sites. For example, the user can enable the Members web part to see the presence of anyone associated with a SharePoint site, allowing information workers to spend more time in their business productivity applications. The presence icon in site templates helps the end user enhance their daily productivity. The presence icon is enabled for the People/Group column type.

http://www.microsoft.com/sharepoint xvii

The following screenshot shows the presence icon.

Fig. 8.1 – Presence Management

Outlook / Exchange Server Integration

SharePoint goes well with Microsoft Office Outlook® 2007, allowing you to view downloaded contents, attach SharePoint documents to a mail and view SharePoint calendars from Outlook itself. To make an item available in Outlook, we need to “Connect to Outlook”. The below screenshots (Fig.8.2 and Fig.8.3) show a how a Document Library called “Meeting Outcome” gets connected to Outlook.

http://www.microsoft.com/sharepoint xviii

Fig. 8.2 – Library options to connect to Outlook

After the document library is connected to Outlook, any documents added to the library will immediately be shown in Outlook. Users can also attach SharePoint documents to emails, instead of downloading to a local system and attaching it. This increases flexibility and sharing of a document. User can also connect their Outlook calendar with their SharePoint site calendar. This enables the user to view discrete schedules for each of their roles/teams.

Fig. 8.3 – Outlook Integration of Lists and Libraries

http://www.microsoft.com/sharepoint xix

Personalized by Custom Views on Lists and Document Libraries

Custom Views created in document libraries and lists enables the end user to have a personalized experience where in only the documents/items created or modified by the end user are visible. (Refer to Fig. 8.4)

Fig. 8.4 – Custom Views on Lists and Libraries

Business Process ManagementBusiness Process Management is achieved through workflows and Microsoft Office InfoPath® forms in Office SharePoint Server 2007.

Workflows

Workflows are meant for automating the review process with less follow-up work. For example, if a Sales Account Manager has a proposal to be sent out to a customer and it has to be reviewed by three reviewers, the admin can define the workflow for the proposal document. This will automate the review process with less effort on the end user follow up. Each reviewer can be given x number of days to review and take necessary action (approve/reject with clarification). A business process will have the following steps:

http://www.microsoft.com/sharepoint xx

1. Select Workflow type

2. Assign reviewers/approvers

3. Assign Task

4. Approve/Reject

Workflows can be configured to be started manually by the end user or automatically when a new item is created. Following are the steps involved in configuring a typical Approval workflow for when the end user is given an option to start the workflow manually.

1. Select Workflow type - To define a workflow for a document, right-click the document and click on “Workflows”. (Refer to Fig. 9)

Fig. 9 – Initiating Workflows Manually

2. Assign approvers/reviewers - The next step is to assign tasks to approve the document and set a time limit for the task to be completed. (Refer to Fig. 9.1)

http://www.microsoft.com/sharepoint xxi

Fig. 9.1 – Assigning Approvers/ Reviewers in the Workflow

3. Assign Task - Once the workflow is initiated, there will be a task assigned to each of the approvers to approve the document. The person initiating the workflow process can update the task with their custom message, which will be shown to each approver.

Fig. 9.2 – Workflow Status

http://www.microsoft.com/sharepoint xxii

4. Approve/Reject - Each of the approvers will be able to see the workflow pending for their approval under “Running workflows”. Approvers can click on respective task titles and “Edit Item” to approve/reject. (Refer to Fig. 9.3 and Fig. 9.4)

Fig. 9.3 – Workflow Tasks

Fig. 9.4 – Approving/Rejecting

http://www.microsoft.com/sharepoint xxiii

Custom Workflows using SharePoint Designer

Workflows can also be created using SharePoint Designer 2007. The advantage of using SharePoint Designer 2007 is that you can have complex, logical conditions based on the sequence and actions of the workflow. (Refer to Fig. 9.5 and Fig. 9.6)

Fig. 9.5 – Defining and attaching a workflow in SharePoint Designer

For example, if you need to monitor any news document published in the “Corporate News” document library and alter the workflow process based on many conditions, then it is better to use SharePoint Designer 2007.

Let’s say that in an organization, the following conditions for publishing news exist:

If the finance news is published in an enterprise, then a message should be sent to “Financial Controllers” and assign them a task to review the news.

If the news is published by anyone else during the winter holiday break, then postpone it until 2nd of January 2007, as most of the employees will be on vacation.

http://www.microsoft.com/sharepoint xxiv

Fig. 9.6 – Workflow Steps

Office Forms Server 2007

Office Forms Server 2007 provides server-based Microsoft Office InfoPath forms that are accessible from a browser, without requiring the InfoPath client application or a form download. Forms Server enables business process owners to create workflows and archiving for forms-based processes. Forms Server is built on the core Office SharePoint Server 2007 and Windows SharePoint Services 3.0 components. Microsoft has overhauled this aspect of SharePoint with XML-driven InfoPath forms that are available on a variety of platforms, including portable wireless devices. Client/Server based form maintenance has been centralized and improved for business processes for partner and customers.

The following is a sample InfoPath form to capture minutes of a meeting.

We need to decide on the following while designing the Form:

Layout – Whether the page should be a lengthy page or should it be wider? Based on this we can decide on how many tables required and how many columns need to be defined within the table.

http://www.microsoft.com/sharepoint xxv

Controls – What type of controls need to be provided for user to enter data in a faster/easier manner?

Source - Which is the data source for this Form? Has the source got all the required fields to show in the form?

Views - What are the different types of views required to view this form?

Finally, has the form design got any flaws?

All these questions are well captured using InfoPath to design a form.

Fig. 9.7 – Microsoft Office InfoPath Form Template

ReportingBusiness Data Catalog

Business Data Catalog, a new feature introduced in Microsoft Office SharePoint Server 2007, provides an easy way to integrate business data from back-end server applications, such as SAP or Siebel, within Office SharePoint Server 2007 without writing any code. The

http://www.microsoft.com/sharepoint xxvi

Business Data Catalog application file is an XML file that needs to be uploaded to the Shared Services Provider of Office SharePoint Server 2007.

Architecture

Business Data Catalog comprises a metadata repository and an object model that provide a unified and simple way to invoke operations and a consistent, object-oriented programming interface for business logic that lives in the various business applications.

Fig. 10 – Business Data Catalog high-level architecture

Note: You can use the Business Data Catalog to connect to any back-end enterprise application through web services or database.

Metadata Model

Metadata is the data about the business application API’s. One of the major design goals for the Business Data Catalog is to enable you to surface business data from various business applications such as SAP, Siebel, and databases in Microsoft Office SharePoint Server 2007 with minimal coding effort. To achieve this goal, the Business Data Catalog provides homogeneous access to the underlying data sources with a declarative metadata model that provides a consistent and simplified client object model. Metadata

http://www.microsoft.com/sharepoint xxvii

Object base class is the abstract class of most Business Data Catalog classes. All MetadataObject objects share the following characteristics:

Child Type DescriptionName Attribute

(String)Programmatic name of the metadata object. After metadata is in use, do not change the metadata object name or applications using the metadata object fail.

DefaultDisplayName Attribute (String)

If there is no suitable LocalizedDisplayName, the UI displays DefaultDisplayName. If there is no DefaultDisplayName, the UI displays Name.

Is Cached Attribute (Boolean)

If false, the Business Data Catalog does not cache the metadata object in memory.

LocalizedDisplayNames Element Container element for LocalizedDisplayName.Properties Element Container element for Property.

Fig. 10.1 - Business Data Catalog Metadata Model

LOBSystem

A LOBSystem object is the source of business data, business logic or both. The LOBSystem object derives from the Metadata Object base class. Each LOBSystem object has a unique name.

The following example shows XML for LOBSystem objects that represents a database.

<? xml version="1.0" encoding="utf-8" standalone="yes"?>

http://www.microsoft.com/sharepoint xxviii

<! -- The Business Data Catalog treats the name you specify here as the application name. This is the name that appears in the Administration user interface. --><LobSystem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="Database" Version="1.0.0.0" Name="MySiteFinancialAnalystLOB" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

<Properties><! -- The Business Data Catalog uses the Wildcard character specified here with filter parameters. -->

<Property Name="WildcardCharacter" Type="System.String"> %< /Property></Properties>....</LobSystem>

http://www.microsoft.com/sharepoint

LOBSystem Name in Shared Services – BDC

Interface

xxix

Fig. 10.2 – BDC Administration User Interface

LOBSystemInstance

The main purpose of the LobSystemInstance object is to provide authentication and connection string information to the Infrastructure component of Business Data Catalog. The Infrastructure component provides run-time connection management for Business Data Catalog clients. The LobSystemInstance object must have a unique name.

The following example shows XML for LOBSystemInstance object.

<LobSystemInstances><! -- An LobSystem can have only one LobSystemInstance. The LobSystemInstance defines the connection and authentication parameters. -->

<LobSystemInstance Name="MySiteFinancialAnalystLOBInstance"><Properties>

<! -- AuthenticationMode can be set to PassThrough, RevertToSelf, RdbCredentials or Windows Credentials--><Property Name="AuthenticationMode" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAuthenticationMode">RevertToSelf</Property><! -- Can be SQL Server, OlEDB, Oracle, or ODBC for database systems. -->

<Property Name="DatabaseAccessProvider" Type="Microsoft.Office.Server.ApplicationRegistry.SystemSpecific.Db.DbAccessProvider">SqlServer</Property><! -- The name of your server hosting the database or the name of the SQL Server instance in the format SQLServer\Instance. -->

<Property Name="RdbConnection Data Source" Type="System.String">MOSS</Property><! -- The name of your database -->

<Property Name="RdbConnection Initial Catalog" Type="System.String">MySiteFinancialAnalystRole</Property><! -- Integrated Windows Security -->

<Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property><! -- Connection Pooling -->

<Property Name="RdbConnection Pooling" Type="System.String">false</Property>

</LobSystemInstance></LobSystemInstances>

http://www.microsoft.com/sharepoint xxx

Fig. 10.3 – Configuring BDC web parts to LOBSystemInstance and Entity

Entity

An Entity object is a business object, such as Customer or Product, in line-of-business (LOB) applications. In the Business Data Catalog, an Entity object belongs to a single LOB system. As with all the metadata objects, it derives from the Metadata Object base class and must have a unique name.

Entities contain identifiers, methods, and actions. Entities can also have other related entities associated with them. For example, Top5Products and SalesGeographies entities in the MySiteFinancialAnalyst system (the Controller-Financial Analyst template) have an association because they share a relationship: Products sold in geographies. This relationship is implemented as an association in the metadata.

The following example shows XML for Entity object.

<Entity EstimatedInstanceCount="100" Name="Top5Products"><Identifiers>

<Identifier TypeName="System.Int32" Name="ProductID"/></Identifiers>

………..</Entity>

http://www.microsoft.com/sharepoint

LOBSystemInstance

xxxi

The name of the entity appears while configuring Business Data Catalog web parts as shown below.

Fig. 10.4 – Entity Name while configuring BDC web parts

Identifier

In the Business Data Catalog, Entity instances should have a persistent identity, such as a primary key, so that you can search for and locate them using the key (identifier). Without an identifier, the Business Data Catalog cannot uniquely identify an entity instance. The data returned by a back-end application method is just a blob of data without identifiers. Only if the returned data also has identifiers can the data have semantic meaning in the Business Data Catalog, and only then can you have actions, search, and index on the entities.

The following example shows XML for Identifier object.

<Entity EstimatedInstanceCount="100" Name="Top5Products"><! – Identifier ProductID defined for Top5Products --><Identifiers>

<Identifier TypeName="System.Int32" Name="ProductID"/></Identifiers>

………..</Entity>

http://www.microsoft.com/sharepoint

Entity Name

xxxii

Method

Methods are the operations related to an entity that you can perform in the line-of business (LOB) application. Methods represent pointers to business logic in a business application. The metadata for a Method essentially describes a method signature; for example, the name of an SQL stored procedure, an SQL query, or a Web services method. The definitions for the method signatures live in the LOB application. The Method metadata object provides the information about that method so the Runtime object model can query the metadata repository for this information when a client wants to execute the method.

Methods contain Parameter, MethodInstance and FilterDescriptor. The following example shows the XML for Method object.

<! – Method Name --><Method Name="GetTop5Geography">

<! – Method Properties --><Properties><Property Name="RdbCommandText" Type="System.String"><! -- T-SQL query to fetch the top 5 geographies -->

SELECT Top 5 SalesGeography.GeoID, Geography, SUM (NoOfUnits) AS NoOfUnits,

'$'+CONVERT (VARCHAR (50), SUM (Revenue), 1) as TotalRevenueFROM SalesDetailsINNER JOIN ProductSalesMappingON SalesDetails.SalesID=ProductSalesMapping.SalesID

INNER JOIN SalesProductON ProductSalesMapping.ProductID=SalesProduct.ProductIDINNER JOIN SalesAccountON SalesDetails.AccountID=SalesAccount.AccountIDINNER JOIN GeoCountryON SalesAccount.CountryID=GeoCountry.CountryIDINNER JOIN SalesGeographyON GeoCountry.GeoID=SalesGeography.GeoIDWHERE SalesProduct.ProductID=@ProductIDGROUP BY Geography,SalesGeography.GeoIDORDER BY TotalRevenue DESC</Property>

<! -- Command Type could be text or Sql Stored Procedure --><Property Name="RdbCommandType" Type="System.Data.CommandType,

System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">Text</Property>

</Properties><Parameters>………………….

http://www.microsoft.com/sharepoint xxxiii

</Parameters></Method>

MethodInstance

A MethodInstance object describes how to use a method via a specific set of default values and a method instance type, which is a Business Data Catalog semantic. A MethodInstance object is a reference to a method, plus the default values for the parameters. A MethodInstance is executable whereas a Method is not. A single method can have multiple method instances, with each MethodInstance object being a combination of the method signature and a set of default values. You can use method instances to execute the same method with different default values.

The following example shows XML for MethodInstance object.

<MethodInstances><MethodInstance Type="Finder" ReturnParameterName="Top5Products" Name="SalesProductFinder">

</MethodInstance><MethodInstance Type="SpecificFinder" ReturnParameterName="Top5Products" Name="SalesProductSpecificFinder"></MethodInstance></MethodInstances>

Parameter

Parameter objects define the in, out, and return parameters of each method. In cases where a Web method returns void, it is likely returning a value in an out parameter. You must describe that parameter as the return parameter in the metadata. A return parameter in the Business Data Catalog is the value it should read from the back-end application. Parameters contain information such as:

The direction of the parameter (In, Out, InOut, Return).

The ordinal number of the parameter in the method signature.

Whether the parameter is optional.

TypeReflector: Every Parameter object contains a TypeReflector. The TypeReflector is responsible for instantiating a Parameter object filled with default values according to the structure indicated by the TypeDescriptor, and

http://www.microsoft.com/sharepoint xxxiv

getting or setting values for individual fields referenced by type descriptors in the instantiated Parameter object.

The following example shows XML for Parameter object.

<Parameters><Parameter Direction="In" Name="@ProductID"><! -- TypeDescriptor for Input Parameters -->

<TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID" Name="ProductID"/>

</Parameter>…</Parameters>

TypeDescriptor

Every Parameter object has a TypeDescriptor object that defines the data type of the parameter. It is the most complex metadata object—a hierarchical object that recursively describes an abstract data structure built up of primitives. In addition, each leaf node of the TypeDescriptor tree points to a set of possible default values specified by the MethodInstance object. Therefore, given a MethodInstance object and a parameter, the parameter's TypeDescriptor object is a recipe to instantiate a default value for that parameter.

TypeDescriptors in Input Parameters The Identifier Name attribute on an input TypeDescriptor signals the Business Data Catalog to insert the identifier value of the entity instance of relevance before executing the method. For example, if this is part of a Specific Finder MethodInstance, the user has probably provided the identifier value for the entity instance he or she wants to retrieve. The Business Data Catalog inserts that value into this slot after fully instantiating this parameter by using all the default values.

The Associated Filter attribute on an input TypeDescriptor signals the Business Data Catalog to insert the user or system provided value after instantiating the parameter and before executing the method. For example, if this is part of a Finder MethodInstance, the user has provided values for some or all filters associated with the method. These are inserted into the tagged slots before method execution. The following example shows the TypeDescriptor XML for input parameters.

http://www.microsoft.com/sharepoint xxxv

<Parameters><Parameter Direction="In" Name="@MinProductID"><! -- TypeDescriptor for Input Parameters --><TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID"

AssociatedFilter="Key" Name="MinProductID"><DefaultValues>

<DefaultValue MethodInstanceName="SalesProductFinder" Type="System.Int32">1</DefaultValue>

</DefaultValues></TypeDescriptor ></Parameter><Parameter Direction="In" Name="@MaxProductID"><TypeDescriptor TypeName="System.Int32" IdentifierName="ProductID"

AssociatedFilter="Key" Name="MaxProductID"><DefaultValues>

<DefaultValue MethodInstanceName="SalesProductFinder" Type="System.Int32">99999</DefaultValue>

</DefaultValues></TypeDescriptor></Parameter><Parameter Direction="In" Name="@Description"><TypeDescriptor TypeName="System.String"

AssociatedFilter="Description" Name="Description"><DefaultValues>

<DefaultValue MethodInstanceName="SalesProductFinder" Type="System.String">%</DefaultValue>

<DefaultValue MethodInstanceName="SalesProductSpecificFinder" Type="System.String">%</DefaultValue>

</DefaultValues></TypeDescriptor>

</Parameter>

TypeDescriptors in Return Parameters For database systems, the root TypeDescriptor object of the return parameter always has the IsCollection flag set. This is because all output from a database is a record stream regardless of the semantic context—that is, whether a single record (SpecificFinder/ViewAccessor) or multiple records (Finder) are expected.

Database systems are modeled as a stream of records. As a result, the root TypeDescriptor is a stream and the next level TypeDescriptor is a record. Even though a record is a collection of columns, the IsCollection flag is not set because

http://www.microsoft.com/sharepoint xxxvi

we want the Business Data Catalog to treat it as a structure of strongly typed fields. The following example shows the TypeDescriptor XML in Return Parameters.

<Parameter Direction="Return" Name="Top5Products"><! -- TypeDescriptor for Data Reader --><TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true" Name="Top5ProductsDataReader"><TypeDescriptors><! -- TypeDescriptor for Data Record --><TypeDescriptor TypeName="System.Data.IDataRecord, System.Data, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Top5ProductsRecord"><TypeDescriptors><! -- TypeDescriptors for Return Parameter -->

<TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierName="ProductID" Name="ProductID" /> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Product" /><TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="NoOfUnits">

<LocalizedDisplayNames><LocalizedDisplayName LCID="1033">UnitsSold</LocalizedDisplayName>

</LocalizedDisplayNames></TypeDescriptor ><TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="TotalRevenue"/></TypeDescriptors></TypeDescriptor></TypeDescriptors></TypeDescriptor></Parameter>

TypeDescriptors in Associations An Association MethodInstance object contains slots in the input for the identifier values of the source entity instance, and a slot in the output for the identifier values of the destination entity instances. Therefore, you must tag enough input TypeDescriptor objects tagged with identifiers corresponding to each identifier of each entity that is a source in the association in the Association method. The Identifier Name attribute on an input TypeDescriptor object signals the Business

http://www.microsoft.com/sharepoint xxxvii

Data Catalog to insert the identifier value of the entity instance of relevance before executing the method.

The following example shows the TypeDescriptor XML in Associations. The Source Entity is Top5Products and Destination Entity is Sales Geographies.

<TypeDescriptors><!-- This is the TypeDescriptor for the return parameter Sales Geographies in the method GetTop5Geography in the entity Top5Products.The return parameter is being tagged with its Identifier GeoID --><TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" IdentifierEntityName="SalesGeographies" IdentifierName="GeoID" Name="GeoID"/>

<TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="Geography" />

<TypeDescriptor TypeName="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="NoOfUnits">

<LocalizedDisplayNames><LocalizedDisplayName

LCID="1033">UnitsSold</LocalizedDisplayName></LocalizedDisplayNames></TypeDescriptor><TypeDescriptor TypeName="System.String, mscorlib,

Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" Name="TotalRevenue"/></TypeDescriptors>

DefaultValue

Some methods have complex signatures. For example, the Web service to get SAP customers might take six parameters, three of which might be structures with sub parameters. To make it easier for users to call these methods, the Business Data Catalog allows you to specify default values for the parameters in the metadata. This way, users can invoke predefined business logic without having to undertake parameter construction. The user can override any input parameter for which you have defined a DefaultValue. The user must specify any input parameter that has no DefaultValue, if the parameter is not optional.

The following example shows XML for Default Value in a parameter.

<Parameter Direction="In" Name="@MinGeoID">

http://www.microsoft.com/sharepoint xxxviii

<TypeDescriptor TypeName="System.Int32" AssociatedFilter="Key" Name="MinGeoID">

<DefaultValues><! – Default Value for the MinGeoID -->

<DefaultValue MethodInstanceName="SalesGeographiesFinder" Type="System.Int32">1</DefaultValue>

</DefaultValues></TypeDescriptor >

</Parameter>

FilterDescriptor

Filters are the fundamental way in which the Business Data Catalog captures user (or system) input and plumbs it through to the backend API invocation. FilterDescriptors describe where in a complex series of parameters, a filter value should be inserted. This is accomplished by 'tagging' the TypeDescriptors representing complex parameters of a Method definition to flag where the insertion should happen. It is important to note that the backend must supply the functionality for filtering; the FilterDescriptors merely form a mechanism to surface this to the end user. FilterDescriptor objects are owned (contained) inside Method objects. They are subsequently referred by TypeDescriptor objects.

The following example shows the XML for filter descriptors. Current Context of the User can also be passed to methods using UserProfileProperty.

<FilterDescriptors><FilterDescriptor Type="Comparison" Name="Key"/><FilterDescriptor Type="Wildcard"

Name="Description"></FilterDescriptor><! -- The Context of the Current User can be passed to Methods using the UserProfile FilterDescriptor. Note that the UserName is defined in the UserProfiles and Properties under Shared Services Provider -->

<FilterDescriptor Type="UserProfile" Name="CurrentUser"><Properties>

<Property Name="UserProfilePropertyName" Type="System.String">UserName</Property>

</Properties></FilterDescriptor >

</FilterDescriptors>

Association

An Association object links related entities within a system. An Association holds pointers to the parent and child entities as well as a pointer to the business logic (a MethodInstance object) that allows a client to get the child entity from the parent entity.

http://www.microsoft.com/sharepoint xxxix

The traversal of an association is a method call on the line-of-business (LOB) system. The Source Entity and Destination Entity objects are not separate metadata objects. They are instances of the Entity metadata object. Both Source Entity and Destination Entity objects should exist in the same LobSystem object.

The Association logic (MethodInstance) can be on any entity, either source or destination or an unrelated entity. However, the order in which you define the source and destination entities is very important because the XML file is processed from top to bottom. Therefore, ensure that the entities referenced in the Association method are defined before the entity containing the Association method. If they are not in the right order, you will receive an error when you try to add the application definition to the Business Data Catalog. This is because the Association method will contain references to entities that are not yet created.

The following example shows the XML for Association. The Source Entity is Top5Products for which the SalesGeographies entity is being associated as a Destination Entity through the GetTop5Geography method.

<Associations><! -- Defines the AssociationMethodEntityName, AssociationMethodName, AssociationMethodReturnParameterName, Source Entity, Destination Entity -->

<Association AssociationMethodEntityName="Top5Products" AssociationMethodName="GetTop5Geography" AssociationMethodReturnParameterName="SalesGeographies" Name="TopProductToTopGeography" IsCached="true">

<SourceEntity Name="Top5Products" /><DestinationEntity Name="SalesGeographies" />

</Association></Associations>

http://www.microsoft.com/sharepoint xl

Fig. 10.5 – Business Data List and Related List web part showing Association

Sample Data for BDC Site TemplatesThe site templates come with a sample database and a BDC application file based on that database. When the site templates are deployed and configured, the end user will be able to see sample data which gives an idea about the BDC features. The data shown in the site templates is defined by the role. For example, a Controller in an organization will be keen on tracking the top products sold and its top geographies. Taking the above into consideration, the entities were defined. In order to fetch the data corresponding to these entities, the identifiers methods and its input/output parameters were defined by mapping the entities to the database.

Following are the two ways in which an end user can customize the BDC.

1. If the schema of the entities defined in the sample data and the template is similar to the entities required by the end user, they can modify the source tables of the entity methods accordingly.

http://www.microsoft.com/sharepoint

Business Data List web part

Association shown in Business Data Related

List web part

xli

2. If the schema of the entities defined in the sample data and the template are different from the one required by the end user, they can modify the existing schema in the sample application file or author a new BDC application file.

Business IntelligenceOffice SharePoint Server 2007 helps organizations provide business intelligence (BI) capabilities to every employee, so they can share, control, and reuse business information in order to make better business decisions. The BI features in Office SharePoint Server 2007 provide Web and programmatic access to published Office Excel spreadsheets, programmatic reuse of LOB data, and easy development of Web-based BI dashboards that can incorporate rich, data-bound key performance indicators (KPIs), web parts, and published spreadsheets. KPIs can be displayed from various sources such as Excel, SQL Analysis Services Cube, SharePoint lists and manually entered information. The performance data can be entered manually, or shown from an Excel sheet or a SQL Analysis Services cube.

Key Performance Indicator (KPI) Lists and Web Parts

The KPI list is a new list type in Office SharePoint Server 2007 that enables you to connect to information sources such as Excel, SQL Server Analysis Services, SharePoint lists, or manually entered information, and allows you to track your KPIs from these data sources. With the KPI list, you can see current values, target values, trends, and status using visual indicators. Indicators can be created using data in SharePoint list, Excel workbook, SSAS cube and manually entered information.

Key Performance Indicators on Excel Spreadsheets

Office Excel is the de facto language of business planning, reporting and analysis. Office SharePoint Server 2007 allows tracking of these reports, analysis and data through Key Performance Indicators. The KPI List in Office SharePoint Server allows users to create KPI’s based on the data in Excel.

http://www.microsoft.com/sharepoint xlii

Fig. 12 – KPI using data in Excel Workbook

We can specify the workbook URL which contains the indicator value. We can either mention the goal and warning values from Excel cells or manually. The following screenshot shows how a KPI is getting created. The source for this KPI is “CompanyBudget.xslx” and the Indicator value is taken from Cell Address G5. The target for goal and warning values are entered directly in this example, which can also be retrieved from Excel Sheet Cell value.

http://www.microsoft.com/sharepoint xliii

Fig. 12.1 – Configuring Workbook URL for KPI List Items

Fig. 12.2 – Configuring KPI List Items for data in Excel Workbook

http://www.microsoft.com/sharepoint xliv

After creating KPI List and KPIs we can render them in a web part called “Key Performance Indicator”. The screenshot below shows one such web part with title “Company KPI”.

Fig. 12.3 – Configuring KPI Web part to KPI List

Key Performance Indicators from SQL Server Analysis Services Cube

SQL Server Analysis Services Cube allows creation of KPI’s based on the measures and dimensions defined in the cube. The KPI List in Windows SharePoint Services 3.0 allows creating indicator items referring to the KPIs defined in the SSAS cube. The items can be connected to the SSAS cube through an Office Data Connection file (.odc) in the data connections library. The whole process consists of the following steps

Create a new Indicator which uses data from SQL Server 2005 Analysis Services

Provide the connection to the cube through an Office Data Connection file in the data connection library

Select the KPI from the KPI list and name it

http://www.microsoft.com/sharepoint xlv

Once configured, the KPI list items start showing the indicator status of the KPI from the SSAS cube. The following screenshots show the configuration steps.

Fig. 12.4 – Creating new SSAS Cube KPI List Items

Fig. 12.5 – Configuring to SSAS Cube KPI through Office Data Connection file

http://www.microsoft.com/sharepoint xlvi

Fig. 12.6 – Selecting KPI List Items from the SSAS Cube

Fig. 12.7 – KPI List Items configured to SSAS KPI

http://www.microsoft.com/sharepoint xlvii

Fig-12.8 – KPIs filtered by the dimensions using SSAS Filter web parts

Excel Services

Excel Services is a new server technology that is included in Microsoft Office SharePoint Server 2007. Excel Services extends the capabilities of Microsoft Office Excel 2007 by enabling the broad sharing of workbooks, improved manageability and security, and the ability to reuse workbook models through a scalable server-based calculation service and interactive Web-based user interface (UI).

Excel is the most widely used tool for performing data analysis and reporting. As a business intelligence tool, Excel 2007 becomes more powerful by integrating with Microsoft SQL Server 2005 Analysis Services to provide a rich end-user analysis tool. Excel 2007 includes newly designed Pivot Table reports, a new formula-based model for accessing Analysis Services data, improved sorting and filtering capabilities, and a completely redesigned visualization engine.

Excel Services enables workbook authors to share workbooks that take advantage of this new business intelligence functionality through the browser. You can create fully interactive, data-bound workbooks that include charts, tables, and Pivot Table reports as parts of a portal, dashboard, or business scorecard, without requiring any development,

http://www.microsoft.com/sharepoint

SSAS Filter web parts showing dimensions

KPIs filtered as per the dimensions

xlviii

and that present a "single version of the truth." Excel Services consists of three core components:

Excel Calculation Services - This component is the "heart" of Excel Services. It loads the workbooks, calculates them, refreshes external data, and maintains session state for interactivity.

Excel Web Access - This SharePoint web part (a reusable component) creates HTML renderings from the results returned by Excel Calculation Services so that users can display them in a browser and interact with them. In a customization scenario, SharePoint developers can use this component along with other SharePoint Web Parts to create a wide range of Web pages.

Excel Web Services - This component is a Web service hosted on Windows SharePoint Services that provides programmatic access to workbooks calculated by Excel Calculation Services. It enables applications to automatically update Excel workbooks or to incorporate calculations performed by Excel Services without having to re-create the underlying business logic.

These three components are divided into two groups: those associated with the Web front end and those associated with the application-server tier. The simplest configuration is for both these tiers to reside on the same physical server. To add capacity, these two tiers would more likely be located on separate computers. You can add more Web front-end or application server computers to a configuration to increase capacity and performance.

http://www.microsoft.com/sharepoint xlix

Fig. 12.9 – Core Components of Excel Services

Also included in the Web front end is an Excel Calculation Services proxy that handles communication between the tiers in a multiple-server configuration. It also handles load balancing in cases where there is more than one physical application server (this component is not exposed to developers).

Excel Services helps publish spreadsheets to SharePoint sites, including spreadsheets that incorporate powerful new client capabilities such as data visualization and richer Pivot Table views and Pivot Chart views. Users require no additional software to access these interactive spreadsheets in a Web browser, and all calculations are performed on the server. The following screenshot shows an Excel Web Access web part which interacts with an Excel workbook to display Profit/Loss of a company as a chart.

http://www.microsoft.com/sharepoint l

Fig. 12.10 – Configuring Excel Web Access web part

The Excel Web Access web part provides many interactive features for the admin to configure on the Excel data source. You can choose whether the data can be sorted, filtered, refresh dynamically etc. The screenshot below shows a couple of properties available in the Corporate Performance web part.

Fig. 12.11 – Excel Web Access web part Navigation and Interactivity options

http://www.microsoft.com/sharepoint li

Business Intelligence and Dashboards in Excel Services

Excel spreadsheets are a very popular reporting and calculating tool. The Pivot Tables are one of the most powerful features in Excel. They allow you to quickly summarize and analyze large amounts of data in lists and tables--independent of the original data layout in your spreadsheet--by dragging and dropping columns to different rows, columns, or summary positions.

The data source for the pivot tables could be either of the following:

1. Data in Excel Spreadsheets

2. SQL View/Table

3. SQL Server Analysis Services (SSAS) Cube

The connection to a SQL view/table or SSAS Cube is established through Office Data Connection (.odc) files.

Creating and maintaining dashboards in an organization can be a time consuming process as it requires the developer to write custom code to access, visualize and organize the business information and data in such a way so that the end users in the organization can keep a tab on the organization’s performance and make the right business decisions. Office SharePoint Server 2007 offers a set of web parts with which a dashboard can be built without writing any custom code. Primarily these dashboards include:

Excel Spreadsheets which allow technical and non-technical users in the organization to leverage their existing knowledge of Excel to create various interactive views of the data and integrate it with the dashboard.

SharePoint Filter web parts which can be connected to other web parts in the page without writing any code and enabling the end user to view the information quickly and easily. Filters can be set up to allow users to pick from a predetermined set of values, enter a date/number/string, filter on the user viewing the dashboard, filter on values in an external database, and so on.

http://www.microsoft.com/sharepoint lii

Connecting Excel Web Access Web Parts with Personalization Web Parts

Personalization site contains two web parts by default. These are:

Current User Filter web part: This web part is configured to pass the current user name by default. Web parts with custom views can be used to give a personalized experience.

Profile Property Filter web part: This web part fetches all the user profile properties from the user profiles database and can pass these as filter value to other web parts. This helps in giving the end user a role based user experience. For example, if the organization wants to push the sales reports to the sales managers displaying only his/her sales data, the Excel Web Access web part with Username as a report parameter can be connected to the Profile Property Filter web part which can pass the logged-in user’s profile properties such as Job, Title, Location etc. to the Sales Report to filter the data accordingly.

Fig. 12.12 – Profile Property Filter web part passing current user name to Excel Web Access web part

http://www.microsoft.com/sharepoint

Current User and Profile Property Filter web parts

Profile Property Filter web part connected to Excel Web Access

passing Username as Filter Value

liii

Document Lifecycle ManagementWith the new document management components of Office SharePoint Server 2007, SharePoint no longer simply provides a platform for document collaboration. Office SharePoint Server 2007 becomes a full-featured solution for managing business documents.

You can maintain all your documents in a SharePoint Document Library. You can classify the documents by creating required Document Libraries. Office SharePoint Server 2007 also gives you the flexibility of maintaining different versions of the same document and assigning permissions to users who can access the documents.

Versioning

To enable versioning of documents in your document library, you need to first visit the document library and right-click on Settings. Click on the Library Settings, as shown below.

Fig. 13 – Versioning Configuration in Libraries

http://www.microsoft.com/sharepoint liv

Under General Settings, click on Versioning Settings, where you can manage the versioning features of the Document Library.

Fig. 13.1 – Setting Versioning Features

To view the version history of a document, you can right-click on the document and click on the “Version History” option, as shown below.

Fig. 13.2 – Viewing Version History

http://www.microsoft.com/sharepoint lv

Clicking on Version History will show a list of all the major/minor versions of the document, highlighting the latest published version of it. It also gives you the option to delete all major/minor versions.

Fig. 13.3 – Version History DetailsExpiration

Maintaining documents that span into the thousands can be a very tough task without monitoring the validity of the documents. Most of the documents can be set to expire after a specific period, as technology/functionalities keep changing day-by-day.

To monitor the expiration of documents, we need to enable this option at the Site Collection Level as a policy.

1. On the home page of the site collection, click Site Actions, point to Site Settings, and then click Modify All Site Settings.

2. On the Site Settings page, in the Site Collection Administration section, click Site collection policies.

3. Select the Expiration policy whose features you want to configure.

When enabled, the expiration policy searches the site collection to find those items that have exceeded the retention period. What happens to those items depends how your system has been set up to handle items that have exceeded their retention period. For

http://www.microsoft.com/sharepoint lvi

example, items can be moved to the recycle bin, an expiration workflow can be started, or a customized process can be performed.

The expiration policy is enabled by setting both a retention period and an expiration action.

1. Open the Edit Policy page for the policy to which you want to set item retention and expiration. On the Edit Policy page, select the checkbox Enable Expiration to establish how to dispose of content that is managed by this policy.

2. Select a retention period option to specify when documents will be set to expire. This can also be expressed in a separate workflow or a custom retention formula.

a. To set the expiration date based on a date property, click a time period based on the item's properties, and then select the action and the time period (days, months, or years). Type a number in the box between the lists to define the time period.

b. When you're creating a policy as part of a content type, you can select any date property defined in that content type to use as an expiration value.

c. These options are only available when you are creating a site collection policy.

d. To use a workflow or custom retention formula to determine expiration, click Set programmatically.

3. Define what actions you want to happen when the document expires.

a. To enable a predefined action, such as delete, click Perform this action, and then select an action from the list.

b. To start an expiration workflow, click Start this workflow, and then select the name of the workflow.

c. This feature is only available if you are defining a policy for a content type that already has a workflow associated with it.

4. Click OK to apply the expiration feature to the policy.

http://www.microsoft.com/sharepoint lvii

Fig. 13.4 – Editing a Policy

Document Permissions

Office SharePoint Server 2007 introduces the flexibility to mange permissions at the document level in addition to the document library level. To Manage Permissions at the document level, right-click on the document and click on “Manage Permissions”.

Fig. 13.5 – Item Level Permissions

http://www.microsoft.com/sharepoint lviii

By default, each item/document will inherit permissions from its parent. You have the flexibility to change the permission by clicking “Edit Permissions”, as shown below.

Fig. 13.6 – User Permissions

Project ManagementThe Project list and related Gantt chart views in Windows SharePoint Services 3.0 allow users to track projects. Office Project Server 2007 includes the Office SharePoint Server 2007 core and administrative services and the Windows SharePoint Services 3.0 components for a comprehensive enterprise project management solution. You can add the full Office SharePoint Server 2007 product and integrate additional features with Project Server for extended solutions.

http://www.microsoft.com/sharepoint lix

Fig. 14 - Project Tracking using Project List and Gantt Views

Extensibility of Site TemplatesSite Template functionalities can be extended and tailored to suit some of the specific needs of enterprises. Primarily, extensibility of site templates includes the following:

Creation of Custom Views on Lists/Libraries

Addition of Custom Workflows created through SharePoint Designer

XSL Transformation for List View web parts

Configuration of BDC web parts to other LOB systems such as SAP, Siebel

Branding - Logos, Banners and UI Themes

http://www.microsoft.com/sharepoint lx

DeploymentDeployment of custom site templates is easier when compared to site definitions. Site templates can be deployed in the following two ways:

Upload the site template to the Collaboration Portal Site Templates Gallery. In this method, the site template will be available only in the site collection where the template is uploaded.

Deployment through STSADM.exe. In this method, the site template is available across all web applications.

Lessons LearnedThe lessons learned and the issues faced during the course of development of site templates are summarized below:

Custom views on the list view web parts are not restored during site template deployment.

Cannot pass filter values from BDC List web parts to list view web parts.

Cannot pass multiple filter values between list view web parts.

Appearance of double top navigation tab while browsing personalization sites from My Sites.

Since Collaboration Portal pages were used in the site templates, the site had to be created in the collaboration portal only.

Excel Office Data Connection files do not support parameterized queries since they represent a SQL table/view.

Unable to disable multiple item selection in the report parameters of the pivot table in excel services.

http://www.microsoft.com/sharepoint lxi

ResourcesFor more information on Office SharePoint Server 2007 and the Role-Based Templates for SharePoint My Sites, please refer to the following resources:

Role-Based Templates for SharePoint My Siteshttp://office.microsoft.com/en-us/sharepointserver/HA102147321033.aspx

Microsoft Office SharePoint Server 2007http://office.microsoft.com/sharepointserver

Microsoft Office SharePoint Designer 2007http://office.microsoft.com/sharepointdesigner

For more developer-focused resources, please refer to the following:

Office SharePoint Server 2007 Developer Portal http://msdn.microsoft.com/office/server/moss

Developer Posters for Office System http://www.microsoft.com/downloads/details.aspx?familyid=771aeb45-9d27-4d1f-acd1-9b950637d64e&displaylang=en

Office 2007 Logical Architecture Diagram http://www.microsoft.com/downloads/details.aspx?FamilyID=14c6b1c1-ad26-4ed0-87b8-b691ebdd9662&displaylang=en

http://www.microsoft.com/sharepoint lxii