По линиям этот вопрос .
Я пытаюсь пометить существующий счет-фактуру как оплаченный в Dynamics CRM 2011 с использованием Silverlight.
Согласно документации все, что мне нужно сделать, это установить код статуса = 100001 и код штата = 2.
Когда я делаю это, я получаю исключение "NotFound".
Guid invoiceID = new Guid("Existing Invoice Guid");
IOrganizationService orgService = OrgServiceFactory.GetInstance();
orgService.BeginRetrieve("invoice", invoiceID, new ColumnSet(new string[] { "invoiceid", "statecode", "statuscode" }), (result) =>
{
var fetchResp = orgService.EndRetrieve(result);
var statecodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statecode");
OptionSetValue statecode = (OptionSetValue)statecodeAttrib.Value;
statecode.Value = 2;
var statuscodeAttrib = fetchResp.Attributes.Single(a => a.Key == "statuscode");
OptionSetValue statuscode = (OptionSetValue)statuscodeAttrib.Value;
statuscode.Value = 100001;
orgService.BeginUpdate(fetchResp, (updateResult) =>
{
/* Web Exception thrown here */
orgService.EndUpdate(updateResult);
Console.Write("");
}, orgService);
}, orgService);
Если я удаляю бит «код состояния» и просто пытаюсь установить код состояния на 2 - (частично доставлено) или 4 - (оплачивается), он работает как положено.
Это только когда я пытаюсь установить оба, это терпит неудачу. Сбой также произойдет, если я просто попытаюсь установить статускод = 100001, 100002, 100003 (завершено, частично, отменено)
Есть ли другой способ пометить счет как оплаченный?