【发布时间】:2011-07-21 19:02:23
【问题描述】:
我有一个 Silverlight 应用程序可以创建约会,但由于它没有标记为“已安排”,它不会显示在日历中。我为此使用了 SOAP 服务,下面是一些示例代码,它会在单击按钮时触发创建约会,但它不会显示在日历中:
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”异常。有没有其他方法可以做到这一点?
【问题讨论】:
-
对不起,如果我很厚,但您肯定只需要在创建记录时将 statusreason 设置为“Scheduled”吗?
-
@AdamV 你试过这个吗?我记得这样做过,但没有效果。我相信更改约会状态是一个单独的请求的原因是因为它会进行一些验证以查看是否存在任何冲突,如果确实发现任何冲突,它将报告它们并且您可以根据需要处理它们。