电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

金蝶s-HR Cloud s-HR与星空同步.docx

金蝶s-HR Cloud s-HR与星空同步.docx_第1页
1/9
金蝶s-HR Cloud s-HR与星空同步.docx_第2页
2/9
金蝶s-HR Cloud s-HR与星空同步.docx_第3页
3/9
s-HR与云星空同步一.目的帮助开发或技术人员理解s-HR与云星空同步的关键代码逻辑,提高与星空同步提单分析处理效率,重点在与梳理自动监听模式二.版本支持金蝶s-HR(以下简称s-HR)支持V2.0版本、V8.2版本、V8.5版本(以下简称V8.5包括V8.5和V8.5SP1),金蝶云星空(以下简称星空)需要安装金蝶云星空V6.X及以上版本+最新补丁。三.配置监听3.1配置文件配置集群部署的需要每个实例下的这个文件都需要增加修改安装目录\eas\server\profiles\server1\config\listenerconfig.data文件增加以下信息()修改配置文件后需要重启服务器。3.2在85SP1版本后已经支持可视化配置管理员账号登录—》系统设置—》基础服务维护—》单点登录配置四.监听方法并新增任务目前监听的是组织、职位、员工的变化,是方法调用监听,所以可能监听处理速度快与业务数据处理速度,监听jar包为eas\Server\server\lib\server\eas\hr_service.jar监听同步:1.HRModifyServerListener.contextInitialized(ServletContextEventarg0)注册监听方法HRRecordModifyEventListener2.HRRecordModifyEventListener.execute(IServiceContextserviceContext)isEntityOrFacadeInvoke只有entity和facade的方法需要往下监听3.HRRecordModifyEventListener.executeAfter(IServiceContextserviceContext)ModifyStateManager.getInstance(ctx).needUpdate(boType.toString(),operationPK.toString())系统启动时初始化operatePKMap,这里初始化了组织、职位、员工元数据需要监听的方法,只有监听中的方法才继续4.ModifyStateManager.processUpdate()拼装修改数据并添加到updateQueue队列中五.扫描任务并调用OSF新起一个线程轮询队列,拿到变化的id后,去触发同步逻辑1.轮询:DigestThread.scan()stateManager.needUpdateLog()校验是否更新状态,DigestThreadUtil.isSyncPause(ctx)查看T_BAS_HRCloudSyncNum表的是否暂停同步FIsSyncPause状态(1-暂停,0-不停),扫描间隔默认15000也可以通过selectFVALUEfromt_hr_hrinitwhereFKEY='ModifyStateManager_Scan_Interval'配置,在ModifyStateManager.getScanInterval中能找到传值逻辑2.SolidPartFromDB.solidPart(ctx,(ConcurrentHashMap)entry.getValue())处理id3.NoticeObserver.getInstance(ctx).sendNotice(ctx,queryParam)调用同步逻辑,NoticeObserver.NoticeObserver(ctx)初始化需要调用同步逻辑osf其中adviseOutSystemService已写死必须调用,可在表t_bs_customObserver中新增osf。六.OSF处理同步OSF处理jar包为\eas\server\lib\addon\inte_shr2cloud\lib\inte_shr2cloud.jar1.处理同步业务AdviseOutSystemService.process(Contextctx,Mapparam)UtilTool.isNewInteMethod(ctx)查看T_BAS_HRCloudLogin表Fstatus为1则调用云星空的webapi,为0则调用云星空的webservice,目前大多是webapi,而且转移webapi后不可逆向再转回webservice,接下来以webapi为方向2.拼装组织、职位或员工同步数据2.1GetOrgUnitService.getOrgUnitDataForWebAPI拼装组织同步数据,查询SQL为SELECT*fromt_org_adminWHEREfidin('组织ID')ANDfisStartSHR=1ORDERBYflongNumberASC2.2GetPositionService.getPositionDataForWebAPI拼装职位同步数据查询SQL为SELECT*fromt_org_positionpositionLEFTOUTERJOINT_org_adminorgONPOSITION.FADMINORGUNITID=ORG.FIDWHEREposition.fidin('职位ID')ANDorg.fisStartSHR=1ORDERBYorg.flongNumberASC,position.fnumberASC2.3GetPersonService.getPersonDataForWebAPI拼装员工同步数据,getPersonCollForWebAPI查询指定员工数据selectperson.fidid,person.fnumbernumber,person.fname_l2name,person.fgendergender,person.FBirthdaybirthday,person.FCellcell,person.FOfficePhoneofficePhone,person.FEMailemail,person.FIDCardNOidCardNO,person.FPassportNOpassportNO,person.FDeletedStatusdeletedStatus,orgAdmin.fidbizOrgId,orgAdmin.fnumberbizOrgNumber,orgAdmin.fname_l2bizOrgName,orgAdmin.FZipCodebizOrgZipCode,emplabor.FEFFDTbizDate,empType.fuserstatestate,empType.fnumberempTypeNumber,empType.fname_l2empTypeName,orgAdmin.fnumberpersonOfOrgNumber,orgAdmin.fname_l2personOfOrgName,pos.fidpersonOfPosId,pos.fnumberpersonOfPosNumber,pos.fname_l2personOfPosNamefromt_bd_personpersoninnerjoinT_HR_EmpLaborRelationemplaboronemplabor.FPersonId=person.FIDleftjoinT_ORG_Adminorgonemplabor.FCorporateunitID=org.fidinnerjoint_hr_bdemployeetypeemptypeonemplabor.FLaborRelationStateID=emptype.fidinnerjoinT_HR_PersonPositionpponpp.FPersonID=person.fidinnerjoinT_ORG_AdminorgAdminonpp.FPersonDep=orgAdmin.fidinnerjoinT_HR_EmpOrgRelationrelationonrelation.FPersonID=person.fidandrelation.FAssignType=1andrelation.FLEFFDT={ts'2199-12-31'}leftjoinT_ORG_Positionposonrelation.FPositionID=pos.fidwhereorgAdmin.FIsStartSHR=1andperson.fidin('员工ID')查询员工组织和职位信息,查询SQL为selectperson.fidpersonId,relation.fidrelationId,person.fnumbernumber,person.fname_l2name,person.FDeletedStatusdeletedStatus,p.fidpositionId,p.fname_l2positionName,p.fnumberpositionNumber,a.fidorgId,a.fname_l2orgName,a.fnumberorgNumber,a.flongnumberlongNumber,a.FZipCodebizOrgZipCode,relation.fassignTypeassignType,relation.FEFFDTeffectDatefromT_HR_EmpPostExperienceHisrelationinnerjoint_org_adminaona.fid=relation.fadminorgidinnerjoint_bd_personpersononperson.fid=relation.fpersonidinnerjoinT_HR_BDEmployeeTypeempTypeonperson.FEmployeeTypeID=empType.fidinnerjoint_org_positionponp.fid=relation.fpositionidwhererelation.FEFFDT<=to_date('当前时间2020-05-2515:04:43')andrelation.FLEFFDT>=to_date('当前时间2020-05-2515:04:43')andrelation.FIsLatestInAday=1andempType.FUserState='1'andperson.fidin('员工ID')3.InvokeCloudWebAPIService.InvokeSyncData(ctx,syncTimeMillis,resultMap)同步推送数据到云星空同步发送数据和结果接受数据回通过System.out.println打印,搜索Contentsofpostrequest:SyncData可找到日志收到返回数据后处理结果并保存到日志表T_BAS_HRCloudInteLog中七.相关表与金蝶云星空集成相关表:数据表名称数据表说明T_HR_WebServiceConfig集成配置表T_BAS_HRCloudInteLog日志表,记录同步成功或失败情况T_BAS_HRCloudMapping映射表,s-HR与云星空的字典,以s-HR为准FBillType映射数据类型1(组织);2(职位);3(人员);4(员工)T_BAS_HRCloudLogin登陆文件存储所在T_BAS_HRCloudSyncNum是否暂停同步表,FIsSyncPause状态(1-暂停,0-不停)t_hr_hrinit可以设置扫描同步任务时间selectFVALUEfromt_hr_hrinitwhereFKEY='ModifyStateManager_Scan_Interval',不设置则默认15秒的扫描间隔八.同步实现方式总结方式1:s-HR调用金蝶云星空的WebAPI接口实现同步界面的同步操作:1)初始化同步同步全量的组织、职位、员工数据,后调用方式一同步调用OSF接口initSyncCloudService数据变动后监听触发,实现单条数据同步2)数据变动后监听触发,实现单条数据同步。监听:com.kingdee.eas.hr.service.app.listener.HRModifyServerListener监听调用OSF接口adviseOutSystemService实现同步3)日志界面,重新同步方式2:金蝶云星空单点登录s-HR,调用OSF接口实现同步(金蝶云星空发起,点强制同步)金蝶云调用OSF接口getSyncCloudDataService接口取数(取组织、职位、员工数据);已编码为唯一标识;后调用接口OSF接口writeSyncMappingAndLogDataService处理映射表记录和同步日志九.流程图十.组织职位员工数据实时同步二开10.1首先二开一个OSF10.1.1实现接口IHRMsfService监听参数在param里面,person、position、orgUnit键区分人员、职位、组织信息10.1.2注册OSF接口并启用Administrator账号登录,开发平台—》基础配置—》OSF配置—》创建,此创建OSF并启用即算注册成功,创建参数写法参考adviseOutSystemService这个OSF10.2数据库配置,在t_bs_customObserver中增加新增的服务,只要serviceName填写对即可,serviceId在当前数据表唯一10.3在process方法中写上日志打印逻辑,方便后续判断是否调用OSF成功,业务代码也在这编写10.4用Administrator账号登录,系统设置—》基础服务维护—》单点登录配置—》启用单点登录、勾选监听信息配置、选择要同步的数据库、登陆认证器(BaseDB)10.5重启服务,修改下组织、职位或员工数据,看apusic日志中是否有标识日志,如果有则说明监听成功,后续的发送第三方业务自己发挥

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

金蝶s-HR Cloud s-HR与星空同步.docx

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信