
文档地址:$/051.HR产品部(2014)/10.EASHR个性化私包登记/00EAS与s-HR集成/s-HR与EAS集成部署包对应说明.xlsx
集成文档见附件
shr同步EAS:
```
t_bas_param where FNUMBER ='IntegratedPattern'
T_SYN_Connection 同步EAS数据库地址(优先客户端配置)
T_HR_VOUConnection 同步EAS数据库地址(s-HR网页操作)
```
s-HR端相关表
T_HR_ModifyDataEASRec 同步日志表
EAS端相关表
t_shr_idmapping 映射表
T_HR_SyncDataStatus 变化信息记录表(集成列表)
T_HR_SHRInteModifyRec 同步对象属性变化记录表
T_HR_SHRSyncConfigur shr与eas字段对应信息表
T_HR_SHRRespExcep s-HR osf 异常Response信息记录表
T_HR_OrgMapping 组织id映射
T_HR_SHROrg
注意:
两个服务应用之间只支持一对数据库同步,不能多数据中心对多数据中心,因为EAS环境下配置文件只记录了一个s-HR的地址没有指定数据库,EAS用user账号token登陆s-HR会指向单点登陆配置的数据库,同时EAS配置文件shrIntegradeEasConfig.properties只有一个并且不支持多中心
补录某段时间内的监听数据
```language
INSERT INTO T_HR_ModifyDataEASRec (FID,FOBJECTIDID,FTYPE,FMETHOD,FOPTTIME,FSYNEASSTATE )
SELECT newbosid('68BAE360'), FID ,'orgUnit' ,'update' ,FLASTUPDATETIME,0 FROM t_org_admin where FLASTUPDATETIME > dateAdd(d, -3, GETDATE()) and FID not in ( SELECT FOBJECTIDID FROM T_HR_ModifyDataEASRec where FTYPE = 'orgUnit' and FSYNEASSTATE = 0); -- 补最近三天组织监听数据
INSERT INTO T_HR_ModifyDataEASRec (FID,FOBJECTIDID,FTYPE,FMETHOD,FOPTTIME,FSYNEASSTATE )
SELECT newbosid('68BAE360'), FID ,'position' ,'update' ,FLASTUPDATETIME,0 FROM t_org_position where FLASTUPDATETIME > dateAdd(d, -3, GETDATE()) and FID not in ( SELECT FOBJECTIDID FROM T_HR_ModifyDataEASRec where FTYPE = 'position' and FSYNEASSTATE = 0); -- 补最近三天职位监听数据
INSERT INTO T_HR_ModifyDataEASRec (FID,FOBJECTIDID,FTYPE,FMETHOD,FOPTTIME,FSYNEASSTATE )
SELECT newbosid('68BAE360'), FID ,'person' ,'update' ,FLASTUPDATETIME,0 FROM t_bd_person where FLASTUPDATETIME > dateAdd(d, -3, GETDATE()) and FID not in ( SELECT FOBJECTIDID FROM T_HR_ModifyDataEASRec where FTYPE = 'person' and FSYNEASSTATE = 0); -- 补最近三天员工基础数据变化监听数据
INSERT INTO T_HR_ModifyDataEASRec (FID,FOBJECTIDID,FTYPE,FMETHOD,FOPTTIME,FSYNEASSTATE )
SELECT newbosid('68BAE360'), FPERSONID ,'person' ,'update' ,FLASTUPDATETIME,0 FROM T_HR_EmpOrgRelation where FLASTUPDATETIME > dateAdd(d, -3, GETDATE()) and FPERSONID not in ( SELECT FOBJECTIDID FROM T_HR_ModifyDataEASRec where FTYPE = 'person' and FSYNEASSTATE = 0); -- 补最近三天员工变动记录变化监听数据
```
常见问题
1>检查shrIntegradeEasConfig.properties配置正确;
2>前一步无误后还是同步失败,那就要检查 com.kingdee.eas.hr.base.app.synch.LtpaTokenManager.generate(String canonicalUser, Date tokenCreation, Date tokenExpires, String configFile, String authPattern) 取 secret 配置信息是否正确;
3>如果数据库测试连接成功,实际同步报数据源问题,可能是因为不支持数据库集群,选取其中一个数据库实例即可;
4>EAS端未处理数据(T_HR_SyncDataStatus)由shr监听平台触发OSF-synchSHRDataToEASService处理写入;
5>如果手机号无法更新同步,要修改 T_HR_SHRSyncConfigur 员工配置增加 'ncell': [{'shr': 'cell','eas': 'ncell','desc': '新手机号码'}] 因为是静态变量所以要重启服务;
6>各版本在单点登陆上有所差异DataTool.getHRData;
7>面对s-HR集成取集成端口;
8>如果8611集成报302则打补丁PT163032解决,其他版本302大多是登录问题,s-HR要确认指定默认数据库;
9>如果EAS不出集成菜单,客户端-->系统-->客户化菜单-->分配集成菜单,还不行则检查 t_bas_sysmenuitem 可见性(FVisible)可用性(FEnabled)为1,关联权限项FFunction是否有权限;
10>两边根职位名称和编码必须保持一致才能在初始化同步成功,
```
t_hr_hrinit where FKey = 'SHR_INIT_FINISH' and kvalue = 'true'
```
后再触发初始化同步无效,需修改参数;
11>映射数据在启动时已经读入内存,修改映射关系需要重启EAS才能生效或客户端->同步模式->清理缓存;
12>挂靠组织在 EASIntegratedSHRFacadeControllerBean._syncPersonUpdate 处理 DbUtil.execute(ctx, "UPDATE T_BD_Person SET FGKADMIN = ? WHERE FID = ?", new Object[] { orgId, personInfo.getId().toString() });
13>初始化同步时数据库连接异常可能受到数据中心连接的干扰,shr20及以前用T_SYN_Connection这个给后面支持web配置用T_HR_VOUConnection,但历史问题高版本中T_SYN_Connection它有优先权;
14>两边根组织、根职位名称和编码需要保持一致;
15>t_hr_hrinit where FKey = 'SHR_INIT_FINISH' 标识是否初始化完成,初始化完成后再点初始化无效;
16>验证s-HR是否能正常连接EAS数据库 http://IP:端口/shr/shr/msf/service.do?method=callService&serviceName=getHRInitDataForEasService;网页console下POST查询
```
shr.callService({serviceName:"getSHRDataFromEASService",param:{recordList:JSON.stringify(["00000000-0000-0000-0000-000000000000CCE7AED4","y18AAAAAaYDM567U"])}})
```
;
17>普通用户必须要有 企业建模–>组织架构–>组织单元 权限才能看到集成列表菜单

s-HR集成EAS操作手册.docx
各EAS版本集成私包.rar