Monday, February 16, 2015

Visual Studio - display selected file in solution explorer

Everytime I need to set this up I can't remember how. 

It is very handy when you have a Visual Studio project with a large number of files to have the file you are working on highlighted in the solution explorer.  This doesn't happen automatically but is super easy to set up.

Tools > Options > Projects and Solutions > General > Track Active item in Solution Explorer

Done!

Monday, February 9, 2015

User Profile Synchronization Service

That old gem of getting the user profile synchronization service running bit me today.  Thanks so much to SharePointBjorn for supplying the powershell script to fix it.

Sunday, February 8, 2015

SharePoint 2013 - Creating a view to show tasks assigned to me and groups that I am a member of

I have a requirement to create a view to show tasks that are:
  • assigned to me, and
  • assigned to groups that I am a member of
Thanks to this blog for the answer:  Filter Sharepoint Task Llist View To Show Tasks Assigned To Groups I am in.

The Where clause for the view needs to be:

 
<Or>
  <Membership Type="CurrentUserGroups">
    <FieldRef Name="AssignedTo"/>
  </Membership>
  <Eq>
    <FieldRef Name="AssignedTo"/>
    <Value Type="Integer">
      <UserID/>
    </Value>
  </Eq>
</Or>


And that is all.

Wednesday, February 4, 2015

SharePoint 2013 - Adding a ListViewWebPart throws error "The specified view is invalid"

Today I encounted an issue where I was programatically adding a ListViewWebPart to a page and getting an exception "The specified view is invalid".

The code throwing the exception was

            var listViewWebPart = new ListViewWebPart 
            {
                ListId = list.ID, 
                ChromeType = PartChromeType.None,
                ViewGuid = list.Views[Constants.ViewNames.DocumentLibraryAllDocumentSets].ID.ToString("B").ToUpper()
            };
            webPartManager.AddWebPart(listViewWebPart, "Top", 1);

The solution was to change ListViewWebPart to XsltListViewWebPart. Once I did that the problem went away.

Tuesday, February 3, 2015

Sharepoint 2013 - create mapped properties with powershell

It has been many years and a couple of versions of SharePoint since I posted and I figured it's time to resurrect SharePoint Wisdom.  What better way to start than a sample powershell function that will add/edit a managed property and map a crawled property to it in SharePoint 2013.

if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {
    Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}

Function UpdateManagedPropertyMapping([string]$managedPropertyName, [string]$crawledPropertyName, $searchApp)
{
    $managedProperty = Get-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $searchApp -Identity $managedPropertyName -ErrorAction SilentlyContinue
    Write-Host Adding/Updating managed property $managedPropertyName

    if($managedProperty -eq $null)
    {
        #create a new property
        Write-Host Creating managed property $managedPropertyName
        $managedProperty = New-SPEnterpriseSearchMetadataManagedProperty -SearchApplication $searchApp -Name $managedPropertyName -Type 1 -Queryable $true -Retrievable $true 
        $managedProperty.Refinable = $true
        $managedProperty.Sortable = $true
        $managedProperty.Update()
        Write-Host Created managed property $managedPropertyName
    }
    else
    {
        Write-Host Managed property $managedPropertyName already exists
    }

    $managedPropertyMapping = Get-SPEnterpriseSearchMetadataMapping -SearchApplication $searchApp -ManagedProperty $managedProperty
    if($managedPropertyMapping)
    {
        #remove mapping
        Write-Host Removing existing mapping
        Remove-SPEnterpriseSearchMetadataMapping -Identity $managedPropertyMapping -Confirm:$false

    }
    Write-Host Mapping property $crawledPropertyName to $managedPropertyName
    $crawledProperty = Get-SPEnterpriseSearchMetadataCrawledProperty -SearchApplication $searchApp -Name $crawledPropertyName
    $managedPropertyMapping = New-SPEnterpriseSearchMetadataMapping -SearchApplication $searchApp -ManagedProperty $managedProperty -CrawledProperty $crawledProperty

    Write-Host Finished adding/updating managed property $managedPropertyName
}

$searchApp = Get-SPEnterpriseSearchServiceApplication
UpdateManagedPropertyMapping FFBoKAuthor ows_Author0 $searchApp
UpdateManagedPropertyMapping FFBoKPublicationYear ows_CategoryLevel1 $searchApp
UpdateManagedPropertyMapping FFBoKCategory1 ows_CategoryLevel1 $searchApp

I hope this script proves useful to someone.

Tuesday, April 21, 2009

Visual Studio 2008 Office 2007 templates missing

I just tried to create a new SharePoint 2007 Sequential Workflow in Visual Studio 2008, but when I navigated to Office 2007 in the project types no templates appeared.

I scratched my head for about 10 minutes and then noticed that I had selected .NET Framework 3.0 as the .NET version. Changing this to .NET Framework 3.5 fixed the problem.






Tuesday, February 10, 2009

Retrieving the COM class factory for component with CLSID {3D42CCB1-4665-4620-92A3-478F47389230} failed due to the following error: 80070005

I came across this error in SharePoint yesterday. It seemed to spontaneously occur for no reason I could figure out and seemed to be linked to importing user profiles from Active Directory. The import stopped working and this error started to appear.

After searching I found a few articles suggesting to fix permissions on the OSearch component. One of these is http://www.sharepointblogs.com/jasonmedero/archive/2008/02/08/after-applying-moss-2007-sp1-event-log-error-retrieving-the-com-class-factory-for-component-with-clsid-3d42ccb1-4665-4620-92a3-478f47389230-failed-due-to-the-following-error-80070005.aspx

I checked these permissions and found that they were already correct. What I did try then was to stop and start the osearch service.

Restarting the osearch service made the error go away BUT then when I tried to go to the User Profile page in the SSP I got a new error which stated there was a problem connecting to the database or to the search. Upon further investigation I discovered that the SSP web application had lost it's connection to the indexer. Once I added this back in it seemed to work fine again.