【问题标题】:Updating StateCode in Dynamics CRM with web service failes使用 Web 服务更新 Dynamics CRM 中的 StateCode 失败
【发布时间】:2013-04-01 05:52:05
【问题描述】:

我正在尝试通过数据库中产品的 CRM Web 服务将“状态代码”(活动|非活动)更新为活动。

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

它似乎工作正常,我没有收到任何错误并且名称更改了,但它仍然处于非活动状态!

当尝试将“StatUS 代码”也设置为 Active 时,我收到一条错误消息,说当状态为 Inactive 时我无法将状态设置为 Active...但我同时将两者都设置为 Active...hmmmm..不要现在这里有什么问题......

有什么线索吗?

【问题讨论】:

    标签: c# dynamics-crm


    【解决方案1】:

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

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

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

    ProductStatus 的 -1 告诉 CRM 为状态码使用适当的默认状态码值。

    【讨论】:

      【解决方案2】:

      您必须使用SetStateDynamicEntityRequest 来更新记录的状态。您可以使用常规更新消息更新状态码,但前提是您要更新到的代码与您发现的记录当前所处的状态相同。

      【讨论】:

        猜你喜欢
        • 2013-03-02
        • 1970-01-01
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        • 2023-04-03
        • 1970-01-01
        • 2010-11-10
        • 2011-12-12
        相关资源
        最近更新 更多