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