Welcome to MSDN Blogs Sign in | Join | Help

The reporting services addin to that needs to be installed on the webfront end servers gave me some grief last week during installation. My customers installation environment was a x64 bit MOSS box, with SQL Server 2008 Entterprise edition on a seperate box. After sucessfully configuring the SSRS in SharePoint Integration Mode on the SSRS server, MOSS bits also need to be installed on the database server. Remember to use the same bits of MOSS (including Service Packs and patches) as used on other servers on the farm. Please do not install IIS on SQL Server 2008 (SSRS)  as SQL Server 2008 does not require IIS, you only need to install MOSS without IIS.

The real issue I faced during installation was that of the SSRS add-in for SQL Server 2008 x64 ( different from one for SQL Server 2005 SP2) , was that the msi used to fail repeatedly and  the following steps (From SQL Server  BOL)helped fix  the issue.

  • Run SharePointRS.msi / rsSharePoint_x64.msi SKIPCA=1.
  • Find the rsCustomAction.exe file on the file system. This file is copied to your computer by the Setup program. The file will be located in the %Temp% directory.
    To get the path information for this file, click Start, click Run, and then type %temp%. The file should be located in \Documents and Settings\<your name>\LOCALS~1\Temp.
  • Open a command prompt window. To do this, click Start, click Run, and type cmd.
  • Navigate to the folder that contains the rsCustomAction executable.
  • Enter the following command:

    rsCustomAction.exe /i

    This configuration step will take several minutes to complete. The W3SVC service will be restarted during this process.

  • After Setup is finished, go to Administrator Tools and click SharePoint 3.0 Central Administration.
  • Click Application Management. You should see a new section named Reporting Services. This section has links to pages used to specify integration settings.

     

  • Recently I had to get a feature activated over all 800 MySite of a Farm. The approach I choose was to generate an xml list of all the MySIte URL's in my farm and use a Windows application to read the XML file and generate the appropriate activation script.

    a) The step to get all the site collections within the WebApplication hosting MySite is to run the command of stsadm -o enumsites -url http://moss:34078/ >C:\MySiteList.XML . This xml file would include the URL of all mysites in an XML Node.

    b) Assuming all your mysites are under http://moss:portnumber/sites/personal/, the next thing you need to do is simply load the XML File in an XML domdocument and generate the appropriate activation script as stsadm -o activateFeature -url <<URLfromtheXMLNode Element>>. Remember to filter out the urls which do not begin with http://moss:portnumber/sites/personal/. And you are done. The script can be outputted to a .bat file which you could run later to activate the feature.

    You also could do the same using API of SharePoint by looping through the site collection list of a particular webapp. My personal choice would be to go with the above for its simplicity.

    SQL Server 2005 SP2 contains Reporting Services -MOSS integration feature. Reporting Services can be configured to run in Sharepoint Integration Modew where in reports can be managed from MOSS and not from Report Manager.

    After your Reporting Service Report is deployed to SharePoint Report Library you could configure the report to use the common datasource from Data Connection library. The Data Connection library is used to store the datasource files that stores connection info to connect to RS application database (SSAS db / Custom SQL DB etc..) in a central and common location.

    By default the .Rsds file content type does not appear as a new item dropdown. You will need to configure the Data Connection library to include the Report Data Source Content type to have it appear in the New item dropdown.

    Page layouts can be published and deployed using features. Doing the same using features has advantage as compared to publishing the same using SharePoint Designer. Andrew has a very good post on the same. http://www.andrewconnell.com/blog/archive/2006/12/20/5451.aspx .

    Use the above link to understand steps involved in creating a Feature and Deploying the same using a feature.

    Although you might still deploy the Page Layout using features and solution deployment you still need SPDesigner assistance to create the page.( without saving the same to Content DB). One thing to remember after creating the page using SPDesigner is to remove some additional Page attributes that the designer injects. These attributes cause the page to become unghosted. Before you deploy the page layout created using SPD and deployed using  Features and Solution deployment  ensure that your page attribute is as follows.

    <%@ Page language="C#"   Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=12.0.0.0,Culture=neutral,

    PublicKeyToken=71e9bce111e9429c"%>

    Feature framework can be used to deploy Page Layouts. After you have deployed a page layout you could configure the Cache Profile that needs to be assigned to the Page Layout using UI. But what if your requirement was to pre-configure the same with deployment of page layout itself. To know the Cache Profile that needs to go with the Page Layout you need to know its Item ID and the title. Cache Profile is configured as a metadata column on the Master Page gallery. To enable the same I had to modify the elements.xml as shown below.

     

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> 
        <Module Name="PageLayouts" Url="_catalogs/masterpage" Path="PageLayouts" RootWebOnly="TRUE"> 
            <File Url="CareerLayoutsCTFeature.aspx" Type="GhostableInLibrary"> 
                <Property Name="Title" Value="HR Page Layout" /> 
                <Property Name="MasterPageDescription" 
    Value="Page with image on top contains an image field and richtext field." /> 
                <Property Name="ContentType" Value="Page Layout" />       
                <Property Name="PublishingAssociatedContentType" 
    Value=";#HRPublishingContent;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130
    
    EC3DB064584E219954237AF3900413CF8A8360B40d08C45631829C1FB0B;#"/> 
    <Property Name="AnonymousCacheProfile" Value="2;#Public Internet (Purely Anonymous)"/> 
                </File> 
    </Module> 
    </Elements> 

    Delegate controls are a very good mechanism to replace an existing control with another control through a SharePoint Feature. For example a delegate control is declared as

    <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox"/>

    The key to have your custom search control appear in place of the above declaration is to ensure the following:

    a) Create a feature with feature details file entries as below.

    <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Control Id="SmallSearchInputBox" Sequence="100" Url="~/_controltemplates/mysearchcontrol.ascx"/> </Elements>.

    The sequence number and ID is very important. Your sequence number should be the lowest if there are already multiple features registered for the same control Id of "SmallSearchInputBox" .

    b) if you have MOSS installed you will notice that there are already 3 features for SmallSearchInputBox (a quick search on Features folder will reveal this ) and the lowest sequence number is 25. So to have your control appear in place of the standard search box , reduce your sequence number to less than 25.

    c) Install  and Activate the feature.

    d) Restart IIS if necessary.

    The default people search in MOSS refines search results based on Department and JobTitle. When a profile property is created it gets automatically added into the Managed Properties collection. If you need to refine people search by additional profile properties then we need to ensure the following

    a) A Profile property needs to be converted to a Managed property. If it is not already present you need to add a new managed property. In our example I have a new profile property called CreditCardType which has its own Managed Property under search setting with the same name CreditCardType.

    b) Open the PeopleSearchResult.aspx in SharePoint Designer. This will appear under the master page gallery of your site. Look for <SearchWC:RefineSearchResults and you can add your own entry below the entries for Department and JobTitle <SEARCHWC:RefineSearchResults runat="server" Title="Refine by Card" SearchProperty="CreditCardType"/>

    c) Next edit the people Search Core WebPart in peopleresult.aspx in Browser and add the following text in the Selected Columns Property ( under "Result Query Options" ).

    <Column Name="CreditCardType"/>    

    The last step is important, without which the refine by link will not appear.

     
    Page view tracker