Web services 通过Web服务解决CRM4中的事件(结案)?

Web services 通过Web服务解决CRM4中的事件(结案)?,web-services,dynamics-crm,dynamics-crm-4,Web Services,Dynamics Crm,Dynamics Crm 4,我正在尝试通过Web服务解决/关闭Dynamics CRM4案例/事件 单次SetStateIncidentRequest是不够的,它返回一条服务器无法处理请求的错误消息。我认为这与在案例属性更改时触发的活动工作流有关。我不知道是否还有其他原因阻止了这个请求 由于可以通过GUI关闭这些案例,我想有一组“正确”的步骤需要遵循,以便通过CrmService实现;不幸的是,我已经在谷歌上搜索了一段时间,却没有找到我想要的。有人能帮我吗?这里有一个提示-捕获并检查Detail.OuterXML属性,您将

我正在尝试通过Web服务解决/关闭Dynamics CRM4案例/事件

单次
SetStateIncidentRequest
是不够的,它返回一条
服务器无法处理请求的错误消息。我认为这与在案例属性更改时触发的活动工作流有关。我不知道是否还有其他原因阻止了这个请求


由于可以通过GUI关闭这些案例,我想有一组“正确”的步骤需要遵循,以便通过CrmService实现;不幸的是,我已经在谷歌上搜索了一段时间,却没有找到我想要的。有人能帮我吗?

这里有一个提示-捕获并检查Detail.OuterXML属性,您将得到更详细的错误消息。有可能您没有正确生成请求。

事实上,我不知道存在一个
CloseIncidentRequest
类可用于
CrmService.Execute()
方法。最有可能的是,
SetStateIncidentRequeset
将无法工作,因为预计事件解决方案将以这种方式创建。遗憾的是,类和操作的名称没有得到一致的使用(案例/事件、解决/关闭).

要在CRM中解决案例(在VB.NET中),我执行以下操作:

Try

Dim activity As New incidentresolution
Dim closeRequest As New CloseIncidentRequest
Dim closeResponse As New CloseIncidentResponse
Dim strErrors As String = String.Empty()

activity.incidentid = New Lookup
activity.incidentid.type = EntityName.incident.ToString
activity.incidentid.Value = //[GUID OF INCIDENT]

activity.ownerid = New Owner
activity.ownerid.type = EntityName.systemuser.ToString
activity.ownerid.Value = //[GUID OF USER PERFORMING ACTION]

activity.statecode = New IncidentResolutionStateInfo
activity.statecode.Value = 1 //Resolved

activity.statuscode = New Status
activity.statuscode.Value = 5 //Problem Solved

closeRequest.IncidentResolution = activity
closeRequest.Status = 5 //Problem Solved

// IF REQUIRED:
activity.timespent = New CrmNumber
activity.timespent.Value = //[INTEGER REPRESENTING No. OF MIN SPENT ON CASE]

closeResponse = objCrm.Execute(closeRequest)

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

End Try