设置合同的状态代码和状态代码

时间:2015-12-23 21:01:53

标签: c# dynamics-crm

我正在创建一个包含早期绑定对象的新合约,并尝试将其状态和状态设置为除new / draft之外的其他内容。

我尝试使用状态和状态创建新合同,但状态是只读的。

我尝试创建新合同,保存更改,然后在我的上下文中执行SetStateRequest。这没有用,并且给了我一个错误,说“#状态无效,合同无法取消" (如果我尝试使用活动状态,则相同)。如果我尝试使用SetState函数的所有3次重载来改变状态

,我会得到相同的错误

我尝试创建新合同,而不是保存更改然后更改状态,但是我会收到错误,说无法找到空GuiD的合同。我也试过给它一个特定的Guid,但那也没有用。

我发现这个link说明为了设置取消的合同,我必须将其设置为已开票,但当我尝试将合同设置为发票时,我收到以下消息:结算开始日期/结算结束日期无效,此合约无法设置为发票状态。

我的想法已经用完了,任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

对于Contract实体,大多数状态更改都由内置业务逻辑控制。例如。您无法更改已开票或有效的合约的statuscode部分。合同状态只能遵循严格的预定义流程。

请记住,Draft以外的其他州的合同几乎是只读的,您无法自定义此内置行为。如果您需要对合同实体进行 - 甚至是适度的 - 自定义,请在使用此实体之前三思而后行。在大多数情况下,您最好不要创建自定义实体。

另外值得一提的是,取消合同需要CancelContractRequest条消息。