为什么我在添加可选默认值时收到错误消息:"No modifications to the 'SYSTEM' or 'INTEGRATION' user are permitted."?

Why do I get the Error Message: "No modifications to the 'SYSTEM' or 'INTEGRATION' user are permitted.", when I add an Optional default Value?

我正在将一些数据库从 SSMS 迁移到 CRM Online。问题是,SSMS 数据库中有系统用户,在 CRM Online 中被删除,或者更糟的是系统用户有一个新的 GUID。在这种情况下,我试图寻找相似之处。我发现,来自两个系统的系统用户在“internalemailaddress”字段中具有相同的值。所以我在 Dynamics CRM Destination 中使用了它。并为“可选默认值”添加了一个值。

然后出现了这个错误代码: CRM 服务调用返回错误:不允许修改 'SYSTEM' 或 'INTEGRATION' 用户。

在另一个站点上,我可以使用全名,我使用了“可选默认值”。

这给了我这个错误代码: CRM 服务调用返回错误:系统用户 ID = 11111-111-AAAA-BBBB-123456789 不存在

CRM 服务调用返回错误:发生意外错误。

当我没有在“可选默认值”中写入任何内容时,我收到此错误消息:KingswaySoft.IntegrationToolkit.DynamicsCrm.LookupFailureException:'managerid' 字段的文本查找失败,实体 'systemuser' 执行不包含 'fullname' 字段值为“”的记录(Microsoft Dynamics 365 的 SSIS 集成工具包,v11.1.0.7311 - DtsDebugHost,v15.0.2000.93)

有人知道问题和解决方案吗? 我将不胜感激。

我的第一个错误是,我试图在“internalEmailAddress”中提供 GUID。为了解决它,我做了一个 LEFT JOIN,在那里我得到了所有 Territory 和他们的 SystemUsers。 我的 SQL 查询:

SELECT Territory.*, ModifiedBy.InternalEMailAddress as M_EMail,
CreatedBy.InternalEMailAddress as C_EMail, ManagerId.InternalEMailAddress as Manager_Email
FROM TerritoryBase as Territory
LEFT JOIN SystemUser as ModifiedBy
ON Territory.ManagerId = ModifiedBy.SystemUserId
LEFT JOIN SystemUser as CreatedBy
ON Territory.CreatedBy = CreatedBy.SystemUserId
LEFT JOIN SystemUser as ManagerId
ON Territory.ManagerId = ManagerId.SystemUserId

然后在目标中我分配了如下列:

Source             Destination
C_Email            CreatedBy
M_Email            ModifiedBy
Manager_Email      ManagerId

文本查找编辑器是这样的: InternalEmailAddress(E-Mail from SystemUser)

这解决了问题,但我仍然遇到此错误: CRM 服务调用返回错误:不允许修改 'SYSTEM' 或 'INTEGRATION' 用户。

此错误代码的问题是,我在区域中的“ManagerId”字段中有多个 SystemUser,这在在线 CRM 中不存在。由于我输入了“默认选项值”,所有缺少的 SystemUser 都分配给了 1 个 SystemUser。在 CRM 中,您不能将 1 个 SystemUser 分配给更多 Territory 的 ManagerId 字段。因此,如果用户不存在,最终结果是不填写该字段。

但是如果您需要将 SystemUser 分配给 ManagerId 字段,那么您应该使用“派生列”手动分配 SystemUser。