使用KingswaySoft SSIS从Dynamics 365提取邮件时遇错,如何获取异常ActivityId?
获取报错邮件记录的ActivityId的方法
方法1:启用组件错误输出捕获
- 在SSIS包里找到KingswaySoft CRM Source组件,右键选择编辑。
- 切换到错误输出选项卡,把所有列的错误和截断处理方式设为重定向行。
- 添加一个平面文件目标或SQL Server目标组件,将CRM Source的错误输出连接到这个目标。
- 运行包后,错误输出里会包含出错记录的所有原始字段(包括ActivityId),同时附带错误代码和描述。
方法2:分批查询缩小范围
- 若暂时无法启用错误输出,可修改CRM Source的查询条件,按ActivityId范围分批提取数据:
- 先查询
ActivityId gt '00000000-0000-0000-0000-000000000000' and ActivityId lt '50000000-0000-0000-0000-000000000000'这类区间的邮件 - 运行后如果报错,继续拆分区间;如果正常就排查下一个区间,直到定位到单个出错记录。
- 先查询
方法3:启用详细日志排查
- 打开SSIS的日志记录功能,勾选KingswaySoft组件的日志事件。
- 运行包时,日志会输出更详细的错误上下文,其中可能包含出错记录的ActivityId。
- 另外,在KingswaySoft组件的高级设置里启用详细日志选项,组件执行时会输出更多调试信息,包括正在处理的记录ID。
额外提示
这个错误一般是Dynamics 365中存在邮件记录的email_activity_parties关联数据损坏(比如关联的参与方记录已删除,但关联关系未清理)。找到对应的ActivityId后,可直接在Dynamics 365中查询该邮件,检查参与方关联是否异常,必要时手动修复或删除损坏的关联记录。
内容的提问来源于stack exchange,提问作者BacHenke
相关产品推荐
相关产品推荐

