Friday, May 13, 2011

Fixed: "‘g_InstanceID’ is undefined" error when using recurring Meeting Workspace based on custom Meeting Workspace template in SharePoint 2010

After creating a recurring Meeting Workspace site based on a custom Meeting Workspace template previously created, the recurring Meeting Workspace hyperlinks under "Select a date from the list below" do not work and throw a JavaScript error: 'g_InstanceID' is undefined. Furthermore, you may notice that not all future recurring dates are visible in the date picker menu, as indicated in the following screenshot:


Resolution: Deploy the latest cumulative update for SharePoint 2010, which can be downloaded from here:

http://technet.microsoft.com/en-us/sharepoint/ff800847

If you are using SharePoint Server 2010, be sure to deploy both updates - SharePoint Foundation 2010 and SharePoint Server 2010. Also, if you have a multi-tier farm topology consisting of multiple application and/or web front end servers, be sure to follow a recommended update sequence detailed here:

http://technet.microsoft.com/en-us/library/ff806338.aspx

Should be corrected now:
 

Saturday, March 26, 2011

Seven Key Areas of Focus for Effectively Implementing SharePoint 2010

"How can SharePoint 2010 add immediate value to my organization?"

and

"What are some of the key areas of SharePoint 2010 functionality that I can demo to my organization in an attempt to gain a higher percentage of user adoption?"

To effectively answer both questions, I believe you must start by executing a plan to communicate, build, and demonstrate the benefits of using SharePoint 2010 for the seven key areas of focus outlined below. I could write an entire book about each area, so the purpose of this post is to identify each area while pointing out key items of functionality within each area that you will need research in more detail as part of your efforts of determining how SharePoint 2010 can help with your business challenges.

1. Better Collaboration and Communication. According to Evan Rosen, ten cultural elements are present when collaboration is working within an organization: Trust, Sharing, Goals, Innovation, Environment, Collaborative Chaos, Constructive Confrontation, Communication, Community, and Value. Rosen believes collaborative tools such as SharePoint can motivate employees and drive business. But what particular features in SharePoint 2010 can help facilitate better collaboration and communication? I would start by creating a demo site based on each of the following Collaboration site templates available in SharePoint 2010: Team Site (top level site), Document Center (not Document Workspace), Group Work Site, and Enterprise Wiki. This will give you a foundation of four sites to build on within your demo environment.

Next, ensure a Meeting Workspace is created and associated with a recurring meeting item on a team calendar. If you are using Office 2010, be prepared to explain and demo the MS Word 2010 co-authoring capabilities in SharePoint 2010. Document approval using Workflow is another good example of collaboration in SharePoint 2010. Other items to configure and demo include Announcements, Discussion Board, Project Tasks, and a Survey. Finally, be sure to showcase the two main benefits of using Managed Metadata Services in SharePoint 2010 -- easy tagging and metadata-based navigation, and how metadata can be used to replace folders for organizing documents and files in a SharePoint site. The goal of this focus area is to demonstrate a variety of ways to effectively collaborate and communicate within SharePoint.

2. Enhanced Enterprise Content Management. In addition to the capabilities that were introduced in MOSS 2007 (check in/out, versioning, item level permissions, content types, policies, workflow, etc.), SharePoint 2010 offers many new features for document management, including:

Document Sets -- Allows you to collaborate on and manage a group of related documents without having to create a new document library. Each document set created contains its own web part page called a welcome page that displays all content associated with the document set. Common metadata is shared for content contained in the document set, and you can even configure automatic creation of default documents when a document set is created. Building a white paper is a good example of when you might use a document set, as you will have the ability to manage many files (Excel, Word, images, PDFs, etc.) together as a single document in which you can eventually designate the white paper to be created as the master document.

Document IDs -- Gives you the ability to assign a unique identifier for a document or document set regardless of where that it is being stored within the SharePoint site collection. This capability is a long awaited great addition to SharePoint 2010. Now you can provide unique numbering for documents that each have different formatting, and store those documents in any location within a site collection while still being able to reference these documents by their original ID and URL.

Location-Based Metadata Defaults -- Allows you to set default values for a document's metadata based on the location of where the document was created. Uses conditional rules to determine when default values are applied to a document.

Metadata Navigation and Filtering -- Gives you the ability to navigate content based on its associated metadata. Navigation Hierarchies and Key Filters are displayed in the left pane of your SharePoint site interface that allow you to navigate and filter your metadata taxonomy to obtain a desired view within a list or document library.

SharePoint 2010 also introduces new capabilities for records management. Adam Harmetz, Lead Program Manager at Microsoft, does an excellent job explaining these new capabilities here. In regards to digital asset management, SharePoint 2010 now provides the ability to manage audio, video, and images as content types in an all-inclusive asset library. This allows you to catalog your rich media content along with convenient preview modes that display thumbnails and managed metadata snippets. Audio and video can be made available through the out-of-the-box Media web part or embedded Silverlight applications, and you can employ workflows, rules, routing, and policies to manage all contained assets.

3. Personalized Experience. I have found that when my clients have an understanding of the security trimming functionality native to SharePoint, they have a greater appreciation for the technology. They really like the idea of making content invisible to users for which they do not have permission. Audience targeting is one of the significant features in SharePoint 2010 that provides a method of targeting web parts and content to specific groups and users. Virtually any individual item within a SharePoint 2010 site can be targeted, including documents, events, list items, and even the entire site. However, for any given SharePoint site, I recommend setting group permissions at the site, list, and library levels, and using audience targeting at the web part level so different audiences can see different web parts on a page. Finally, for the ultimate experience in personalization, research why My Sites are widely considered the "Facebook for the enterprise".

4. Systems Integration. You should implement your SharePoint environment to serve as the electronic gateway (one-stop shop) to all internal information systems that your user base will use on a daily basis. In the context of Higher Education, these information systems might be an institution's learning management system, student information system, and campus email system. Such a scenario will obviously require some level of systems integration, for which you will more than likely need to deploy a Single Sign-On (SSO) solution such as Microsoft's Forefront Threat Management Gateway 2010 product. The Business Connectivity Services (BCS) feature in SharePoint 2010 can also help by allowing you to connect external systems (external to SharePoint) to SharePoint with relative ease. For example, you can establish a BCS connection to the Oracle or SQL database of a student information system, and then create, read, update, delete, and query (CRUDQ) this data from a SharePoint list or web part.

It is important to understand that trying to implement a 'perfectly integrated' SharePoint solution is often unrealistic. I have found the best approach is to integrate what you can within web parts and lists (using SSO and BCS), and provide a link to everything else. The goal is to provide a single point of access to the resources that support your users in their daily activities.

5. Business Intelligence. SharePoint 2010 offers a few out-of-the-box Chart and Key Performance Indicator web parts that can be added anywhere within your SharePoint site hierarchy. These simple web parts provide a stunning array of visualization options while displaying data from within a SharePoint list or document library, or from an external source such as a SQL Server database. For those interested in enhanced dashboard functionality, PerformancePoint Services in SharePoint 2010 allow you to create rich, context-driven business intelligence (BI) dashboards that aggregate data and content from many locations (Lists, Excel files, SQL Server tables, Analysis Services, ODBC connections, and more) to provide a complete view of how your business is performing at all levels. Microsoft says PerformancePoint Services is the easiest way to create and publish BI dashboards in SharePoint 2010.

Excel Services is another BI feature in SharePoint 2010 that allows you publish Excel workbooks to a SharePoint site where users can view and edit them through their web browser. One of the great things about Excel Services is the Excel Web Access (EWA) web part, which allows you to render entire workbooks, or just portions of a workbook (such as a pivot chart or a table) in a SharePoint page. In regards to reporting, you can configure a deployment of SQL Server Reporting Services (SSRS) to integrate with a deployment of SharePoint 2010. This integration allows you view, navigate, print, and export SSRS reports via a web part on a SharePoint site.

6. Form Automation. I define form automation as the process by which a form is made available online to view, fill out, submit, and digitally sign, while streamlining its associated business process. Using Microsoft InfoPath 2010 Designer, you can easily convert a Word, Excel, PDF, or paper-based form to an InfoPath Web Form that can be published to a form library in a SharePoint 2010 site. Users can then view, fill out, submit, and digitally sign this form via their web browser. The associated business process, typically an approval process, is automated through the use of a Workflow that is built in SharePoint Designer 2010 and published to the same form library. Forms that should be considered for automation include:

Change Control Request
Change of Status
Emergency Contacts
Employee Information
Expense Report
Lunch Order Request
Purchase Requisition
Project Request
SharePoint Requests (Permissions, Libraries, Lists, Sites, etc.)

7. Anywhere Access (without VPN). People simply like the idea of being able to logon to their personalized SharePoint environment from a computer anywhere in the world, without the use of a VPN. Tools such as Forefront Treat Management Gateway 2010 allow you to securely publish your SharePoint sites to the Internet, providing remote users a secure method of accessing internal resources, as well as a way to share content with teaming partners outside of your organization, without having a need to establish a VPN connection.

I would be remiss if I did not mention that you must be running the Enterprise edition of SharePoint Server 2010 to realize much of the functionality listed above.

Well, there you have it. By focusing on these seven key areas when implementing SharePoint 2010 in your organization, I firmly believe that you can experience a higher percentage of user adoption while adding immediate value to your organization.

Interested in getting your thoughts on this topic.

Friday, January 14, 2011

Quick Tip: Using F5 Products for SSL Termination with SharePoint 2010

If you are using an F5 product to provide SSL termination for your SharePoint 2010 environment, and are experiencing various issues such as grayed out ribbon items and JavaScript errors, be sure to configure your Alternate Access Mappings (AAMs) correctly. I have discovered that most of these related issues are resolved by applying the following AAM configuration for each respective web application that requires SSL termination:

Internal URL: https://webapplicationurl
Zone: Default
Public URL for Zone: https://webapplicationurl

Internal URL: http://webapplicationurl
Zone: Default
Public URL for Zone: https://webapplicationurl

Here’s to hoping this simple tip saves you hours of frustration!!

Wednesday, December 15, 2010

Hide RSS Feed Title in RSS Viewer Web Part

In this blog post, I will show you how to hide that irritating RSS feed title you get when using the RSS Viewer web part in SharePoint 2010, as shown here:



Upon editing the RSS Viewer web part, open the XSL Editor. Under the "RSSMainTemplate" section, comment out the following lines shown here:

Should look good now.

Wednesday, November 10, 2010

SharePoint Site Request Form (InfoPath 2010)

For those interested, I have created a typical SharePoint Site Request Form in InfoPath 2010. Feel free to download and use as you wish.

Here is a screenshot of the form:



You can download the template here.

Monday, August 2, 2010

Configure database mirroring on dedicated NICs for SharePoint 2010

If you are considering using the newly supported database mirroring capabilities in SharePoint 2010, I would recommend using a dedicated network interface card (NIC) for each SQL server in the database mirror. This means that each database server will have two NICs with two IP addresses, and the database mirroring logs will be mirrored on one NIC while the other NIC accommodates all other traffic for each respective server. See below for step-by-step instructions on how to establish database mirroring using dedicated NICs in SQL Server 2008.

For my example environment, I will use the following:

Principal Configuration:

Server Name: SQL1
SQL Instance: SQL1\PRINCIPAL
NIC 1: 192.168.0.100
NIC 2: 192.168.0.101

Mirror Configuration:

Server Name: SQL2
SQL Instance: SQL2\MIRROR
NIC 1: 192.168.0.102
NIC 2: 192.168.0.103

Witness Configuration:

Server Name: SQL3
SQL Instance: SQL3\WITNESS
NIC 1: 192.168.0.104

1. Create DNS record for the dedicated NIC (NIC 2) on each server.

sql1-pri.domain.local 192.168.0.101
sql2-mir.domain.local 192.168.0.103

On each server, ping the newly created host name of the opposite server to ensure it resolves correctly. Therefore, on SQL1 (the principal), ping sql2-mir (the mirror) to ensure it resolves to the proper IP address. Repeat for SQL2.

2. Create a mirroring endpoint for the IP address of NIC 2 on the principal and mirror servers, and for the witness server. Below is the general syntax for the endpoint configuration.

CREATE ENDPOINT
STATE=STARTED
AS TCP (LISTENER_PORT=,LISTENER_IP=)
FOR DATABASE_MIRRORING (ROLE=PARTNER);

In my example environment, I would configure the following:

On the Principal server:

CREATE ENDPOINT Endpoint_Mirroring
STATE=STARTED
AS TCP (LISTENER_PORT=5022,LISTENER_IP=(192.168.0.101))
FOR DATABASE_MIRRORING (ROLE=PARTNER);

On the Mirror server:

CREATE ENDPOINT Endpoint_Mirroring
STATE=STARTED
AS TCP (LISTENER_PORT=5022,LISTENER_IP=(192.168.0.103))
FOR DATABASE_MIRRORING (ROLE=PARTNER);

On the Witness server:

CREATE ENDPOINT Endpoint_Mirroring
STATE=STARTED
AS TCP (LISTENER_PORT=5022)
FOR DATABASE_MIRRORING (ROLE=WITNESS);

Next, you must grant connect permissions to the SharePoint service account on each SQL server endpoint you just created:

GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [domain\sp_service];

NOTE: If a database mirroring endpoint exists and is already in use, I recommend that you use that endpoint for every session on the server instance. Dropping an in-use endpoint disrupts the connections of the existing sessions. If a witness has been set for a session, dropping the database mirroring endpoint can cause the principal server of that session to lose quorum; if that occurs, the database is taken offline and its users are disconnected. Determine if a database mirroring endpoint already exists by using the following statement on each server:

SELECT name, role_desc, state_desc FROM sys.database_mirroring_endpoints

3. On the principal server, perform a full backup of each database and its associated transaction log you want to mirror.

a. Open SQL Server Management Studio.
b. After connecting to the appropriate instance of the Microsoft SQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.
c. Expand Databases, right-click the desired database, point to Tasks, and click Back Up. The Back Up Database dialog box appears.
d. In the Database list box, verify the database name.
e. Ensure the recovery model is set to FULL.
f. In the Backup type list box, select Full. For each transaction log backup, select Transaction Log.
g. Either accept the default backup set name suggested in the Name text box, or enter a different name for the backup.
h. Choose the Disk backup destination type, and select the Add button to find and select the location where the backup will be placed. The selected paths are displayed in the Backup to list box.
i. Select OK.

4. Restore each database and transaction log backup to mirror server.
a. Open SQL Server Management Studio.
b. After connecting to the appropriate instance of the Microsoft SQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.
c. Right-click on the Databases folder, and select Restore Database. The Restore Database dialog box appears. To restore each transaction log, right-click on its restored database, select Restore, Transaction Log.
d. To specify the source and location of the backup sets to restore, select From Device.
e. Click the browse button, which opens the Specify Backup dialog box. In the Backup media list box, select to Add a File backup media type. Browse to the appropriate location, and select the backup file. Select OK.
f. Ensure the name of the restored database is the exact same as on the principal server.
g. Place a checkmark to select the backup set to restore.
h. Select Options located on the left menu under General, and choose the following option:
Leave the database non-operational, and do not roll back the uncommitted transactions. Additional transaction logs can be restored. (RESTORE WITH NORECOVERY)

5. For each database that you want to mirror, configure the following on each respective server:

ALTER DATABASE
SET = 'TCP://new host name:port'

In my example environment, I would do the following to mirror the SharePoint_Config database:

On the mirror server:

ALTER DATABASE SharePoint_Config
SET PARTNER = 'TCP://sql1-pri.domain.local:5022'

On the principal server:

ALTER DATABASE SharePoint_Config
SET PARTNER = 'TCP://sql2-mir.domain.local:5022'

Next, on the principal server, set the witness:

ALTER DATABASE SharePoint_Config
SET WITNESS = 'TCP://sql3.domain.local:5022'

6. Manually test the failover capability of the mirror:
a. On the principal server, in SQL Server Management Studio, right-click the mirrored database and select Properties.
b. Select Mirroring on the left menu.
c. Click the Failover button. Select Yes when prompted to confirm.

7. Add the failover server (SQL2) for each SharePoint database you have mirrored. I recommend using PowerShell to complete this task, and Todd Klindt has great step-by-step instructions in a blog post located here.

8. Test the automatic failover capability of the mirror by shutting down the principal server. You will notice that the mirror server will become the principal server while continuing to host database operations. Power on the principal server. Any database changes made on the mirror server will be restored to the principal server. Next, shut down the mirror server so the principal server can once again become the primary server. Power on the mirror server.

ALL DONE.

Friday, July 23, 2010

SharePoint 2010: User Profile Synchronization Service will not start when using Named Instance in SQL Server 2008

While deploying a SharePoint 2010 farm recently in which I implemented database mirroring in SQL Server 2008 using two servers with a Named Instance respectively for each server (SQL1\PRINCIPAL and SQL2\MIRROR), I could not get the User Profile Synchronization Service to start. It would remain in a status of “Starting” for about 10 minutes before eventually showing a status of “Stopped”.

A quick glance on the ULS logs and I discovered the following errors:

ERROR ILMPostSetupConfiguration: ILM Configuration: Validating installation of SQL Service FAILED

and

ILM Configuration: Error 'ERR_CONFIG_DB'

and

UserProfileApplication.SynchronizeMIIS: Failed to configure MIIS post database, will attempt during next rerun. Exception: System.Configuration.ConfigurationErrorsException: ERR_CONFIG_DB at Microsoft.Office.Server.UserProfiles.Synchronization.ILMPostSetupConfiguration.ValidateConfigurationResult(UInt32 result) at Microsoft.Office.Server.UserProfiles.Synchronization.ILMPostSetupConfiguration.ConfigureMiisStage2() at Microsoft.Office.Server.Administration.UserProfileApplication.SetupSynchronizationService(ProfileSynchronizationServiceInstance profileSyncInstance). 1125abef-5af4-4214-93c5-4d74e8d103fb

After reading through dozens of blog posts, especially this one, I determined that the Forefront Identity Manager Synchronization Service (FIMSynchronizationService) was trying to connect to the Default Instance of SQL1, instead of the correct Named Instance of SQL1\PRINCIPAL. Not sure if this is default behavior out of the box, but sure seems to be that way.

The Workaround – configure a SQL alias on the application server. Here’s how:

On the SharePoint application server that you want to start the User Profile Synchronization Service on, perform the following:

1) Open the SQL Server Client Network Utility.





On the General tab, ensure you enable the Named Pipes and TCP/IP protocols.

2) On the Alias tab, select to Add a new alias.



Ensure TCP/IP is selected as the Network library protocol. For the Server alias, type the name of the SQL server. For me, it was the principal server in the database mirror – SQL1. In the Connection parameters, for the Server name, type the entire SQL Instance Name. For me, it was SQL1\PRINCIPAL. Select OK.

3) Start the User Profile Synchronization Service again.

Walla! It starts correctly now!



Hope this helps.

Wednesday, July 21, 2010

‘Deployment Status: Error’ when deploying solution (.wsp) to SharePoint farm

Quick Tip: When deploying a solution file to your SharePoint farm, if within 5 seconds you encounter an Error for deployment status (In Central Administration, under Operations, Solution Management) with no additional details, ensure the Windows SharePoint Services Administration service is started on all SharePoint servers in the farm. Also, ensure the service is running as the Local System account on each server.

Hope this quick tip saves you hours of troubleshooting!