我们有内部部署的 CRM 2011。在 WCF 服务 (C#) 中,我以编程方式创建合同和合同详细信息。创建合同后,我使用以下代码设置其 State = '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]:状态无效,此合同不能设置为发票状态。(故障详细信息等于 Microsoft.Xrm.Sdk.OrganizationServiceFault)。”
执行此代码段(今天失败)时的合同状态是“草稿”。
此合同有子合同详细信息,其 ActiveOn 日期为 2015 年 6 月 1 日,因此它应该已激活 - 确实如此。所以我不理解错误或我需要做些什么来防止它。
感谢所有帮助和建议。