17 February, 2013

How to hide "Respond to this Survey"



Survey Purpose:
We use surveys to ask team members what they think about issues, how to improve your processes, and many other topics. You can collect the results by using several different types of questions, such as multiple choice, fill-in fields, and even ratings.

Problem Description:
How to hide "Respond to this Survey" when a user has already responded to the Survey

It’s simple but little bit tricky to implement as it involves user controls also.

Imp point to note:
·         The Rendering Template for the Survey List is in the defaulttemplates.ascx
Control under 12/Template/Control template.

·         The rendering template ID is ‘ViewToolBar. This template renders the "Respond
to this Survey", Actions menu and Settings menu in the toolbar.

·         This template is a generic template which is used by other lists as well.

·         "Respond to this Survey" is rendered by <SharePoint:NewMenu
AccessKey="<%$Resources:wss,tb_NewMenu_AK%>" runat="server" />.

How exactly it looks like:
<SharePoint:RenderingTemplate ID="ViewToolBar" runat="server">
<Template>
<wssuc:ToolBar CssClass="ms-menutoolbar" EnableViewState="false" id="toolBarTbl"
ButtonSeparator="<img src='/_layouts/images/blank.gif' alt=''>"
RightButtonSeparator="&nbsp;&nbsp;" runat="server">
<Template_Buttons>
<SharePoint:NewMenu
AccessKey="<%$Resources:wss,tb_NewMenu_AK%>" runat="server" />
<SharePoint:ActionsMenu
AccessKey="<%$Resources:wss,tb_ActionsMenu_AK%>" runat="server" />
<SharePoint:SettingsMenu
AccessKey="<%$Resources:wss,tb_SettingsMenu_AK%>" runat="server" />
</Template_Buttons>
<Template_RightButtons>
<SharePoint:PagingButton runat="server"/>
<SharePoint:ListViewSelector runat="server"/>
</Template_RightButtons>
</wssuc:ToolBar>
</Template>
</SharePoint:RenderingTemplate>

Microsoft Recommendation:
1.    We cannot modify OOB defaulttemplates.ascx as this would be unsupported
2.    Make a copy of defaulttemplates.ascx under CONTROL TEMPLATES FOLDER of 12 hive
and rename it to CustomDefaultTemplates.ascx
What exactly needs to done/Resolution:
1.    To hide “Respond to this Survey” if a user has already responded to the survey,
Create a class which inherits from the Microsoft.Sharepoint.WebControls.NewMenu.

2.    In this override CreateChildControls and have your logic to hide unhide "Respond
to this Survey" based on your need.

3.    Build the class library and install the dll to the GAC.

4.    Modify the “ViewToolBar” in the custom ascx such that to render your custom
"Respond to this Survey" menu from the class library you created.

(Note: You need to add your assembly reference and register the tag prefix in the
Custom ascx control.)

5.    Next step is to render the custom rendering template to the "Survey List" so
     that the custom "Respond to this Survey" menu will be rendered in the toolbar.

6.    For this the "ToolbarTemplate" property of the View should be changed in the
schema.xml file of the Survey List definition.

7.    As modifying the OOB files are not supported, Copy the “SurveyList” folder from
12/Template/Features and paste in the same place as “CustomSurveysList”.
Change the feature ID of the “CustomSurveyList”

8.    Open the schema.xml file available under survey folder of “CustomSurveysList”
and add the “ToolbarTemplate=CustomViewToolBar” attribute to the “View BaseID=0”.

Example attached:
<View BaseViewID="0" FreeForm="TRUE" ReadOnly="TRUE" Type="HTML" ToolBarTemplate=" CustomViewToolBar ">

9.    Install and activate "CustomSurveysList"

10. Create a Survey List using CustomSurveyList template and we should be able to
achieve the functionality as required.

If you have any queries/questions regarding the above mentioned information then please let me know, Thank you.

14 February, 2013

Downloadable evaluation resources for SharePoint 2013

Download the following content for information about how to evaluate SharePoint 2013.

Content Description
Downloads IT Professional Reviewer's Guide for SharePoint Server 2013 Preview Learn how new capabilities in SharePoint Server 2013 can help IT pros better manage cost, risk, and time.
Downloads Download SharePoint Server 2013 Preview See for yourself what SharePoint 2013 can do by downloading and installing this version.
Downloads Download SharePoint Foundation 2013 Preview See for yourself what SharePoint 2013 can do by downloading and installing this version.
Lab icon Test lab guides Get up and running quickly in a test environment by following these guides that take the guesswork out of a SharePoint 2013 deployment.
Building blocks SharePoint 2013 training for IT pros IT pro-focused how-to training and covers changes and new features for search, social, plus deployment and performance/scalability with downloadable presentations.

SharePoint 2013 Certifications



As of today, we have a total of 4 training courses available. These are:
FIrst Look Clinic: What’s new for IT Professionals in Microsoft SharePoint 2013 – it’s a 3 hour clinic, rather than a traditional training. I’d argue this is almost full day training, since it took more than 3 hours just to skim through. Since it’s a very early look at SharePoint 2013 there’s not certification alignment for this clinic.

The second one is First Look Clinic: What’s new for Developers in SharePoint 2013 and it’s also a 3 hour clinic. More like a day, although there are no labs available within the course material.
The third one is SharePoint 2013: IT Pro Ignite training. It’s a 3 to 5 day classroom-based training, including hands-on labs. It’s not widely available but does give you a deeper look and knowledge into what’s possible with SharePoint 2013 for IT Pros. As you might have guessed, the fourth course that is available is SharePoint 2013: Developer Ignite training. Also 3-5 days, lots of labs.
Finally, the Programming in HTML5 with JavaScript and CSS3 course was released for public use. A book is coming out in April from MS Press – see details here.

The first exam for anyone wanting to be fluent with developing solutions for SharePoint 2013 is Programming HTML5 with JavaScript and CSS3 (70-480). This exam was released August 20th, 2012. The accompanying preparation material is available (see here). This is a mandatory certification exam for the upcoming MCSD: SharePoint certification.

The second exam we already have details on, is for IT Pros: Core Solutions for SharePoint Server 2013 (70-331). Availability for this exam was scheduled for February 5th, 2013 and as of February 2nd, the certification exam was available from Prometric. 

The third exam is also for IT Pros called Advanced Solutions of Microsoft SharePoint Server 2013. It’s also available since February 2nd, 2013. Together with 70-331 and 70-332 you are two steps closer to being an MCSE: SharePoint.

The last requirement for MCSE: SharePoint (for IT Pros) is MCSA: Windows Server 2012. You can either complete this requirement with a single upgrade exam (70-417) or do all three certification exams: 70-410, 70-411 and 70-412.

13 February, 2013

In Windows PowerShell 2.0 (the November 2007 Community Technology Preview release) the PowerShell team has taken an interesting approach to script debugging. As you know, PowerShell doesn’t require a specialized script editor or development environment. Instead, PowerShell users can, and do, use any and all text editors (from Notepad on up) to write their scripts. Because of that, the PowerShell team decided to build their debugging tools into Windows PowerShell itself; in turn, that means that you can use the new debugging cmdlets to debug any script from the console window itself.

Failed to open a connection to the Nintex Workflow configuration database


Here we go with another new issue and easy resolutions & workarounds…
This time, the issue was with Nintex workflows at the time of activating a site collection feature. Let me describe the details in step by step so that it will be easy recognize as well as understand…

Problem Description:
Problem activating Site Feature. While activating the ‘Nintex workflow 2010’ at the site collection level, we faced the following error message:

Error Message:
An unexpected error has occurred.
Troubleshoot issues with Microsoft SharePoint Foundation.
Correlation ID: XXXXX

Troubleshooting Steps:
1)    Most imp regarding any exceptions: SharePoint logs (\14\logs)-specifically if we face “unexpected error”
2)    Windows event logs
3)    If we have a correlation id then it’s very easy to find out the exact error message

After reviewing the SP logs, this is what I found:
Exception was thrown while ensuring dependencies met for feature 'NintexWorkflow' (id: 0561d315-d5db-4736-929e-26da142812c5): Nintex.Workflow.NWFeatureActivatingException: Nintex.Workflow.NW2007DatabaseConnectionException: Failed to open a connection to the Nintex Workflow configuration database. ---> System.Data.SqlClient.SqlException: Cannot open database "NW2007WFDB" requested by the login. The login failed.  Login failed for user 'Contoso\Administrator'. 

What we need to target first in such conditions:
1.    What exactly the app pool identity is used by that web application? Does it have sufficient rights/not?
2.    The Nintex database has a role called WSS_Content_Application_Pools. This is the group that we need to add the app pool identity to
·         SQL SERVER
·         SharePoint_Config
·         Security
·         Users
·         The account which is running the app pool of the web application
·         Right Click-Properties
·         General
·         Database role membership

Resolution:
I have added this group named as WSS_Content_Application_Pools to the APP POOL identity and that it. It worked and issue has been successfully resolved…

If you have any queries/questions regarding the above mentioned information then please let me know.

I would be more than happy to help you as well as resolves your issues…

Thank you.

11 February, 2013

Customizing the SharePoint 2013 Developer Dashboard using custom scripts

Wow Stefan Gobner has shared a wonderful article on Customising Dev Dash in 2013.

In SharePoint 2013 Dev dash has helped the admins to help troubleshoot a lot of performance issues .
 The Developer Dashboard can now be extended by injecting custom JavaScript code into the developer dashboard window.

Two steps are necessary to achieve this:

1.Custom JavaScript code, which interacts with the developer dashboard DOM, has to be added to a script file that can be accessed from the Developer Dashboard page. E.g. by placing the script file into the _layouts/15 directory.

2.The custom script file(s) have to be registered to be loaded into the Developer Dashboard page.
Below is a short example, which hides the ULS tab in the Developer Dashboard. This example also shows how to use jquery within the Developer Dashboard.

Create the custom logic in a script file

Create a "hideULSTab.js" inside the layouts/15 directory (program files\common files\microsoft shared\web server extensions\15\template\layouts) and add the following script code to it:
// register a code block that runs after the page is loaded
$(document).ready(function()
{
   // iterate over all tabs (identified by CSS class "ms-dd-Tab")
   $('.ms-dd-Tab').each(function(index, para)
   {
      // look for the tab which has "ULS" title
      if ($(para).text().indexOf("ULS") !== -1)
      {
         // hide the title
         $(para).hide();
      }
   });
});

Register the script files with the Developer Dashboard

Our custom script code requires the jquery library – so we have to register two script files with the developer dashboard. That can be done using the following powershell commands:

$contentSvc = ([Microsoft.SharePoint.Administration.SPWebService]::ContentService)
$DevDashboardSettings = $contentSvc.DeveloperDashboardSettings
$DevDashboardSettings.DisplayLevel = [Microsoft.SharePoint.Administration.SPDeveloperDashboardLevel]::On

$DevDashboardSettings.userscripts.Add("http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.0.min.js")
$DevDashboardSettings.userscripts.Add("/_layouts/15/hideULSTab.js")

$DevDashboardSettings.Update()

As you can see we are registering two different script files: first the jquery library from an external site and second the script file we created earlier.

The powershell script will also enable the Developer Dashboard by setting the DisplayLevel to On.

http://blogs.technet.com/b/stefan_gossner/archive/2013/01/23/customizing-the-sharepoint-2013-developer-dashboard-using-custom-scripts.aspx

07 February, 2013

How to transfer a site collection from one database to another-SharePoint 2010


Guys- Few days back, I worked on one issue and would like share the experiences so that you can resolve it if you come across the same.

Problem Description:
We had two requirements:
1.   Stop creating site collections in existing databases
2.   Transfer some site collections from existing databases to new databases.

Let’s talk about the first scenario:

Stop creating site collections in existing databases
If you search in Google then you will get tons of results from many blogs/websites/forums/TechNet etc. Everybody is mentioning about ‘making the database offline’-let me tell you it’s very easy but I would recommend you that please don’t use this approach.

Here is the best approach that will be preferable to use across any conditions.
When you will open content database section in reference to any web application section then you will see following highlights:
·         Name of the database
·         Number of site collections exist
·         Maximum number of site collections
·         Minimum number of site collections

So yes-coming back to the main point…As we can see ‘how many site collections are currently holding by this database’ then we can restrict the entry by making proper changes in “maximum & minimum number of site collections”

That’s it-once you do this then you have applied the barrier to that DB and now its deadlocked. When you will create any new site collection now then it will go to new database.

CLEAN & SIMPLE J isn’t it?

Transfer some site collections from existing databases to new databases
Now coming back to second point, how to transfer the site collections from one DB to another. Many of us will give a thought (rocket serving thought J )that yes, it can be done by backup/restore, export/import!!!

If you are thinking like this then let me correct you that Microsoft has introduced some enhancements in the Power shell and it’s a point of one execution command only.  Let me refer you that TechNet article that reflects the same.

Power shell Command:
Move-SPSite http://servername/sites/sitename -DestinationDatabase ContentDb2

Note: This example moves the site collection http://servername/sites/sitename to the content database ContentDb2.

That’s it-Requirements fulfilled and we are done with this article J

If you have any queries/questions regarding the above mentioned information then please let me know.

I would be more than happy to help you as well as resolves your issues J


Product applies to:
SharePoint Server 2010

06 February, 2013

error 503 and unable to access the MOSS site


Problem Description:
Gets error 503 and unable to access the MOSS site anymore after installing a German language pack

Error Message:
503, service is unavailable

Farm Configuration:
Product / Version / Bit: SP2010/14.0.6335.0000/X64
Operating System / Service Pack/Bit: Win 2k8 R2 /SP2/X64
Farm Configuration: 3 WFE
Hardware (Physical/virtual): Hyper-V
Database Used: SQL server 2008 R2

Troubleshooting Done:
1.   Tried accessing all the sites, just to make sure that the problem is restricted to one site or across the whole farm
2.   Reviewed SharePoint logs
3.   Checked event logs
4.   Checked the connectivity between SQL and SharePoint
5.   Checked the application pools are running or not

Cause:
§  Found out that the applications pools are all stopped and that’s why the sites not running.
§  It looks like when the language pack is installed and then the issue started happening.


Resolution:
§  Started the application pool one by one and tried accessing the sites
§  All sites are accessible now without any issues…

Additional Notes:
§  Noticed that one of the content DB (WSS_content_ABC) shows that a few sites are not upgraded to SharePoint 2010.
§  Detached the content Database and attached it back to the same web application, just to make sure that the DB gets upgraded.

Product Applies To:
§  SharePoint 2010
§  SharePoint 2007

If you have any queries/questions then please let me know, thank you.