Tag: SharePoint 2010

Get Workflow Status Programmatically in SharePoint Using Client Side Object Model C#

This post explains how to get SharePoint list item’s workflow status using Client Side Object Model programming, using the below code we can find workflow status id. Because workflow status field internally save the workflow status id only not as name,


List oList = clientContext.Web.Lists.GetByTitle("Documents");
ListItem item = oList.GetItemById(14);
clientContext.Load(item);
clientContext.ExecuteQuery();
Field workflowStatusField = item.ParentList.Fields.GetByTitle("WorkflowName");
clientContext.Load(workflowStatusField);
clientContext.ExecuteQuery();
var workflowStatusValue = item[workflowStatusField.InternalName];

In that code workflowStatusValue receive a status id as a list item workflow status. Here I’ve listed workflow status code and their status,

NotStarted = 0
FailedOnStart = 1
InProgress = 2
ErrorOccurred = 3
StoppedByUser = 4
Completed = 5
FailedOnStartRetrying = 6
ErrorOccurredRetrying = 7
ViewQueryOverflow = 8
Canceled = 15
Approved = 16
Rejected = 17

for testing I have created a workflow, named as “WorkflowName” and assigned to one document.

2016-02-12_0-37-37

In the below screenshot we can see that the code returns 2, which means workflow status is in-progress.

workflow

Feel free to contact me if you have any doubts and queries through comments.

Programmatically Add Excel Word Access Content Types SharePoint 2010

Create new project using visual studio “Empty SharePoint Project” template, and then select sandbox solution, and then add new web part, now we call below function to create new Content Template with particular document and add some site column, then its add one document library.

        private void ContentTypeAdder()
        {
            using (SPSite site = new SPSite(“http://win7”))
            {
                using (SPWeb web = site.OpenWeb())
                {
                    web.AllowUnsafeUpdates = true;
                    SPContentType contentType = new SPContentType(web.ContentTypes[“Document”], web.ContentTypes, “SPTECHNET Time Sheet”);
                    web.ContentTypes.Add(contentType);
                    contentType.Group = “SPTECHNET Content Types”;
                    contentType.Description = “Demo content type”;
                    contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField(“Address”)));
                    contentType.FieldLinks.Add(new SPFieldLink(web.Fields.GetField(“Office”)));
                    contentType.DocumentTemplate = “http://win7/Shared Documents/Test Dummy.docx”;
                    contentType.Update();
                    
                    SPList list = web.Lists[“Shared Documents”];
                    list.ContentTypesEnabled=true;
                    list.ContentTypes.Add(contentType);
                    list.Update();
                    web.AllowUnsafeUpdates = false;
                }
            }
        }

Image

Could not load type ‘Microsoft.Office.Server.Search.Administration.SearchContext’

Error

Could not load type ‘Microsoft.Office.Server.Search.Administration.SearchContext’ from assembly ‘Microsoft.Office.Server.Search, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c’.

Err

Fix

Click Project properties, select Build tab and then select project platform x64

Fix

SharePoint ListItem Versioning and Changes in C#

If we need to enable SharePoint list versioning then navigate List Settings–>Versioning settings and then select radio button of create a version each time you edit an item in this list? Section, optionally limit the number of versions to retain is help to reduce DB size, SharePoint list does not support minor version and draft version.

We can also enable SharePoint List versioning using c#

using (SPSite spsite = new SPSite("http://win7/"))
{
SPWeb spweb = spsite.OpenWeb();
SPList list = spweb.Lists["CustomList"];
list.EnableVersioning = true;
list.Update();
}

Retrieve SPListItem versions using c#

using (SPSite spsite = new SPSite("http://win7/"))
{
SPWeb spweb = spsite.OpenWeb();
SPListItemCollection listitems = spweb.GetList("http://win7/Lists/CustomList").Items;

foreach (SPListItem listitem in listitems)
{
//listitem.Versions.RestoreByID(5);
foreach (SPListItemVersion versionItem in listitem.Versions)
{
Console.WriteLine("VersionId :" + versionItem.VersionId);
Console.WriteLine("VersionLabel :" + versionItem.VersionLabel);
Console.WriteLine("IsCurrentVersion :" + versionItem.IsCurrentVersion);
Console.WriteLine("ListItem.Title :" + versionItem.ListItem.Title);
Console.WriteLine("Created :" + versionItem.Created);
Console.WriteLine("CreatedBy :" + versionItem.CreatedBy);
Console.WriteLine("Level :" + versionItem.Level);
}
}
}

Retrieve SPListItem version changes using c#

using (SPSite spsite = new SPSite("http://win7/"))
{
SPWeb spweb = spsite.OpenWeb();
SPListItemCollection listitems = spweb.GetList("http://win7/Lists/CustomList").Items;

foreach (SPListItem listitem in listitems)
{
for (int i = 0; i < listitem.Versions.Count - 1; i++)
{
SPListItemVersion oldVersion = listitem.Versions[i];
SPListItemVersion latestVersion = listitem.Versions[i + 1];
foreach (SPField field in oldVersion.Fields)
{
if (field.ShowInVersionHistory == false)
{
continue;
}

if (latestVersion == null)
{
Console.WriteLine("  > {0} changed to \"{1}\"",
field.StaticName, oldVersion[field.StaticName]);
continue;
}

if (oldVersion[field.StaticName].Equals(latestVersion[field.StaticName]))
{
continue;
}

Console.WriteLine("  > {0} changed from \"{1}\" to \"{2}\"",
field.StaticName, latestVersion[field.StaticName], oldVersion[field.StaticName]);
}
}

}
}
Console.ReadLine();

Debugging SharePoint 2010 Client Object Model Silverlight Application

Step 1

Download and install following Visual Studio 2010 plugins

Visual Studio 2010 SharePoint Power Tools

Silverlight SharePoint Web Parts

Step 2

Create new Silverlight project and then create new Empty SharePoint Project in sandbox Solution

Step 3

Right click SharePoint Project then Click Properties SharePoint tab Check Enable Silverlight Debugging

Step 4

SharePoint Project Create new item of Silverlight webpart

Step 5

Add reference in SharePoint Silverlight OM dll in “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin”
following location

Step 6

Add Following Code in Silverlight Project App.xaml.cs at Application_Startup function
ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);

Step 7

Set as Startup in SharePoint Project, now we can run (f5) then navigate “Site pages” then we can see then new page relevant name of project,We can access the page for debugging.

Restore Deleted Items From Recycle Bin in SharePoint 2010

Step 1

If we need change recycle bin setting then Navigate Central Administration –> Manage Web Application –>Select Web Application then select General Setting –>General Setting
here we can see the recycle bin setting.

Step 2

If we need restore deleted items from recycle bin then navigate Recycle Bin –> Site Collection Recycle Bin –> Deleted from end user Recycle Bin , here we can select and restore the deleted items .

Add Excel Word Access Content Types SharePoint 2010

Step 1:

Navigate Site Actions–>Site Settings –>under Galleries–>Click Site Content Types and then click Create Button.

Site Content Types

Step 2:

In the Select parent content type from list, select Document Set Content Types and then click OK.

Create New

Step 3:

On the Site Content type Advanced Settings page, select Upload a new document template, and then click Browse to browse to and select the document template you want to assign to the site content type. A document template choose can be any file such as an Excel spreadsheet, a Word document or template, a PowerPoint slide presentation, etc.And then click OK.

dvaced Setting

upload template

Step 4:

In the Document Library Setting dialog under General Settings, click Advanced Settings.In the Content Types section, click Yes for Allow management of content types and then click OK.

Choose Yes

Step 4:

Back in the Document Library Setting dialog under Content Types, click Add from existing site content types.In the Available Site Content Types list, select your content type and then click Add.

Advanced Settings

Select List

Step 5:

Now we can see the new content type on the New Document menu.

New File Sharepoint 2010