云之家同步问题排查指引

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

云之家同步问题排查指引

在检查同步问题前,需了解清楚现场同步工具的部署情况。

同步的团队是否只有EAS同步工具唯一的数据源?

该团队是否与云平台注册产品是一个团队?

该团队是否有同步EAS测试环境或者测试帐套的信息?

8.2版本配置云之家环境特别注意:一定要保证云之家团队的数据来源只对应唯一一个EAS,避免多源更新云之家组织数据。因此不推荐使用云平台注册企业默认生成的团队做为同步团队,建议另行注册一个团队作为同步目标。


同步逻辑简述

数据同步是个复杂的数据处理工程,不仅仅是傻瓜式操作,需要实施人员必须明白其中的数据传递逻辑,才能学会解决出现的问题。尤其是本身系统是历史升级,有历史数据包袱的,一定要学会,才能在快速排除问题。

1、组织同步

前提条件:EAS组织必须是行政组织,才能与云之家同步。

新增组织:EAS组织是正常状态。

删除组织:EAS组织是封存状态,且已与云之家组织映射。

映射关系:EAS组织长名称与云之家一致。(若组织未绑定,会导致后续人员、部门负责人等接口出现问题,必须优先解决)

2、人员同步

前提条件:必须是有职位的职员,才能与云之家同步。

新增人员:

Ø  状态为正常、试用、返聘员工(职员表t_bd_personFEmployeeTypeID对应T_HR_BDEmployeeType表中的FinService等于1或者4);

Ø  关联用户的职员:职员未禁用T_BD_Person中职员禁用状态FDELETEDSTATUS =1) 、用户未删除(EAS用户表T_PM_USER中用户删除FIsDelete = 0);

Ø  关联用户的职员:职员未禁用T_BD_Person中职员禁用状态FDELETEDSTATUS =1)。

Ø  手机或者邮箱正常。(不为空,不重复)

Ø  与云之家未绑定。(T_PM_EASXTUSERMAP中FXtId为空)

必须满足以上所有条件才能上传云之家。

映射关系:EAS人员与云之家人员的手机号一致,则建立映射关系。若人员未绑定,会导致后续上级、兼职等接口出现问题,必须优先解决)

删除人员:

前提条件已与云之家绑定(T_PM_EASXTUSERMAP中FXtId不为空

Ø  状态不是正常、试用、返聘员工(职员表t_bd_personFEmployeeTypeID对应T_HR_BDEmployeeType表中的FinService不等于1和4);

Ø  职员禁用T_BD_Person中职员禁用状态FDELETEDSTATUS =2) 

Ø  用户删除(EAS用户表T_PM_USER中用户删除FIsDelete =1)。

满足以上3个条件任意其一,则删除云之家人员。(T_PM_EASXTUSERMAP的同步状态设置为离职,Fstatus=0)

具体数据出错检查,什么类型出错,建议实施人员把对应的数据查询导成excel进行分析,excel名以标题名标注,反馈到支持人员。

检查HR的用工状态是否符合同步规则:

select h.FINSERVICE ,h.*  from T_HR_BDEmployeeType h

需上传用工状态类型必须为1或者4.


组织问题

文件名:EAS组织表

select o.FNAME_L2,o.FISADMINORGUNIT,o.FISSEALUP ,o.FISFREEZE  from T_ORG_ADMIN o where fname_l2  LIKE '%部门名称%' ;

文件名:组织关联中间表

select * from T_PM_EASXTORGMAP  where forglongname  LIKE '%部门名称%' ;

文件名:云之家组织数据

select * from T_XT_ORG  where  forglongname  LIKE '%部门名称%' ;

文件名:同步组织日志

select * from T_XT_SYNCDEPTLOG  where foldorglongname  LIKE '%部门名称%' ;

文件名:人员关联中间表

select * from T_PM_EASXTUSERMAP  where forglongname  LIKE '%部门名称%';

文件名:云之家人员数据

select * from T_XT_USER  where forglongname  LIKE '%部门名称%';

文件名:同步人员日志

select * from T_XT_SYNCPERSONLOG  where foldorgname  LIKE '%部门名称%' ;


人员问题

文件名:EAS职员表

有关联用户的职员:

select h.FNAME_L2 ,h.FINSERVICE ,p.fNAME_L2,p.FDELETEDSTATUS,p.FCELL,p.FEMAIL,u.FIsDelete,u.FFORBIDDEN ,u.FCELL ,u.FEMAIL from  T_BD_PERSON p,T_HR_BDEmployeeType h, T_PM_USER u  where u.FPERSONID=p.fid and p.FEMPLOYEETYPEID =h.fid and p.fname_L2  LIKE '%人员名称%' ;

无关联用户的职员:

select h.FNAME_L2 ,h.FINSERVICE ,p.fNAME_L2,p.FDELETEDSTATUS ,p.FCELL,p.FEMAIL from T_BD_PERSON p,T_HR_BDEmployeeType h  where  p.FEMPLOYEETYPEID =h.fid and p.fname_L2  LIKE '%人员名称%' ;

文件名:人员关联中间表

select * from T_PM_EASXTUSERMAP  where fpersonname  LIKE '%人员名称%';

文件名:云之家人员数据

select * from T_XT_USER  where fpersonname  LIKE '%人员名称%';

文件名:同步人员日志

select * from T_XT_SYNCPERSONLOG  where fpersonname  LIKE '%人员名称%';


若与职位名称变更有关,则还要查询以下

文件名:EAS职位表

Select p.fID ,p.fname_L2 ,pm.FISPRIMARY ,pos.* fromT_ORG_Position pos,T_ORG_PositionMember  pm,T_BD_PERSON p  where  p.fname_L2  LIKE '%人员名称%' and p.fid = pm.FPERSONID  and pm.FPOSITIONID =pos.fID


部门负责人问题

文件名:EAS部门负责人信息

select p.fname_L2,pos.fname_l2,org.fname_L2,org.FDISPLAYNAME_L2 from T_ORG_Position pos,T_ORG_ADMIN org,T_ORG_PositionMember  pm,T_BD_PERSON p where pos.FADMINORGUNITID = org.FID and  p.fid = pm.FPERSONID  and pm.FPOSITIONID =pos.fID and pos.FISRESPPOSITION = 1 and org.FNAME_L2 LIKE '%部门名称%'

文件名:部门负责人关联中间表

select * from T_PM_EASXTORGLEADER where forglongname  LIKE '%部门名称%'

文件名:云之家部门负责人数据

select * from T_XT_ORGLEADER where forglongname  LIKE '%部门名称%';

文件名:同步负责人日志

select * from T_XT_SYNCORGLEADERLOG where forglongname  LIKE '%部门名称%';


兼职问题

文件名:人员职位信息

select p.fname_L2,org.fname_L2,org.FDISPLAYNAME_L2,pos.fname_l2,pm.FISPRIMARY  from T_ORG_Position pos,T_ORG_ADMIN org,T_ORG_PositionMember  pm,T_BD_PERSON p where pos.FADMINORGUNITID = org.FID and  p.fid = pm.FPERSONID  and pm.FPOSITIONID =pos.fID and p.fname_L2  LIKE '%人员名称%'

文件名:兼职关联中间表

select * from T_PM_EASXTPARTMAP where fjobtitle LIKE '%兼职名称%'

文件名:云之家兼职数据

select * from T_XT_PART where fjobtitle LIKE '%兼职名称%'

文件名:同步兼职日志

select * from T_XT_SYNCPARTLOG where fjobtitle LIKE '%兼职名称%'

文件名:云之家人员数据

select * from T_PM_EASXTUSERMAP where fpersonname LIKE '%人员姓名%'

文件名:云之家组织数据

select * from T_XT_ORG where fname LIKE '%组织名称%'


典型案例分析

【典型案例分析】更新组织名称过长报错。

处理方式:
1、安装最新的补丁;

2、查询select * from T_XT_SYNCDEPTLOG where ftype = 3数据,备份更名组织名称同步记录。查询select * from T_XT_ORG数据,备份云之家组织数据。该数据备份导出为Excel。

3、在EAS中,删除组织中间表DELETE FROM T_PM_EASXTORGMAP

4、云之家组织初始化(或者查看备份的更新组织名称的同步记录,在云之家管理中心,更改组织名称或者删除该组织或者查看备份的云之家组织数据,在云之家管理中心,更改组织名称或者删除该组织。

5然后执行全量同步即可

【典型案例分析】组织不支持下划线格式和斜杠格式的组织名称上传,例如“aaa_bbbb、“aaa/bbbb。这种名称,上传时同步工具会截断名称,导致出错。

【典型案例分析】新增组织每次都上传相同的条数,而且组织同步日志一致显示为未绑定。

因为EAS组织名称创建时,多建了一个空格,导致跟云之家的组织名称不一致,无法绑定成功。需要把多出空格的组织名称修改正确。


【典型案例分析】工作圈,同步工具未同步,但是部门人员中无缘无故总是自动多出几个人

部门人员无缘无故多出来,大部分原因是因为注册license的云平台企业默认的工作圈与当前使用的云之家工作圈是一个。云平台该企业下添加的所有产品中的用户都会往这个云之家工作圈同步,例如这个企业下面有EAS、K/3等产品。虽然往云之家同步只在EAS配置了,但是K/3产品因为注册用户的原因也会往云平台同步,导致同步的人员都汇总到了云之家工作圈里。

解决方法:8.2版本配置云之家环境特别注意:一定要保证云之家团队的数据来源只对应唯一一个EAS,避免多源更新云之家组织数据。因此不推荐使用云平台注册企业默认生成的团队做为同步团队,建议另行注册一个团队作为同步目标。

配置了,建议各个产品一定要人员保持一致。不能一个产品离职了,另外一个产品还在。


【典型案例分析】8.2版本EAS,根目录下重复出现下级组织或错乱的组织。删除后,还是经常出现。

原因:8.2版本EAS。因为注册license的云平台企业默认的工作圈与当前使用的云之家工作圈是一个,同上。目前通过EAS往云平台上传的注册,带了短组织名称,导致也更新了云之家的组织结构。

解决办法:

一、 根除的方式:

8.2版本配置云之家环境特别注意:一定要保证云之家团队的数据来源只对应唯一一个EAS,避免多源更新云之家组织数据。因此不推荐使用云平台注册企业默认生成的团队做为同步团队,建议另行注册一个团队作为同步目标。

二、已配置,无法更换工作圈了,更新注册用户同步补丁,不再上传部门:

、打权限补丁PT111141私包文件放到下(后续出标准补丁)[attach]265968[/attach]

3、重启服务器。

4、同步时,一定要注意先执行云之家同步,再执行注册用户同步(包括手动和后台事务)

三、无法更新补丁

1、同步时,一定要注意先执行云之家同步,再执行注册用户同步(包括手动和后台事务)

【典型案例分析】云之家中人员是正常的,EAS中人员已离职,如何通过同步工具删除云之家的数据

1、 新增离职人员到中间表。

insert into T_PM_EASXTUSERMAP(FID,FPersonId,FUserId,FXtId,FPersonName,FCell ,FOrgLongName ,FPosition,FEmail,FUserNumber,FUserName,FForbidden,FIsDelete,FAgentUser,FcreateTime) select  newbosid('F4AF4F04') FID,p.fid FPersonId,u.fid FUserId,null FXtId,LTRIM(RTRIM(p.FName_l2)) FPersonName, case when(u.FID is null) then RTRIM(p.FCell) else RTRIM(u.FCell) end FCell,case when CHARINDEX('_',org.fdisplayname_l2) > 0 then to_char(REPLACE (SUBSTRING(org.fdisplayname_l2,CHARINDEX('_',org.fdisplayname_l2)+1,length(org.fdisplayname_l2)), '_', '\')) else to_char('\')  end FOrgLongName,pos.FName_l2 FPosition,case when(u.FID is null) then RTRIM(p.FEmail) else RTRIM(u.FEmail) end FEmail,u.FNumber FUserNumber,u.FName_l2 FUserName,u.FForbidden,case when(u.FID is null) then (case when(p.FDeletedStatus = 1) then 0 else 1 end) else u.FIsDelete end FIsDelete,u.FAgentUser,now() createtime from t_bd_person p left outer join t_pm_user u on u.fpersonid = p.fid

云之家同步问题排查指引

在检查同步问题前,需了解清楚现场同步工具的部署情况。同步的团队是否只有EAS同步工具唯一的数据源?该团队是否与云平台注册产品是一个团...
点击下载文档
确认删除?