您无法将数据导入此记录,因为该记录在导出后已在 Microsoft Dynamics 365 中更新

You cannot import data to this record because the record was updated in Microsoft Dynamics 365 after it was exported

我在本地 Dynamics 365 (8.2) 中遇到 exporting/updating/importing 数据的奇怪问题。我通过将记录导出到 Excel 工作簿,更新特定列中的数据,然后将工作簿导入回 CRM 来批量更新 3000 多条记录。它适用于除其中 14 条记录之外的所有记录,根据导入日志,这是因为 "You cannot import data to this record because the record was updated in Microsoft Dynamics 365 after it was exported." 我查看了这 14 条记录的审计历史,发现它们没有以任何方式被修改整整两个月。奇怪的是,所有 14 条记录的最新审核历史条目的修改日期完全相同 date/time。

我们有一个自定义工作流,每 24 小时运行一次,根据相应生日字段中的值自动更新联系人记录的年龄字段。对于这 14 条记录,它们的生日均为 11 月 3 日,但年份不同。不过,这意味着对它们进行的最后一次修改是在 2019 年 11 月 3 日通过工作流程进行的。但是,我无法理解为什么系统 "thinks" 这应该阻止数据 update/import。

我很乐意提供我可能忘记在此处提及的任何其他信息。谁能帮帮我?

当导出记录与数据库中的记录存在 checksum 差异或 rowversion 差异时,将发生此错误。

尝试对那些受影响的记录进行一些虚拟编辑并再次尝试 export/reimport。

我能想到两个原因 - 日期时间格式混淆了系统 :( 或者 community thread 解释了一个奇怪的场景。

Apparently when importing the file, amending and then saving as a different file type alters the spreadsheet's parameters.

I hence used Internet Explorer since when importing the file, the system asks the user to save as a different format. I added .xlsx at the end to save it as the required format. I amended the file and imported it back to CRM..It worked

虽然我无法发现记录无法更新的原因,但我能够解决该问题。在我分享我为更新记录所做的工作之前,我会尝试列出尽可能多的我记得我尝试过但没有用的东西:

  • 我修改了我用来导出需要更新的记录的高级查找查询 return 只有那些有实际更新的记录。以前,我使用了一个更宽容的查询 returned 大约 30 条左右的记录,尽管我知道其中只有 14 条有新数据要导入。我这样做是因为查询更容易构造,并且在上传工作簿以供导入之前从工作簿中删除 "extra" 记录没什么大不了的。我会为 30 多条记录编写一个 VLOOKUP,并删除 VLOOKUP 在我的数据集中找不到值的列,留下 14 个确实有新数据的列。几次报错后,我开始确保只导出需要更新的14条记录。但是,我在尝试导入时仍然遇到错误。
  • 我尝试格式化导出工作簿中的 (请勿修改)修改时间 列以匹配导入 window 中的日期格式。在导出记录时,Excel 将该列格式化为 m/d/yyyy h:mm,而导入 window 时包含每个成功的详细信息导入失败以 mm/dd/yyyy hh:mm:ss 格式显示此列。我想也许如果我将 Excel 中的格式与导入 window 格式匹配,它可能允许导入记录。它没有。
  • 我尝试使用一些校验和验证工具来确保工作簿中 (请勿修改)校验和 列中的值没有被错误写入或格式无效.虽然我使用的工具实际上并没有给我很多有用的信息,但它确实识别出这些值是校验和哈希值,所以我认为这对我的目的来说已经足够有用了。
  • 我尝试将我的浏览器从新的 Edge 浏览器(使用 Chromium 的浏览器)切换到 IE,正如 Arun 提供的线程中所建议的那样。但是,它并没有解决问题。

Arun 的建议最终奏效了,即对所有记录进行一些任意编辑,然后将它们导出。这对 14 条记录来说是可以的,但我仍然有点烦恼,因为这不是一个真正可行的解决方案,比如说,有一千条没有导入的记录。所有 14 个联系人记录都没有共同的字段,我可以批量编辑,然后再次批量编辑。我最终做的是在联系表上找到一个文本字段,该文本字段对任何记录都没有任何价值,在该字段中放置一些东西,然后依次转到每条记录并删除该值(因为我不不知道在批量编辑时 "blank out" 或清除文本字段的方法。同样,这对于如此少量的记录是可以的,但如果它发生在更大的数字上,我将不得不提出以更简单的方式批量编辑然后批量 "restore" 记录。感谢 Arun 提供有用的见解,并花时间回答。非常感谢!

对我来说,结果是出口商和进口商的 CRM 时区设置不同。不幸的是,管理员似乎无法通过用户界面更改此设置。

每个用户都可以在文件->选项->时区下进行设置。