Tuesday 27 March 2012

Activate Document Set Feature

What is a document set?
Remember Document sets are NOT available in SharePoint foundation.
Site Settings
    Site Collection Administration
        Site Collection Features


Once in the feature list hit the activate button for document sets.

function LoadSharePointPowerShellEnviroment
 write-host "Setting up Powershell enviroment for Sharepoint" -foregroundcolor Blue
 Add-PSSnapin "Microsoft.Sharepoint.PowerShell" -ErrorAction SilentlyContinue
 Write-host "Sharepoint PowerShell Snapin loaded." -foregroundcolor Green
write-host "Activating the Document Set Feature" -foregroundcolor Blue
Enable-SPFeature -Identity DocumentSet -url "http://ssrap2"
write-host "Document Set Feature activated" -foregroundcolor Green

Make sure to sub in your site URL where it's highlighted in yellow.

or if you're really bad-ass activate it in your feature receiver

private Guid DocumentSetFeatureID = new Guid("3bae86a2-776d-499d-9db8-fa4cdc7884f8");
// Uncomment the method below to handle the event raised after a feature has been activated.
public override void FeatureActivated(SPFeatureReceiverProperties properties)
    using (SPSite site = properties.Feature.Parent as SPSite)
        if (site.Features[DocumentSetFeatureID] == null)

Friday 23 March 2012

List Existing site Columns using Powershell

Powershell script

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue

function GetSiteColumns($web)
    foreach ($f in $web.Fields)
        $data = @{"Id" = $f.Id
                  "Title" = $f.Title
                  "Type" = $f.Type
                  "Internal Name" =  $f.InternalName
                   "Group" = $f.Group
                  New-Object PSObject -Property $data   

$webUrl = "http://ssrap2"
GetSiteColumns(Get-SPWeb $webUrl) | Out-GridView

remember to swap out the url highlighted in yellow to your own, for this to work you need to have windows powershell ISE installed.

I've been uping my PowerShell skills as of late,
and here's a much more impressive way to achieve the same result

#function to load SharePoint Powershell snap in
function LoadSharePointPowerShellEnviroment
 #clear the screen of pevious output
 write-host "Setting up Powershell enviroment for Sharepoint" -foregroundcolor Blue
 Add-PSSnapin "Microsoft.Sharepoint.PowerShell" -ErrorAction SilentlyContinue
 Write-host "Sharepoint PowerShell Snapin loaded." -foregroundcolor Green
#call sharepoint plugin function
$web = Get-SPWeb("http://Wingtip")
$web.Fields | Select-Object -Property id, Title, type,InternalName, Group  | Out-GridView

Sunday 18 March 2012

Custom Site Column

First we need to create an empty element object, To do this right click in your Solution explorer, select add a new item and choose an empty element

Click the "Add" button and presto, your ready to make a Site column

Once you have your empty elements file open you're ready to create your custom site column(s) you can start creating fields (columns), below I've created five all with unique ID's

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Field ID ="{9749FAFE-B58C-4945-85B9-C360C5E309C1}"
         Name ="CoffeeID"
         DisplayName ="Coffee ID"
  <Field ID="{FE2F4BE0-6FB3-4EC6-922B-FA3641745EC5}"
         Name ="CoffeeRegion"
         DisplayName ="Coffee Region"
         Group ="Coffee"
         Type ="Choice"
         Required ="True"
      <CHOICE>North America</CHOICE>
      <CHOICE>South America</CHOICE>
  <Field ID ="{A4AC9AEE-3FD3-457F-A8D6-50C0E86363B6}"
       Group ="Coffee"
       DisplayName ="Coffee Supplier"
       Name ="CoffeeSupllier"
       Type ="Lookup"
       Overwrite="TRUE" />
  <Field ID ="{4206013B-2B16-441B-A6AD-2E1DAE6C4A86}"
     Name ="CoffeeStartDate"
     DisplayName ="Coffee StartDate"
  <Field ID ="{EFE8441B-8A51-427D-ABF4-D9D4ECB1F2E9}"
         Name ="CoffeePrice"
         DisplayName ="Coffee Price"
         Group ="Coffee"
         Required="TRUE" />

And it's that that easy, there are numerous type's of Columns, refer to MSDN for a full list