【问题标题】:How to change State/Status in CRM 2013 using c#如何使用 c# 更改 CRM 2013 中的状态/状态
【发布时间】:2013-12-17 15:53:04
【问题描述】:

如何使用 C# 在 CRM 2013 中更改实体的状态和/或状态?

CRM 2011 的 SetStateRequest 和早期的 SetStateDynamicEntityRequest 均未被识别。 在线搜索似乎也没有帮助......我错过了命名空间还是什么?

提前致谢

命名空间:

using System;  
using System.Collections;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Net;  
using Microsoft.Xrm.Sdk;  
using Microsoft.Xrm.Sdk.Client;  
using Microsoft.Xrm.Sdk.Query;  
using Microsoft.Xrm.Sdk.Discovery;  
using Microsoft.Xrm.Sdk.Messages;  
using System.ServiceModel;  
using System.ServiceModel.Description;  
using System.Web.Services.Protocols;  

功能:

private void changeUserStatus(Guid userId, IOrganizationService service, int state)  
{  
    SetStateRequest setStateRequest = new SetStateRequest  
    {  
        EntityMoniker = new EntityReference("systemuser", userId),  
        State = new OptionSetValue(state),  
        Status = new OptionSetValue(-1),  
    };  
    service.Execute(setStateRequest);  
}  

重要提示: Visual Studio 2012 无法识别我的 SetStateRequest,因此与上面的示例不同,它没有突出显示,并且在悬停时显示“未找到类型或命名空间”消息并带有红色下划线 p>

编辑:我看到这个问题被否决了,如果我遗漏了什么,我很抱歉,但我真的没有更多信息可以提供,除了我昨天花了 4 个小时在网上寻找这个(包括 stackoverflow ) 无济于事。我可能使用了错误的搜索条件或在错误的地方寻找,但如果是这种情况,至少有人能指出我正确的方向吗?我是所有这一切(stackoverflow 和 crm2013)的初学者,我有点坚持这一点。再次感谢

【问题讨论】:

  • 也许您因为没有发布您的 C# 代码而被否决,其他人如何在没有(至少)代码的情况下帮助您?
  • 你是对的。现在已经完成了!对不起。我只是在寻找一个通用的 CRM2013 解释(包括命名空间),我会从那里得到它。除非我真的不得不这样做,否则我不想用我的代码打扰其他人。

标签: c# crm dynamics-crm-2013


【解决方案1】:

您没有引用 microsoft.crm.sdk.proxy.dll 及其命名空间 Microsoft.Crm.Sdk.Messages

所以代码将是

using Microsoft.Crm.Sdk.Messages;

另外,请确保 StateStatus 的 int 值对实体有效(在您的情况下为 systemuser

【讨论】:

  • 是的!那是为我做的。我回到 dll 的 SDK/bin 文件夹,然后它工作了!我的(错误的)印象是,2013 年微软已经用 Xrm 版本替换了他们所有早期的 Crm 命名空间。虽然我还没有测试它,但现在我有一些工作要做。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多