I'll be speaking at KC SQL Users Group on Business Intelligence - SQL 2008 R2 & SharePoint

http://kansascity.sqlpass.org/ on Aug 27th... See you there

Adding more links to your SharePoint 2010 Quick Launch

One of my clients wanted to have over the set limit of left navigation (Quick Launch) links to allow ease of access for their clients. SharePoint 2010 has a default setting of 20 links for the Quick Launch. To increase this number find your site’s web.config files and make changes to the following SiteMap Providers.
        <add name="CurrentNavSiteMapProviderNoEncode" description="CMS provider for Current navigation, no encoding of output" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" EncodeOutput="false" />
        <add name="GlobalNavigation" description="Provider for MOSS Global Navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Combined" Version="14" />
        <add name="CurrentNavigation" description="Provider for MOSS Current Navigation" type="Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" NavigationType="Current" Version="14" />
 
Add the following property at the end of every provider DynamicChildLimit="100” before   "/>"
There you have it, this property will set the Quick Launch to have about 100 sites and Subsites

Get information for your SQL Server

If you are a DBA you should be familiar with @@Version to get the information for you SQL Server, but whatif you want to get a little more that the @@Version information.

Here is a head start.

CREATE PROCEDURE usp_getserverinfo
AS
IF @@VERSION LIKE ('% 10.%')
BEGIN
SELECT
       SERVERPROPERTY('ComputerNamePhysicalNetBIOS') as ActualServerName
      ,SERVERPROPERTY('MachineName') as SQLServerName
      ,SERVERPROPERTY('InstanceName') as instancename
      ,(CASE
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 7 THEN 'SQL Server 7'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 8 THEN 'SQL Server 2000'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 9 THEN 'SQL Server 2005'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 10 THEN 'SQL Server 2008'
      ELSE NULL END) SQL_License
      ,SERVERPROPERTY('edition') as Edition
      ,SERVERPROPERTY('ProductVersion') as ProdVersion
      ,SERVERPROPERTY('ProductLevel') as ServicePack
      ,SERVERPROPERTY('IsClustered') as [IsClustered]
      ,SERVERPROPERTY('LicenseType') as licencetype
      ,SERVERPROPERTY('NumLicenses') as NumLicences
      ,SERVERPROPERTY('ResourceLastUpdateDateTime') as ResourceUpdate
      ,SERVERPROPERTY('FilestreamShareName') as Filestreamshare
END
ELSE
BEGIN
SELECT
       SERVERPROPERTY('ComputerNamePhysicalNetBIOS') as ActualServerName
      ,SERVERPROPERTY('MachineName') as SQLServerName
      ,SERVERPROPERTY('InstanceName') as instancename
      ,(CASE
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 7.0 THEN 'SQL Server 7'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 8.0 THEN 'SQL Server 2000'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 9.0 THEN 'SQL Server 2005'
            WHEN CONVERT(VARCHAR(2),SERVERPROPERTY('ProductVersion'))= 10 THEN 'SQL Server 2008'
      ELSE NULL END) SQL_License
      ,SERVERPROPERTY('edition') as Edition
      ,SERVERPROPERTY('ProductVersion') as ProdVersion
      ,SERVERPROPERTY('ProductLevel') as ServicePack
      ,SERVERPROPERTY('IsClustered') as [IsClustered]
      ,SERVERPROPERTY('LicenseType') as licencetype
      ,SERVERPROPERTY('NumLicenses') as NumLicences
      ,SERVERPROPERTY('ResourceLastUpdateDateTime') as ResourceUpdate
      ,SERVERPROPERTY('FilestreamShareName') as Filestreamshare
END

SharePoint Backup using PowerShell errors

I was at a client location the other day and there was a need to configure PowerShell to back-up the SharePoint 2010 Farm after getting my commands ready and executing them it boomed out on me with the following errors
 
Verbose: [Database_Name] SQL command timeout is set to 1.00 hours.
Warning: [Database_Name] Cannot open backup device 'e:\etekglobalinc\backups\spbr0000\00000063.bak'. Operating system error 3(The system cannot find the path specified.).
 
The path seemed right but the .bak file didn’t exist which was the reason of the failure. After digging around I got the hook of things and I hope it saves someone a headache and some digging.
 
Reason for failure was because when PowerShell command for back-ups is executed, it backs everything in your farm including the databases thus if you have your databases on a different server the SQL Server Service Account needs to have access to the share where you backup files are being stored. So to resolve this error assign permission for the SQL Server Service Account to the file share and it should get rid of the error and allow farm to be backed up successfully.

While publishing SharePoint 2010 publishing portal it errors out

When publishing SharePoint 2010 Portal you encounter the following error
 
“The form cannot be rendered. This may be due to a misconfiguration of the Microsoft SharePoint Server State Service. For more information, contact your server administrator. “
 
This issue is caused by lack of Session State Service which usually is a result of farm being configured manually.
 
To fix the issue power up your PowerShell on the SharePoint Server and run the following commands, these commands will create a State Service database and assign a service to allow portal changes publishing.
PS C:\Users\farmsvc> $serviceApp = New-SPStateServiceApplication -Name "State Service"
PS C:\Users\farmsvc> New-SPStateServiceDatabase -Name "StateServiceDatabase" -ServiceApplication $serviceApp
PS C:\Users\farmsvc> New-SPStateServiceApplicationProxy -Name "State Service" -ServiceApplication
Hopefully this saves someone a headache.

Amusing big boss man signature

I got a kick out of this one, the Big-Boss-Man will not find it amusing

Big Boss Man signature

BI Presentation for SharePoint 2010

I have uploaded the BI Presentation slideds for SharePoint 2010 that I presented at Kansas City SharePoint Users Group. The slides can be downloaded from http://www.etekglobalinc.com/Portals/0/blogs/Business%20intelligence%20with%20SharePoint%202010.ppt

Presenting BI with SharePoint 2010

I will be presenting BI with SharePoint 2010 at Kansas City SharePoint Users group. See ya there http://hugkc.org/dnn49/SharePoint/tabid/56/Default.aspx

Presenting BI with SharePoint 2010

I will be presenting BI with SharePoint 2010 at Kansas City SharePoint Users group. See ya there http://hugkc.org/dnn49/SharePoint/tabid/56/Default.aspx

SSIS ForEachLoop Container

I recently had a client request to create an SSIS package that would loop through a set of data in SQL tables to allow them to complete their data transformation processes. Knowing that Integration Services does have ForEachLoop Container, I knew the task would be easy but the moment I jumped into it I figured there was no straight forward way to accomplish the task since for each didn’t really have a loop through the table enumerator. With the capabilities of integration Services, I was still confident that it was possible it was just a matter of creativity to get it done.
I set out to discover what different ForEach Loop Editor Enumerators did and settled with Variable Enumerator.  Here is how I accomplished the task.
1.       Drop your ForEach Loop Container in your WorkArea.
2.       Create a few SSIS Variable that will contain the data.

Fig1

Notice I have assigned MyID_ID variable a value of “TEST’ which is not evaluated either. This variable will be assigned data from the database hence allowing us to loop.
3.       In the ForEach Loop Editor’s Collection select Variable Enumerator

Fig2

4.       Once this is all set, we need a mechanism to grab the data from the SQL Table and assigning it to the variable.

Fig3

Fig: Select Top 1 record

Fig4

Fig: Assign Top 1 record to the variable
5.       Now all that’s required is a house cleaning process that will update the table that you are looping so that you can be able to grab the next record
 
A look of the complete package

Fig5

 

«September»
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789