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

 

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

ConditionExpression condition1 = new ConditionExpression();

condition1.AttributeName=“new_contactid”;

condition1.Operator =ConditionOperator.Equal;

condition1.Values.Add(contactID);


// and state code =0 -> active record

ConditionExpression condition2 = new ConditionExpression();

condition2.AttributeName =“statecode”;

condition2.Operator =ConditionOperator.Equal;

condition2.Values.Add(0);

 // And the condition

FilterExpression filterExpression = new FilterExpression();

filterExpression.AddCondition(condition1);

filterExpression.AddCondition(condition2);

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;

 try{

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. 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,
    Shankar

    Like

    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);

      Like

Share your thoughts

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s