CRM 2011 の Web リソースとして Silverlight アプリケーションを作成しています。現在、DB に ServiceAppointment レコードを作成しています。作成後、ステータスを要求ではなく「予約済み」に変更したいと考えています。
私はこれについてググって、コード やMicrosoft.Crm.Sdk.Messages.SetStateRequestを介してサービス アクティビティを閉じるなどの例に出くわしました。
彼らはすべて「SetStateRequest」を使用することを提案しており、これを使用するには、OptionSetValue を次のように設定する必要があります
request["State"] = new OptionSetValue(4);
しかし、上記の行には、「OptionSetValue には引数を 1 つ取るコンストラクターが含まれていません」というエラーが表示されます。ところで、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);
そして、私のコールバック関数はプライベートです void ChangeActivityStatusCallback(IAsyncResult result) {
OrganizationResponse response;
try
{
response = ((IOrganizationService)result.AsyncState).EndExecute(result);
}
catch (Exception ex)
{
_syncContext.Send(ShowError, ex);
return;
}
}