Dynamics CRM中记录用户的数据导出操作记录

Dynamics CRM中记录用户的数据导出操作记录

CRM中用户导出数据的方式

在Dynamics 365中用户在页面中进行数据导出,通常是在高级查找后进行excel 导出,或者视图子网格页面选择excel导出等

系统执行导出的步骤顺序

系统标准Excel数据导出会执行消息步骤 ExportToExcel 在ExportToExcel中RetrieveMultiple进行查询数据。
一种思路是用插件监听 ExportToExcel 这个消息步骤,不过ExportToExcel 在插件步骤中无法找到这个Message.

第二种实现方式:监听RetrieveMultiple,判断父上下文的MessageName,如下:
Dynamics CRM中记录用户的数据导出操作记录
我们在插件步骤中监听事件为RetrieveMultiple,Primary Entity可以选择指定实体也可以为none监听所有的导出。
Dynamics CRM中记录用户的数据导出操作记录
在获取到用户导出数据的判断标记后,我们可以进行 对用户数据导出的日志记录
1.执行导出的用户信息
2.查询的数据条件(可以记录FetchXml),或者视图信息
3.查询导出的列信息
4.导出的实体对象信息
5.导出时间
以上信息可以通过context中获取Query对象进行进一步解析
Dynamics CRM中记录用户的数据导出操作记录

在获取到以上日志信息后,我们只需要新增一个简单的实体进行保存记录即可。
Dynamics CRM中记录用户的数据导出操作记录
基于以上逻辑理解,我们可以进一步控制系统用户那些人可以进行数据导出,确保业务数据的泄露风险。
在context中获取用户id后可以判断对应安全角色等等不同维度来判断是否可以进行导出,如果不满足条件则抛出异常信息,则会停止前端用户的数据导出操作。
Dynamics CRM中记录用户的数据导出操作记录
这样就可以控制用户的数据导出权限,自定义逻辑细化到不同实体导出权限明细。同事记录导出日志。