首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么错误“状态无效”?

为什么错误“状态无效”?
EN

Stack Overflow用户
提问于 2015-07-01 17:57:44
回答 1查看 993关注 0票数 1

我们有客户关系管理2011,酒店内。在WCF服务(C#)中,我正在以编程方式创建契约和ContractDetails。创建合同后,我使用以下代码设置其State = 'Invoiced‘:

代码语言:javascript
复制
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`1Microsoft.Xrm.Sdk.OrganizationServiceFault:状态无效,此合同不能设置为发票状态。(故障详细信息等于Microsoft.Xrm.Sdk.OrganizationServiceFault)。

执行这个片段时(今天失败)的合同状态是“草案”。

这份合同有孩子合同的细节,它的ActiveOn日期是6/1/2015,所以它应该被激活--它曾经是。所以我不理解这个错误或者我需要做些什么来防止它。

谢谢你的帮助和建议。

EN

回答 1

Stack Overflow用户

发布于 2015-07-02 11:41:47

首先,这一行代码

代码语言:javascript
复制
Status = new OptionSetValue((int)Xrm.ContractState.Invoiced + 1)

应该是这样的

代码语言:javascript
复制
Status = new OptionSetValue((int)Xrm.ContractStatus.Invoiced)

或者状态原因枚举的名称,这是因为您正在编写1+1,因此它减少了早期绑定的功能。

关于合同,看起来SetStateRequest根据合同的开始日期和结束日期采取不同的行动。如果范围在当前日期内,则请求将合同设置为活动,如果范围超出当前日期,则为合同开具发票。请检查您的合同日期,看看是否是这样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31168452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档