Dynamics crm 2011 在CRM 2011中按计划标记约会
我有一个Silverlight应用程序,它可以创建约会,但由于它没有标记为“已安排”,因此不会显示在日历中。我正在为此使用SOAP服务,下面是一些示例代码,在单击按钮创建约会时触发,但它不会显示在日历中:Dynamics crm 2011 在CRM 2011中按计划标记约会,dynamics-crm-2011,Dynamics Crm 2011,我有一个Silverlight应用程序,它可以创建约会,但由于它没有标记为“已安排”,因此不会显示在日历中。我正在为此使用SOAP服务,下面是一些示例代码,在单击按钮创建约会时触发,但它不会显示在日历中: TestCommand = new RelayCommand(() => { var soapCtx = ServiceHelper.GetSingletonSoapService(); var activityId = Guid.NewGuid(); var a
TestCommand = new RelayCommand(() =>
{
var soapCtx = ServiceHelper.GetSingletonSoapService();
var activityId = Guid.NewGuid();
var appt = new Entity()
{
Id = activityId,
LogicalName = "appointment"
};
appt["activityid"] = activityId;
appt["scheduledstart"] = DateTime.Now.Date;
appt["scheduledend"] = DateTime.Now.Date.AddHours(1);
appt["description"] = "Test 1 2 3";
appt["subject"] = "Test Command Button Appointment";
appt["location"] = "Location 1 2 3";
soapCtx.BeginCreate(appt, ar =>
{
var response = soapCtx.EndCreate(ar);
var bookRequest = new OrganizationRequest();
bookRequest.RequestName = "Book";
bookRequest["Target"] = appt;
soapCtx.BeginExecute(bookRequest,
new AsyncCallback(OnBookRequestedCompleted), soapCtx);
}, null);
});
void OnBookRequestedCompleted(IAsyncResult ar)
{
var soapCtx = (IOrganizationService)ar.AsyncState;
var response = soapCtx.EndExecute(ar);
}
我在OnBookRequestedCompleted方法中不断得到“NotFound”异常。有其他方法吗?使用Fiddler调试HTTP请求/响应,这将为您提供有关“未找到”异常的详细信息。使用Fiddler调试HTTP请求/响应,这将为您提供有关“未找到”异常的详细信息。您不应该设置它返回的ActivityId字段这本书是我的要求。如果BookResponse.ValidationResult.ValidationSuccess==true,则apptId=BookResponse.ValidationResult.ActivityId 您需要使用BookRequest返回的id调用SetStateRequest以将状态设置为Scheduled 例如:
SetStateRequest state = new SetStateRequest();
state.State = new OptionSetValue(3); // Scheduled
state.Status = new OptionSetValue(5); // Busy
state.EntityMoniker = new EntityReference("appointment", apptId);
SetStateResponse stateSet = (SetStateResponse)this.orgService.Execute(state);
您不应该设置BookRequest返回的ActivityId字段。如果BookResponse.ValidationResult.ValidationSuccess==true,则apptId=BookResponse.ValidationResult.ActivityId 您需要使用BookRequest返回的id调用SetStateRequest以将状态设置为Scheduled 例如:
SetStateRequest state = new SetStateRequest();
state.State = new OptionSetValue(3); // Scheduled
state.Status = new OptionSetValue(5); // Busy
state.EntityMoniker = new EntityReference("appointment", apptId);
SetStateResponse stateSet = (SetStateResponse)this.orgService.Execute(state);
抱歉,如果我太胖了,但您确实需要在创建记录时将statusreason设置为“Scheduled”?@AdamV您尝试过这个吗?我记得这样做了,但没有效果。我认为更改约会状态是一个单独的请求的原因是,它会进行一些验证,以查看是否存在任何冲突,如果发现任何冲突,它会报告这些冲突,并且您可以按照自己的意愿处理这些冲突。抱歉,如果我不清楚,但您肯定只需要将statusreason设置为“Scheduled”当你创建记录时?@AdamV你试过这个吗?我记得这样做了,但没有效果。我认为更改约会状态是一个单独的请求的原因是,它会进行一些验证,以查看是否存在任何冲突,如果它确实发现任何冲突,它会报告这些冲突,您可以按照自己的意愿处理它们。