У нас есть CRM 2011, на месте. В службе WCF (C#) я программно создаю Контракты и Контракты. После создания контракта, я поставил его государство = «INVOICED», используя этот код:Почему ошибка «Состояние недействительно»?
try
{
SetStateRequest setStateRequest = new SetStateRequest()
{
EntityMoniker = new EntityReference
{
Id = gNewContractId,
LogicalName = Xrm.Contract.EntityLogicalName
},
State = new OptionSetValue((int)Xrm.ContractState.Invoiced),
Status = new OptionSetValue((int)Xrm.ContractState.Invoiced + 1)
};
_service.Execute(setStateRequest);
}
Этот процесс используется для работы, но иногда теперь я получаю эту ошибку, как я сделал сегодня:
«System.ServiceModel .FaultException`1 [Microsoft.Xrm.Sdk.OrganizationServiceFault]: состояние недействительно, этот контракт не может быть установлен в состояние счета-фактуры. (Fault Detail равен Microsoft.Xrm.Sdk.OrganizationServiceFault). "
Состояние контракта, когда этот фрагмент был выполнен (и который потерпел неудачу сегодня) был «Черновик».
Настоящий Договор имеет детальный контракт, а его дата ActiveOn - 6/1/2015, поэтому его необходимо было сделать активным - и это было. Поэтому я не понимаю ошибку или что мне нужно сделать, чтобы предотвратить ее.
Спасибо за помощь и совет.
Спасибо за ответ, но я думаю, что вы ошибаетесь. С http://crmbook.powerobjects.com/basics/service-management-overview/contracts/ Статус контракта Черновик. Это первый статус, который контракт назначается после его создания. Контракт может быть отредактирован, но не связан с делом. Invoiced. Изменение контракта с проекта на выставление счета означает, что договор был согласован обеими организациями. Контракт с выставленным счетом не может быть отредактирован или удален. Активные. Контракт с выставленным счетом автоматически активируется после достижения даты начала контракта. – DeveloperM
Я обновил свой ответ, да, можно напрямую установить контракт из черновика. –