使用Web服务错误更新Dynamics CRM中的StateCode

And*_*ita 2 c# dynamics-crm

我试图通过数据库中的产品上的CRM Web服务将"StatE代码"(Active | Inactive)更新为Active.

...
crmProduct.statecode = new ProductStateInfo() { Value = ProductState.Active };
//crmProduct.statuscode = new Status() { Value = 1 };
crmProduct.name = "...";
service.Update(crmProduct);
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,我没有错误和名称更改,但它仍然无效!

当试图将"StatUS代码"设置为"活动"时,我收到一条错误,指出当状态为"无效"时我无法将状态设置为"活动"...但我同时将两者都设置为"活动"...嗯...现在不是什么意思错了......

有线索吗?

Bla*_*asp 6

保存实体时,设置状态代码无效.您必须使用适当的SetState请求.正如Matt所说,对于动态实体,这是SetStateDynamicEntityRequest.在您的情况下,我假设您正在使用"产品"对象,因此您需要使用SetStateProductRequest类.

var request = new SetStateProductRequest()
{
  EntityId = [GUID of product],
  ProductState = ProductState.Active,
  ProductStatus = -1
}
var response = (SetStateProductResponse)crmService.Execute(request);
Run Code Online (Sandbox Code Playgroud)

看看这个链接:http://msdn.microsoft.com/en-us/library/bb958061.aspx

ProductStatus的-1告诉CRM使用适当的州状态代码的默认状态码值.