1、前言:
系统接收薪酬/社保/定调薪档案有3种方式。
第一种是手动在发薪业务组织中接收。
第二种是在智能规则禁用或者没有配置智能规则的时候,参数设置中自动接收档案的参数是”是”的情况下自动接收,自动接收档案的线程一分钟执行一次,即一分钟接收一次档案。
第三种是通过在智能规则对应分类的卡片中配置好数据, 再执行智能规则接收档案。
备注:参数与智能规则互斥,智能规则启用情况下,对应的业务组织的档案参数不接,只能智能规则接收
主要区别:
1)参数接档案线程一分钟执行一次,智能规则一天自动执行一次,使用智能规则接档案会存在实时性问题
2)参数接档案只能接内部员工档案,且变动类型是流入或者其他类型的,智能规则可配置接收代管,可配置所有变动类型
2、使用参数的方式自动接收档案
2.1 首先确认参数已经启动
2.2 确保智能规则禁用或者没设置
2.3 确保变动员工的变动类型是【流入&其他&空】
变动类型可以到:系统设置-->员工基础数据-->变动类型 查看是否是【流入&其他】类型
判断依据:(变动类型编码是 01 或者03 开头)即上级是【流入&其他】
3、如果步骤2都没问题还是没有接受档案
常见原因:1、参数线程执行异常
2、 员工变动数据是否存在问题:组织或者职位为空
3.1参数线程执行异常
3.1.1 判断参数线程是否在执行
SELECT * FROM T_HR_BizManageAccLog order by FBEGINTIME desc 到查询分析器执行
如果描述中” SHRBizDataComfirmMessageTask”任务的结束日期为空,或者没有描述为” SHRBizDataComfirmMessageTask”的记录,或者 结束日期离当前系统时间相差较大, 可以确定为参数线程执行异常
3.1.2造成参数线程执行异常原因及解决方案
3.1.2.1 用户迁移过服务, 从一台服务器上迁移到另一台服务器, 并且在T_HR_hrinit表中指定了定时任务执行的IP, 如果T_HR_hrinit表中指定的IP没有更新成新服务器ip,那定时任务不会正常执行.
SELECT * FROM T_HR_hrinit where Fkey = 'serverIP' ,查询定时任务是否指定了ip, 能查询出来数据表示指定了ip
解决方案: 如果指定过ip, 那修改ip为当前服务器的ip并重启服务.
3.1.2.2 偶现,停电或者停服,定时任务没有执行完,没有结束时间,重启服务后定时任务执行时判断有结束日期为空的任务,会认为是前一个定时任务没有执行完, 所以不会再执行
解决方案: 删除T_HR_BizManageAccLog表中结束日期为空的记录,重启服务.
3.2参数线程执行正常,数据问题导致
3.2.1 判断人事变动确认消息数据是否存在未消费
到查询分析器执行下面sql ,如果存在数据,可判定存在某些员工数据问题导致档案接收不了
---查询发薪档案是否存在未接收
SELECT TOP 500 FID FROM T_HR_PersonBURelaConfirm temp1 WHERE FDealState=0 AND FBizManageTypeID='UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=' AND FIsAlreadyDeal = 0 and FBizDefineType NOT IN (11,4,6,8) and FAffairActionOperate NOT IN (20,70) and FDefaultHrOrgUnitID not in (select FHrOrgUnitID from t_hr_scmpintelrule where FSTATE =1 ) and FNewEmpOrgRelationID IN (SELECT FID FROM T_HR_EmpOrgRelation WHERE FAssignType = 1) and (FAffairActionReasonID IN (SELECT FID FROM T_HR_AffairActionReason WHERE FLONGNUMBER LIKE '03%' OR FLONGNUMBER LIKE '01%') OR FAffairActionReasonID IS NULL)
|
---查询定调薪档案是否存在未接收
SELECT TOP 500 FID FROM T_HR_PersonBURelaConfirm temp1 WHERE FDealState=0 AND FBizManageTypeID='cEzQ1pHpEE+h9QzcFAj//2WJ1dE=' AND FIsAlreadyDeal = 0 and FBizDefineType NOT IN (11,4,6,8) and FAffairActionOperate NOT IN (20,70) and FDefaultHrOrgUnitID not in (select FHrOrgUnitID from t_hr_scmpintelrule where FSTATE =1 ) and FNewEmpOrgRelationID IN (SELECT FID FROM T_HR_EmpOrgRelation WHERE FAssignType = 1) and (FAffairActionReasonID IN (SELECT FID FROM T_HR_AffairActionReason WHERE FLONGNUMBER LIKE '03%' OR FLONGNUMBER LIKE '01%') OR FAffairActionReasonID IS NULL)
|
---查询社保档案是否存在未接收
SELECT TOP 500 FID FROM T_HR_PersonBURelaConfirm temp1 WHERE FDealState=0 AND FBizManageTypeID='eCE4/SnC20yjAOZ5CU5iymWJ1dE=' AND FIsAlreadyDeal = 0 and FBizDefineType NOT IN (11,4,6,8) and FAffairActionOperate NOT IN (20,70) and FDefaultHrOrgUnitID not in (select FHrOrgUnitID from t_hr_scmpintelrule where FSTATE =1 ) and FNewEmpOrgRelationID IN (SELECT FID FROM T_HR_EmpOrgRelation WHERE FAssignType = 1) and (FAffairActionReasonID IN (SELECT FID FROM T_HR_AffairActionReason WHERE FLONGNUMBER LIKE '03%' OR FLONGNUMBER LIKE '01%') OR FAffairActionReasonID IS NULL)
|
3.2.1.1问题原因&解决方案1:
检查员工变动数据是否存在问题:组织或者职位为空,导致线程接档案程序中断
原因:组织或者职位为空
SELECT FID,FPOSITIONID ,FADMINORGID ,FPERSONID ,FEFFDT FROM T_HR_EmpOrgRelation where FID in (SELECT distinct FNEWEMPORGRELATIONID FROM T_HR_PersonBURelaConfirm where fdealstate=0 and FBizManageTypeID in ('UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=','eCE4/SnC20yjAOZ5CU5iymWJ1dE=','cEzQ1pHpEE+h9QzcFAj//2WJ1dE=')) and ( FPOSITIONID is null or FADMINORGID is null ) |
解决方案:
备份数据:
select * into t_hr_xxxbak from T_HR_PersonBURelaConfirm where FBizManageTypeID in ('UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=','eCE4/SnC20yjAOZ5CU5iymWJ1dE=','cEzQ1pHpEE+h9QzcFAj//2WJ1dE=') and FNewEmpOrgRelationID in (SELECT FID FROM T_HR_EmpOrgRelation where FID in (SELECT distinct FNEWEMPORGRELATIONID FROM T_HR_PersonBURelaConfirm where fdealstate=0 and FBizManageTypeID in ('UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=','eCE4/SnC20yjAOZ5CU5iymWJ1dE=','cEzQ1pHpEE+h9QzcFAj//2WJ1dE=')) and ( FPOSITIONID is null or FADMINORGID is null )) |
更新有问题员工数据为已处理
update T_HR_PersonBURelaConfirm set FDealState = 1 where FBizManageTypeID in ('UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=','eCE4/SnC20yjAOZ5CU5iymWJ1dE=','cEzQ1pHpEE+h9QzcFAj//2WJ1dE=') and FNewEmpOrgRelationID in (SELECT FID FROM T_HR_EmpOrgRelation where FID in (SELECT distinct FNEWEMPORGRELATIONID FROM T_HR_PersonBURelaConfirm where fdealstate=0 and FBizManageTypeID in ('UEVgqLoZwEWW4Kq+2LWYL2WJ1dE=','eCE4/SnC20yjAOZ5CU5iymWJ1dE=','cEzQ1pHpEE+h9QzcFAj//2WJ1dE=')) and ( FPOSITIONID is null or FADMINORGID is null )) |