关于批量更新数据, 我们可以自己写程序来批量更新记录, 也可以通过导入数据文件来进行批量更新.
批量导入数据不仅仅可以更新数据也可以创建数据,但他们之间还是有一些区别的, 今天来说一说在数据导入时的注意事项:
无论是创建还是更新数据, 我们都会导出一个模板, 然后在里面添加数据来创建,或者修改数据来更新, 其中导出的文档里面都会有三列隐藏的列:
- (Do Not Modify) <实体名>
- (Do Not Modify) Row Checksum
- (Do Not Modify) Modified On
如果不解隐藏, 我们看到的第一列会是D列, 如下图:
下面是我解隐藏的:
注意: 上面提到的这三列不能修改更不能删除, 否则当你导入数据的时候就会报下面的错误:
The selected solution import file either does not exist or is invalid. Please select a file which was Exported from this system.
再来说明一下上面提到那三个隐藏的列都是用来干什么的:
其实如果你导入数据时是为了创建的话, 这三列应该都是空的; 但如果你是更新数据, 那这三个隐藏的列里面就会是有数据的
- (Do Not Modify) <实体名>
此条记录的GUID, 只有这个才能知道要更新哪条记录, 如果这列没值那就创建
- (Do Not Modify) Row Checksum
使用它来判断这条记录是否已经被改变, 并且只更新已改变的字段. 如果这条记录的Row Checksum前后的值一样,则会忽略,不会更新
- (Do Not Modify) Modified On
这是这条记录的修改日期。当我们导入时,Dynamics CRM会将这列中的日期与此条记录的修改日期进行比较。如果它们不同,则该条记录的导入将失败。
其实我们思考一下应该会明白这个道理,比如说你导出了一批数据并且在很长时间后才导入,但用户随后对这条记录进行了更改,如果不比较日期,新数据可能会被导入文件中的旧数据所覆盖。