Вопрос: Как отменить дело (Инцидент) в Microsoft CRM 4 с помощью WebService?
Я пишу это, потому что мне потребовались годы, чтобы найти правильный ответ, а документация MS не очень полезнав связи с этим, надеюсь, это сэкономит время другим людям.
Ответ (в VB.NET):
Dim CancelRequest As New SetStateIncidentRequest CancelRequest.IncidentState = IncidentState.Canceled CancelRequest.IncidentStatus = -1 CancelRequest.EntityId = // [GUID OF INCIDENT] Dim CancelResponse As New SetStateIncidentResponse Try CancelResponse = objCrm.Execute(CancelRequest) Catch ex As System.Web.Services.Protocols.SoapException Dim root As XmlElement = ex.Detail strErrors = strErrors & vbCrLf & vbCrLf & root.ChildNodes(0).ChildNodes(3).InnerText Return False Catch ex As Exception strErrors = strErrors & vbCrLf & vbCrLf & ex.Message Return False End Try Return True
Где objCRM - это экземпляр CrmService.
Вот версия C # для CRM2011.
try { SetStateRequest stateRequest = new SetStateRequest(); stateRequest.EntityMoniker = (EntityReference)entity.ToEntityReference(); stateRequest.State = new OptionSetValue(2); //Code - Cancelled. stateRequest.Status = new OptionSetValue(6); // Reason - Cancelled. SetStateResponse response = new SetStateResponse(); response = (SetStateResponse)service.Execute(stateRequest); } catch (Exception ex) { // Catch exception & do whatever you want man... :) }