2011年与Silverlight的CRM事件
我有一个大问题要解决Dynamics CRM 2011组织服务的一个事件。没有可用的CloseIncidentRequest类,而且对于fetch xml,我没有机会:2011年与Silverlight的CRM事件,silverlight,dynamics-crm-2011,dynamics-crm,microsoft-dynamics,Silverlight,Dynamics Crm 2011,Dynamics Crm,Microsoft Dynamics,我有一个大问题要解决Dynamics CRM 2011组织服务的一个事件。没有可用的CloseIncidentRequest类,而且对于fetch xml,我没有机会: public void CloseCase(Guid pCaseId) { FetchExpression fetch = new FetchExpression(); String requestMain = ""; requestMain += "<
public void CloseCase(Guid pCaseId)
{
FetchExpression fetch = new FetchExpression();
String requestMain = "";
requestMain += "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">";
requestMain += " <s:Body>";
requestMain += " <Execute xmlns=\"http://schemas.microsoft.com/xrm/2011/Contracts/Services\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">";
requestMain += " <request i:type=\"b:CloseIncidentRequest\" xmlns:a=\"http://schemas.microsoft.com/xrm/2011/Contracts\" xmlns:b=\"http://schemas.microsoft.com/crm/2011/Contracts\">";
requestMain += " <a:Parameters xmlns:c=\"http://schemas.datacontract.org/2004/07/System.Collections.Generic\">";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>IncidentResolution</c:key>";
requestMain += " <c:value i:type=\"a:Entity\">";
requestMain += " <a:Attributes>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>incidentid</c:key>";
requestMain += " <c:value i:type=\"a:EntityReference\">";
requestMain += " <a:Id>{0}</a:Id>";
requestMain += " <a:LogicalName>incident</a:LogicalName>";
requestMain += " <a:Name i:nil=\"true\" />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>subject</c:key>";
requestMain += " <c:value i:type=\"d:string\" xmlns:d=\"http://www.w3.org/2001/XMLSchema\">Parent Case has been resolved</c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " </a:Attributes>";
requestMain += " <a:EntityState i:nil=\"true\" />";
requestMain += " <a:FormattedValues />";
requestMain += " <a:Id>{1}</a:Id>";
requestMain += " <a:LogicalName>incidentresolution</a:LogicalName>";
requestMain += " <a:RelatedEntities />";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " <a:KeyValuePairOfstringanyType>";
requestMain += " <c:key>Status</c:key>";
requestMain += " <c:value i:type=\"a:OptionSetValue\">";
requestMain += " <a:Value>5</a:Value>";
requestMain += " </c:value>";
requestMain += " </a:KeyValuePairOfstringanyType>";
requestMain += " </a:Parameters>";
requestMain += " <a:RequestId i:nil=\"true\" />";
requestMain += " <a:RequestName>CloseIncident</a:RequestName>";
requestMain += " </request>";
requestMain += " </Execute>";
requestMain += " </s:Body>";
requestMain += "</s:Envelope>";
fetch.Query = String.Format(requestMain, pCaseId.ToString(), pCaseId.ToString());
_orgService.BeginRetrieveMultiple(fetch, CloseCaseResult, null);
public void CloseCase(Guid pCaseId)
{
FetchExpression fetch=新的FetchExpression();
字符串requestMain=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“意外事件解决”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“incidentid”;
requestMain+=“”;
requestMain+=“{0}”;
requestMain+=“事件”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“主题”;
requestMain+=“父案例已解决”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“{1}”;
requestMain+=“意外事件解决”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“状态”;
requestMain+=“”;
requestMain+=“5”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“CloseIncident”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
requestMain+=“”;
fetch.Query=String.Format(requestMain,pCaseId.ToString(),pCaseId.ToString());
_orgService.BeginRetrieveMultiple(fetch、CloseCaseResult、null);
有解决这个问题的办法吗
致以最诚挚的问候再次查看以下关于在silverlight中调用IOrganizationService的文章- 代码的第一部分(创建请求)应替换为以下代码:
Entity incidentresolution = new Entity()
{
LogicalName = "incidentresolution"
};
incidentresolution["subject"] = "Incident was closed";
incidentresolution["incidentid"] = new EntityReference()
{
Id = Guid.Empty,
LogicalName = "incident"
};
OrganizationRequest request = new OrganizationRequest()
{
RequestName = "CloseIncident"
};
request["incidentresolution"] = incidentresolution;
request["status"] = new OptionSetValue()
{
Value = -1
};
当然,您应该将Guid.Empty替换为您要关闭的事件的id。您好,谢谢回答。我非常希望您的解决方案能够正常工作,但我收到了一条奇妙的信息性错误消息“not found”…我发现您的代码与我提供的示例不同。以下是应该更改的内容:_orgService.BeginExecute(请求,新建AsyncCallback(CloseCaseResult),_orgService);public void CloseCaseResult(IAsyncResult result result){OrganizationResponse=((IOOrganizationService)result.AsyncState)。EndExecute(结果)}同样的信息:-(你自己尝试过吗?我没有完全尝试过这个代码,但我在Silverlight上做了很多工作,而且以前也成功过。