Dynamics crm Dynamics CRM:使用特定的GUI创建用户
出于集成目的,Dynamics CRM中的用户需要与我们环境中的其他部分具有相同的GUID(几个基于ASP.NET和SQL Server 2005构建的自定义web应用程序)。但是,当我们尝试创建一个具有特定GUID的新Dynamics用户时,Dynamics会忽略它并创建自己的用户(这种模式使我相信它在内部使用NEWSEQUENTIALID(),就像用户是通过UI创建的一样)。但对于其他类型(例如联系人),Dynamics采用的GUID没有问题 是我做错了什么,还是Dynamics在创建新用户时总是忽略GUIDynamics 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在创建新用户
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:这些同事有什么建议吗?不,很抱歉,我们画了一个空白,您可以根据用户名查询,这个是唯一的;)