Sample function using SetStateRequest to deactivate record

// Get all the active records for a custom entity and deacitvate it

// In this case Custom Entity name is new_customentity and it has many to one relationship with contact record

 // So we are finding all the active custom entity records for a particular contact


// and deactivating it


void DeActivateCustomRecords(string contactID, IOrganizationService _service)
// setting contact id

ConditionExpression condition1 = new ConditionExpression();


condition1.Operator =ConditionOperator.Equal;


// and state code =0 -> active record

ConditionExpression condition2 = new ConditionExpression();

condition2.AttributeName =“statecode”;

condition2.Operator =ConditionOperator.Equal;


 // And the condition

FilterExpression filterExpression = new FilterExpression();



filterExpression.FilterOperator =LogicalOperator.And;

 //Create a column set to get the custom entity records id
//we need them to disable the records

ColumnSet columns = new ColumnSet(“new_customentityid”);
// Create query expression.

QueryExpression query1 = new QueryExpression();

query1.ColumnSet = columns;

query1.EntityName =“new_customentity”;

query1.Criteria = filterExpression;


EntityCollection result= _service.RetrieveMultiple(query1);
foreach (Entity customEntityResult in result.Entities)

SetStateRequest setState = new SetStateRequest();

setState.EntityMoniker = new EntityReference();

setState.EntityMoniker.Id = customEntityResult.Id;

setState.EntityMoniker.Name = “new_customentity”;

setState.EntityMoniker.LogicalName = entityElgResult.LogicalName;

setState.State =new OptionSetValue();

setState.State.Value = 1;

setState.Status = new OptionSetValue();

setState.Status.Value = -1;

SetStateResponse setStateResponse = (SetStateResponse)_service.Execute(setState);


catch (Exception ex)
throw ex;



Hope it is useful !

Author: Nishant Rana

I love working in and sharing everything about Microsoft.NET technology !

10 thoughts on “Sample function using SetStateRequest to deactivate record”

    1. I have done this using this: Is this correct.

      OrganizationRequest request = new OrganizationRequest() { RequestName = “SetState” };

      request[“EntityMoniker”] = new EntityReference() { Id = ActivityGuid, LogicalName = “activityLogicalName”, Name = “activityName” };

      request[“State”] = new OptionSetValue() { Value = 1 }; //State Code
      request[“Status”] = new OptionSetValue() { Value = 2 }; //Status reason

      if (IOrgService == null)
      IOrgService = SilverlightUtility.GetSoapService();

      // Start the Async Call
      IOrgService.BeginExecute(request, new AsyncCallback(EndChangeState), IOrgService);


  1. Nishant – Your Blog has nice examples. I am new to crm and working on a small project. Currently I am using Xrm and Dynamic Entities in my projecect. I want to DeActivate a Record in 4.0 using Xrm Dynamic Entities.

    Any help on this will be greately Appreciated. Even I am from Hyderabad.

    Thank you,


Please share your thoughts

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.