我正在创建一个 silverlight 应用程序作为 CRM 2011 的 Web 资源。现在我正在 DB 中创建一个 ServiceAppointment 记录,在创建它之后,我想将其状态更改为“保留”而不是请求。
我对此进行了谷歌搜索,并遇到了诸如Close a Service Activity Through Code 和Microsoft.Crm.Sdk.Messages.SetStateRequest之类的示例
他们都建议使用“SetStateRequest”,为了使用这个我必须设置 OptionSetValue 像
request["State"] = new OptionSetValue(4);
但上面的行给了我一个错误,说“OptionSetValue 不包含带有一个参数的构造函数”顺便说一句,我在 silverlight 应用程序中使用 CRM 2011 服务的 SOAP 端点
有什么想法的朋友吗?
编辑
以下是我的代码
var request = new OrganizationRequest { RequestName = "SetStateRequest" };
request["State"] = 3;
request["Status"] = 4;
request["EntityMoniker"] = new EntityReference() { Id = createdActivityId, LogicalName = "serviceappointment" };
crmService.BeginExecute(request,ChangeActivityStatusCallback,crmService);
我的回调函数是 private void ChangeActivityStatusCallback(IAsyncResult result) {
OrganizationResponse response;
try
{
response = ((IOrganizationService)result.AsyncState).EndExecute(result);
}
catch (Exception ex)
{
_syncContext.Send(ShowError, ex);
return;
}
}