我们目前有一个单一的业务单位,并且90%的记录由单个Scribe用户拥有。现在我们增加了一个新的业务单元,在40万联系人中,有3万联系人将转到这个新业务单元下。
我在CRM中创建了一个属于这个新业务单元的新用户。下一步是将这些30K联系人的所有者更改为新创建的用户。
如果我说错了请纠正我,但这是我能把这3万联系人转移到新业务部门的唯一方法吗?我遇到的问题是一次更改这些30K联系人的所有者字段。我可以使用预先查找,然后用这种方式更改所有者,但想象一下用这种方式做3万美元?我也可以导出excel表与所有记录,更改所有者并将其导入,但这会产生错误(可能是因为我正在更改一个非常重要的安全相关记录?)
我的最后一个选择是直接在CRM数据库中进行此更改,但这不是我最喜欢的选择。
您还可以使用CRM 2011 SDK编写控制台应用程序
http://www.microsoft.com/en-us/download/details.aspx?id=24004这个应用程序将执行一个retrievmultiple
http://msdn.microsoft.com/en-us/library/gg328149.aspx,因为内存超过5K,所以需要分页,如下所示:
http://msdn.microsoft.com/en-us/library/gg327917.aspx对于每个检索到的记录,您需要使用AssignRequest
消息设置新的所有者
Codeplex上的MSCRMToolkit有一个工作流执行管理器实用程序,允许您在FetchXML记录集上运行随需应变工作流。我自己还没有试过,但我一直把它放在我的后口袋里,以防万一。
我知道这是一个老问题,但我发现改变大量记录的所有者最简单的方法是(仔细)直接编辑数据库。如果你知道你在用SQL做什么,那么它是小菜一碟,否则我会避开。
更新线索的所有者:
USE <DEPLOYMENT>_MSCRM
GO
UPDATE LeadBase
SET OwnerID = <guid of owner here which can be found in the OwnerBase Table>
对于其他实体也是类似的,如Opportunities base for Opportunities等。
*****警告,这将更新LeadBase表中的每条记录*****