Does this solution work with an upgrade?

Mar 21, 2014 at 1:03 PM
Hi all behind this Project.

My question is this, can this be activated on a SharePoint 2013 farm and then import and upgrade sites from 2010 containing Meeting Workspaces?
Or, does it only work when creating new sites?

Regards
// Thomas Balkeståhl
Coordinator
Mar 28, 2014 at 2:23 PM
Edited May 8, 2014 at 4:18 PM
Hi Thomas,
You should also be able to use it on upgraded 2010 sites. It's possible that the Workspace field is set to hidden in the migrated list. If that's the case you can use SharePoint Management shell to make the field visible again.

It’s a little bit tricky but it should work.
Change the web URL and the list title in the following script and run it in the SharePoint Management shell:

$web = Get-SPWeb http://yoursite $list = $web.Lists["Your List"]

$myAss = [Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint");
$type = $myAss.GetType("Microsoft.SharePoint.SPField");
[System.Reflection.BindingFlags]$flags = [System.Reflection.BindingFlags]::Instance -bor [System.Reflection.BindingFlags]::NonPublic
$SetFieldBoolValue = $type.GetMethod("SetFieldBoolValue",$flags)
$field = $list.Fields.GetFieldByInternalName("WorkspaceLink")
$arr = @()
$arr+="Sealed"
$arr+=$false
$SetFieldBoolValue.Invoke($field, $arr);
$arr = @()
$arr+="Hidden"
$arr+=$false
$SetFieldBoolValue.Invoke($field, $arr);
$method = $type.GetMethod("UpdateCore", $flags);
$method.Invoke($field, $true);
$field.ShowInDisplayForm = $false
$field.ShowInNewForm = $true
$field.ShowInEditForm = $true
$field.Update()

$field = $list.Fields.GetFieldByInternalName("Workspace")
$arr = @()
$arr+="Sealed"
$arr+=$false
$SetFieldBoolValue.Invoke($field, $arr);
$arr = @()
$arr+="Hidden"
$arr+=$false
$SetFieldBoolValue.Invoke($field, $arr);
$method = $type.GetMethod("UpdateCore", $flags);
$method.Invoke($field, $true);
$field.ShowInDisplayForm = $true
$field.ShowInNewForm = $false
$field.ShowInEditForm = $false
$field.Update()


Hope this works for you.

Regards,
Florian

Update!
There is an easier script to make the workspace field visible:
http://www.sharepointsapiens.com/blog/make-workspace-field-visible-in-sharepoint-2013-calendar/
Mar 28, 2014 at 2:28 PM
Thanks a lot Florian.
That should work, the Meeting Workspace is a real showstopper for 2010 to 2013 upgrades, so that would be just great if it did work.

Thanks again.

// Thomas