private void LoseAllOpportunitiesForCustomerId(Guid customerId, IOrganizationService _service){
// Instantiate an organization context so that we can use LINQ queries
var orgContext = new YourOrganizationContext(_service);
// Build query to retrieve the related opportunities (w/Active statecode)
var opportunityIds = from o in orgContext.OpportunitySet
where o.CustomerId.Id == customerId && o.StateCode.Value == OpportunityState.Open
select o.OpportunityId.Value;
foreach (var opportunityId in opportunityIds) {
System.Diagnostics.Debug.WriteLine("Inactivating Opportunity Id: {0}.", opportunityId);
OpportunityClose oppClose = new OpportunityClose();
// Set the opportunityclose activity subject.
oppClose.Subject = "Inactive customer.";
// Create an entity reference to the opportunity being lost.
oppClose.OpportunityId = new EntityReference(Opportunity.EntityLogicalName, opportunityId);
// Create the LostOpportunityRequest request.
LoseOpportunityRequest loseOppReq = new LoseOpportunityRequest();
loseOppReq.OpportunityClose = oppClose;
loseOppReq.Status = new OptionSetValue(-1);
// Execute the request.
_service.Execute(loseOppReq);
}
}
Thursday, August 11, 2011
CRM 2011: Using the LoseOpportunityRequest request
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment