Dynamics crm Dynamics CRM:使用特定的GUI创建用户

Dynamics crm Dynamics CRM:使用特定的GUI创建用户,dynamics-crm,dynamics-crm-4,Dynamics Crm,Dynamics Crm 4,出于集成目的,Dynamics CRM中的用户需要与我们环境中的其他部分具有相同的GUID(几个基于ASP.NET和SQL Server 2005构建的自定义web应用程序)。但是,当我们尝试创建一个具有特定GUID的新Dynamics用户时,Dynamics会忽略它并创建自己的用户(这种模式使我相信它在内部使用NEWSEQUENTIALID(),就像用户是通过UI创建的一样)。但对于其他类型(例如联系人),Dynamics采用的GUID没有问题 是我做错了什么,还是Dynamics在创建新用户

出于集成目的,Dynamics CRM中的用户需要与我们环境中的其他部分具有相同的GUID(几个基于ASP.NET和SQL Server 2005构建的自定义web应用程序)。但是,当我们尝试创建一个具有特定GUID的新Dynamics用户时,Dynamics会忽略它并创建自己的用户(这种模式使我相信它在内部使用NEWSEQUENTIALID(),就像用户是通过UI创建的一样)。但对于其他类型(例如联系人),Dynamics采用的GUID没有问题

是我做错了什么,还是Dynamics在创建新用户时总是忽略GUI

CrmService service = GetService();

systemuser newUser = new systemuser();

Key newUserId = new Key();
newUserId.Value = new Guid("D630FA8D-A32F-4a37-BFEF-CE36CBA29009"); 
  // The GUID I would like Dynamics to use
newUser.systemuserid = newUserId;

Lookup bu = new Lookup();
bu.Value = new Guid("16B10365-0E18-DF11-B839-005056B60DD4"); 
  // The correct business unit ID.  Nothing to see here.
newUser.businessunitid = bu;

newUser.firstname = "John";
newUser.lastname = "Doe";
newUser.domainname = "DOMAIN\\jdoe";
  // Valid AD credentials too.  Names changed to protect the innocent.

Guid userId = service.Create(newUser);
Console.WriteLine("User created with GUID " + userId.ToString());
  // Dynamics creates the user with a completely different GUID. :-(
编辑:


我现在也问了这个问题。

我知道这并不理想,但作为一种解决方法,您可以向systemuser实体添加一个自定义属性,并将您的集成id存储在那里。

在不了解更多解决方案的情况下,我可以告诉您,您不需要像您尝试的那样到处都需要硬编码的QUID。当我到达我目前的客户那里时,他们也在尝试做同样的事情,这是一个严重的问题。
我花了大约一天的时间,用一个简单的查找过程替换了所有使用硬编码QUID的代码,该过程通过您想要的任何键(在您的情况下是用户名)获取实体,然后从中获取实体的id。不要再尝试去做一些你一开始就应该尝试去做的事情

我花了大约一天的时间,用一个简单的查找过程替换了所有使用硬编码QUID的代码,该过程通过任意键(在您的例子中是用户名)获取实体


真有趣。您正在通过“John”和“Doe”字符串搜索John Doe用户。如果我的公司有两个“约翰·多伊”,我该怎么办?

据我所知,你的代码是正确的。明天我会问几个同事。试试Crm论坛。@Chris Jones:这个论坛?:@Chris Jones:这些同事有什么建议吗?不,很抱歉,我们画了一个空白,您可以根据用户名查询,这个是唯一的;)