文本描述了两个云之家同步人员信息到数据库时的错误及其解决方法。错误一:数据超长导致截断,可能是属性值超出表字段定义长度,需检查并调整字段长度或修正数据源。错误二:日期范围外错误,生日、入职日期等字段值需在1753.1.1至9999.12.31内,可能因数据未维护(为空)引起,需打补丁修复。
问题描述:
错误一:
Sql222 execute exception : insert into t_xt_user(FID,FPersonName,FCell,FOrgLongName,FPosition,FEmail,FStatus,FPhotoUrl,FPhones,FIsHidePhone,FGender,fweights,fpersonnumber,FBirthday,FHireDate) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) Caused exception message is: 将截断字符串或二进制数据。
错误二:
云之家同步人员信息报错,报错信息提示:Sql222 execute exception : insert into t_xt_user(FID,FPersonName,FCell,FOrgLongName,FPosition,FEmail,FStatus,FPhotoUrl,FPhones,FIsHidePhone,FGender,fweights,fpersonnumber,FBirthday,FHireDate) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) Caused exception message is: Only dates between January 1, 1753 and December 31, 9999 are accepted.
Only dates between January 1, 1753 and December 31, 9999 are accepted
分析解答:
错误一,是因为云之家人员的某个属性值的长度超出了中间表t_xt_user表中定义的字段长度。
1)一般可以这样排查:在云之家管理中心将云之家人员导出到excel中,检查一下excel中对应表t_xt_user的列,哪些超出了限制,例如最近遇到一家客户,检查发现某员工的职位的长度是82,超出了t_xt_user的fpotision的长度80。可以通过脚本将t_xt_user表的fposition的长度改大:
ALTER TABLE t_xt_user Alter column FPosition NVARCHAR(90);
2)通过1)的方式,也不一定能找出问题数据来;云之家导出excel的时候可能是对数据做了一些修复,例如近期遇到一家客户反馈这个问题,通过excel未能找出问题数据来,后来客户自己发现智能审批的流程某员工的职位和姓名有乱码(ps:在云之家导出的excel人员中该员工的姓名和职位都没有乱码),个人卡片如下:
到云之家管理中将该人员的数据维护正确后,就可以正常同步了。
3)另外,t_xt_user表有个fphotourl字段,用以存储云之家人也的头像url信息(ps:同步工具不支持同步头像),有一家客户就是因为人员头像的url超出了该字段fphotourl的最大长度80,导致同步的时候报错了。云之家人员导出到excel的时候并不会导出头像信息,该问题最终是通过私包打印日志,将从云之家拉取下来的人员信息都输出到日志中才定位出问题的。
错误二,是因为云之家人员的生日、入职日期等日期字段的值不在这个范围内:1753.1.1~9999.12.31。分析应该是云之家人员的生日、入职日期等字段的值没有维护(为空)了导致的,该问题已有补丁修复:
EAS 8.5版本:打最新同步工具补丁就可以,例如PT167129(发布日期:2022-07-29)
EAS 8.6.1版本:打最新同步工具补丁就可以,例如PT168321(发布日期:2022-12-09)
推荐阅读