NC63功能详解(十三)-使用脚本修正误操作数据案例一、应用描述客户在使用6系列产品过程,出现误操作,将在职人员误操作进行了离职处理,但是在前台界面中离职记录无法删除,如何将误操作数据进行修正?还有一种情况是将前期进行数据导入时应该导入离职人员,但是导入后显示在职,请问如何调整人员状态?二、应用分析以上两种情况只能通过脚本直接在后台库表中操作,修正错误数据。三、解决方案1.在职人员误操作变成离职,如何恢复到原来的状态?--根据人员编码查询出人员主键selectpk_psndocfrombd_psndocwherecode='人员编码';--以下红色部分的值以这条语句查询结果代替。--工作记录deletefromhi_psnjobwherepk_psndoc='人员主键'andrecordnum=0andpk_psnorgin(selectpk_psnorgfromhi_psnorgwherepk_psndoc='人员主键'andlastflag='Y');updatehi_psnjobsetrecordnum=0,lastflag='Y',endflag='N',enddate=nullwherepk_psndoc='人员主键'andrecordnum=1andpk_psnorgin(selectpk_psnorgfromhi_psnorgwherepk_psndoc='人员主键'andlastflag='Y');--组织关系updatehi_psnorgsetendflag='N',lastflag='Y',enddate=nullwherepk_psndoc='人员主键'andlastflag='Y';2.前期导入的离职人员状态错误,如何调整在职状态为离职人员?--每次替换的值就是汉字标识的内容,只能一个人一个人的修改。updatehi_psnorgsetENDFLAG='Y',ENDDATE='离职日期'whereLASTFLAG='Y'ANDpk_psndocin(selectpk_psndocfrombd_psndocwhereCODE='人员编码');updatehi_psnjobsetENDDATE='工作记录结束日期',ENDFLAG='Y'wherepk_psndocin(selectpk_psndocfrombd_psndocwhereCODE='人员编码')andLASTFLAG='Y';--如果不管离职日期和工作记录结束日期,如果根据条件查询出那些在职人员要调整为离职,哪就更简单了,这个条件请顾问根据数据分析下。--可批量处理数据,脚本如下:updatehi_psnorgsetENDFLAG='Y'whereLASTFLAG='Y'ANDpk_psndocin(selectpk_psndocfrombd_psndocwhereCODEin('人员编码1','人员编码2',...));updatehi_psnjobsetENDFLAG='Y'wherepk_psndocin(selectpk_psndocfrombd_psndocwhereCODEin('人员编码1','人员编码2',...))andLASTFLAG='Y';--方案主要目的就是修改组织关系表hi_psnorg中的endflag,hi_psnjob中的endflag.四、注意事项使用脚本直接在后台库表中修正错误数据,存在一定风险,请谨慎操作。执行脚本前务必做好数据备份工作。