薪资基础数据表及常见报错问题分析演讲者:何代宝2024年9月4日U8支持服务应用目录薪资常用数据表介绍1常见问题解决方案及思路2U8支持服务应用PART1薪资常用数据表介绍U8支持服务应用PARTU8支持服务应用薪资常用数据表介绍1.1工资类别发放次数表1、设置软件操作数据库操作工资类别管理表对应后台表为:wa_account关键字段:cGZGradeNum工资类别号cGZGradename工资类别名称bHZGrade是否为汇总工资类别bOnlyGZGrade是否为单一工资类别dStart_time启用日期iLastMonth不允许工资变动最后月iLastYear不允许工资变动最后年该表与工资大类表和发放次序表有关联关系关联关系为:wa_account.cgzdlcode对应WA_GZDL.cgzdlcode、wa_account.Cgzgradenum对应wa_fforder.Cgzgradenum工资大类表对应后台表为:WA_GZDL,多次发放的工资大类会出现在该表中关键字段:cGZDLCode工资大类编码cGZDLName工资大类名称该表与发放次序表有关联关系关联关系为:WA_GZDL.cgzdlcode对应wa_fforder.cgzdlcode发放次序表对应后台表为:wa_fforder关键字段:cGZDLCode工资大类编码cGZGradeNum发放次数编码iOrder次序U8支持服务应用薪资常用数据表介绍1.2人员附件信息表1、设置软件操作数据库操作工资人员附加信息表对应后台表为:WA_PsnMsg关键字段:cMsgName附加信息名称iorder信息排序该表中Buseref字段为1的记录与附加信息参照主表有关联关系关联关系为:WA_PsnMsg.inum对应RefMain.reffield附加信息参照主表对应后台表为:RefMain关键字段:RefTable参照表的名字RefField参照列名该表与附加信息参照子表有关联关系关联关系为:RefMain.id对应RefSub.refmainid附加信息参照子表对应后台表为:RefSub关键字段:RefMainID所属参照主IDOrderNum参照排序号RefValue参照内容U8支持服务应用薪资常用数据表介绍1.3工资项目设置表1、设置软件操作数据库操作工资项目设置表对应后台表为:WA_GZtblset,关闭工资类别之后增加的工资项目保存在该表中关键字段:iGZItem_id工资项目标识cSetGZItemName工资项目名称iSetGZItemLenth工资项类型长度iDecimal小数位数iGZNum工资项目排序该表与工资项目顺序设置表有关联关系关联关系为:WA_GZtblset.igzitem_id对应WA_gzitem.igzitem_id工资项目顺序设置表对应后台表为:WA_gzitem,打开工资类别之后参照增加的的工资项目保存在该表中关键字段:cGZGradeNum工资类别号iGZItem_id工资项目标识iOrder工资项目排序该表与工资计算公式设置表有关联关系关联关系为:WA_gzitem.cgzgradenum对应wa_formula.cgzgradenum、WA_gzitem.igzitem_id对应wa_formula.igzitem_id工资计算公式设置表对应后台表为:wa_formula关键字段:cGZGradeNum工资类别号iGZItem_id工资项目标识cGZItemFormula工资表达式iFormulaNum顺序号U8支持服务应用薪资常用数据表介绍1.4部门设置表1、设置软件操作数据库操作工资类别部门设置表对应后台表为:wa_dept,打开工资类别之后在部门设置中勾选上的部门记录保存在该表中该表与部门基本信息表和工资类别管理表有关联关系关键字段:cGZGradeNum工资类别号cDept_Num部门编码关联关系为:wa_dept.cdept_num对应Department.cdeptcode、wa_dept.cgzgradenum对应wa_account.cgzgradenumU8支持服务应用薪资常用数据表介绍1.5人员档案表1、设置软件操作数据库操作工资人员基本信息对应后台表为:WA_psn关键字段:cGZGradeNum工资类别cPsn_Num人员编码cPsn_Name姓名cDept_num部门编号iPsnGrd_id人员类别cAccount帐号该表与人员基本信息表和工资数据表有关联关系关联关系为:WA_psn.cpsn_num对应Hr_hi_person.cpsn_num对应wa_gzdata.cpsn_num增加人员时,wa_psn表中会写入一条记录,同时还会在wa_gzdata表中写入一条当前月份的工资数据记录停发:将wa_gzdata.btfbz字段更新为1(whereimonth=停发期间),月结后,wa_gzdata中会插入一条imonth为下一期间的记录。取消停发:将wa_gzdata.btfbz字段更新为0(whereimonth=取消期间)调出:将wa_psn.ipsnmove字段更新为=调出期间,将wa_gzdata.bdcbz字段更新为1(whereimonth=调出期间),月结后,wa_gzdata中不再插入下一期间此人员的记录。月结后,下一期间人员档案中不显示此人,无法取消调出,但可以在人员档案中,参照hr_hi_person重新增加此人。重新增加此人后,将wa_psn.ipsnmove字段更新为0,wa_gzdata中增加一条本期间记录。Wa_psn.account中原银行帐号为空值。U8支持服务应用薪资常用数据表介绍1.6分摊类型设置表1、设置软件操作数据库操作工资分摊计提名称表对应后台表为:WA_FTName关键字段:cGZGradeNum工资类别号iJT_id计提类型编码cJT_Name计提类型名称iJTorder计提排序号该表与工资分摊详细设置表有关联关系关联关系为:WA_FTName.cGZGradeNum对应WA_GZsumComCfg.cGZGradeNum、WA_FTName.iJT_id对应WA_GZsumComCfg.iJT_id工资分摊详细设置表对应后台表为:WA_GZsumComCfg关键字段:cGZGradeNum工资类别号iJT_id计提类型编码cDepCode部门编码iPsnGrd_id人员类别号iGZItem_id工资项目标识cDebit借方科目编码cCreditSide贷方科目编码U8支持服务应用薪资常用数据表介绍1.7选项设置(1/2)1、设置软件操作数据库操作工资类别管理表对应后台表为:wa_account选项中的参数设置可以修改工资类别个数为单个和多个关键字段:cGZGradeNum工资类别号cGZGradename工资类别名称bHZGrade是否为汇总工资类别bOnlyGZGrade是否为单一工资类别dStart_time启用日期iLastMonth不允许工资变动最后月iLastYear不允许工资变动最后年工资汇率表对应后台表为:WA_Currency当工资类别为外币类别时,可以设置汇率关键字段:cGZGradeNum工资类别号cHLDate月份iFlat汇率税率档案表对应后台表为:WA_SDS_Set选项中的扣税设置可以修改税率,该表保存的是税率的默认标准关键字段:sType税类型yMax_level上限yMin_level下限iSL_id税率等级ySSKCS速算扣除数iSL扣税税率ySSKCS速算扣除数iSL扣税税率U8支持服务应用薪资常用数据表介绍1.7选项设置(2/2)1、设置软件操作数据库操作所得税税率表对应后台表为:WA_SDS_SL选项中的扣税设置可以修改税率,该表保存的是修改后的代扣税税率关键字段:cGZGradeNum工资类别号iSL_id编码级次yMax_level上限yMin_level下限iSL税率ySSKCS速算扣除数period期间代付税税率表对应后台表为:WA_SDS_SLNew选项中的扣税设置可以修改税率,该表保存的是修改后的代付税税率关键字段:cGZGradeNum工资类别号iSL_id编码级次yMax_level上限yMin_level下限iSL税率ySSKCS速算扣除数period期间U8支持服务应用薪资常用数据表介绍2.1薪资业务单2、薪资业务单软件操作数据库操作业务单数据表对应后台表为:hr_bd_voucher薪资业务单表头内容保存在该表中关键字段:cVoucherId单据号cVoucherType单据类型cVoucherCode单据流水该表与补发补扣单表、住宿水电费表有关联关系关联关系为:hr_bd_voucher.Cvoucherid对应hr_hi_InCreaAndRedu.Cvoucherid和hr_hi_WEFee.Cvoucherid补发补扣单对应后台表为:hr_hi_InCreaAndRedu补发补扣单表体明细内容保存在该表中关键字段:cVoucherId单据号cPsn_Num人员编码iMonth月份住宿水电费对应后台表为:hr_hi_WEFee住宿水电费单表体明细内容保存在该表中关键字段:cVoucherId单据号cPsn_Num人员编码iMonth月份U8支持服务应用薪资常用数据表介绍3.1工资变动3、业务处理软件操作数据库操作工资数据表对应后台表为:wa_gzdata工资变动中录入和计算后的数据保存在该表中,每个人员每月份对应一条记录,记录审核后iCheckFlag、dCheckDate、cCheckPerson字段会写入相应记录关键字段:cGZGradeNum工资类别号cPsn_Num人员编码cPsn_Name人员姓名cLkxcode类款项编码cDept_Num部门编码iPsnGrd_id人员类别号iYear工资年份iMonth工资月份iAccMonth会计期间bDCBZ是否调出bTFBZ是否停发iCheckFlag审核标志cCheckPerson审核人该表与工资人员基本信息表有关联关系关联关系为:wa_gzdata.cpsn_num对应wa_psn.cpsn_num工资汇总表对应后台表为:wa_gzhzb工资变动中汇总后的数据保存在该表中该表中部门(cDept_Num)+人员类别(iPsnGrd_id)按月来进行汇总关键字段:cGZGradeNum工资类别号cDept_Num部门编码iPsnGrd_id人员类别号iPsnAmt部门类别人数iYear工资年份iMonth工资月份iAccMonth会计期间U8支持服务应用薪资常用数据表介绍3.2扣缴所得税3、业务处理软件操作数据库操作所得税设置表对应后台表为:WA_SDS_p该表按月保存选项中设置的扣税项目以及扣税基数和附加费用关键字段:cGZGradeNum工资类别号iGZItem_id工资项目标识yOutlay减费用额yOutPluslay减附加费用额period期间个人所得税表对应后台表为:WA_SDS_Ex该表保存每个人员的扣税记录关键字段:iPeriod期间cPsn_Num人员编码cPsn_Name人员名称cGZGradeNum工资类别编码U8支持服务应用薪资常用数据表介绍3.3月末处理(1/3)3、业务处理软件操作数据库操作工资数据表对应后台表为:wa_gzdata月末结账的时候,需要将下月的人员工资数据插入到该表中execsp_executesqlN'INSERTINTOWA_GZData"……如果选择了清零项,软件会更新对应工资项目的值为0UPDATEWA_GZDataSETF_7=0WHEREiyear=2013andcGZGradeNum=N'001'ANDiMonth=2同时更新结账月份之前记录的blastflag字段为0updatewa_gzdatasetblastflag=0whereiyear=2013andcgzgradenum='001'andimonth<=1工资类别管理表对应后台表为:wa_account月末结账的时候,需要更新该表中iLastMonth和iLastYear字段execsp_executesqlN'UPDATE"WA_account"SET"iLastMonth"=@P1,"iLastYear"=@P2WHERE"cGZGradeNum"=@P3AND"iLastMonth"=@P4AND"iLastYear"=@P5'……工资人员基本信息对应后台表为:wa_psn月末结账的时候,将当月做调出的人员在wa_psn表中对应的记录的ipsnmove字段值更新为1updatewa_psnsetipsnmove=1whereiyear=2013andcgzgradenum='001'andcpsn_numin(selectcpsn_numfromwa_Gzdatawherecgzgradenum='001'andbdcbz=1andiyear=2013andimonth=1)U8支持服务应用薪资常用数据表介绍3.3月末处理(2/3)3、业务处理软件操作数据库操作工资汇总表对应后台表为:WA_GZHZB月末结账的时候,需要更新结账月份之前记录的blastflag字段为0updateWA_GZHZBsetblastflag=0whereiyear=2013andcgzgradenum='001'andimonth<=1所得税设置表对应后台表为:WA_SDS_p月末结账的时候,会自动将WA_SDS_p表中下月的记录删除后重新插入deletefromwa_sds_pwhereiyear=2013andcgzgradenum=N'001'andperiod=2insertintowa_sds_p……所得税税率表对应后台表为:wa_sds_sl月末结账的时候,会自动将wa_sds_sl表中下月的记录删除后重新插入deletefromwa_sds_slwhereiyear=2013andcgzgradenum=N'001'andperiod=2insertintowa_sds_sl……U8支持服务应用薪资常用数据表介绍3.3月末处理(3/3)3、业务处理软件操作数据库操作代付税税率表对应后台表为:wa_sds_slNew月末结账的时候,会自动将wa_sds_slNew表中下月的记录删除后重新插入deletefromwa_sds_slNewwhereiyear=2013andcgzgradenum=N'001'andperiod=2insertintowa_sds_slNew……工资项目效验表对应后台表为:WA_GZItemCheck月末结账的时候,需要清空该表中的记录deletefromWA_GZItemCheck所得税汇总临时表对应后台表为:WA_SDS_Sum_temp月末结账的时候,会将人员所得税的汇总记录插入到该表中insertintoWA_SDS_Sum_temp……所得税汇总表对应后台表为:WA_SDS_Sum月末结账的时候,会将所得税汇总临时表的记录插入到该表中insertintoWA_SDS_Sum……产品结帐状态表对应后台表为:GL_mend如果所有工资类别都结完账了,软件会将该表中结账月份所对应记录的bflag_WA字段更新为1UPDATEGL_mendSETbflag_WA=1WHEREiyear=2013andiperiod=1U8支持服务应用薪资常用数据表介绍4.1账表设置(1/2)4、账表软件操作数据库操作工资表名称表对应后台表为:WA_GZBName该表保存的是系统预置的11个工资表的ID和名称,需要注意的是如果修改了报表名称,修改后的名称是保存在rpt_glbdef表中的Title字段关键字段:cGZGradeNum工资类别号iGZBName_id表标识cGZBName表名称bMXBHZB是否明细表该表与工资栏目表项目组成表有关联关系关联关系为:WA_GZBName.iGZBName_id对应WA_GZBItemTitle.iGZBName_id工资栏目表项目组成表对应后台表为:WA_GZBItemTitle修改表选择的栏目以及栏目对应的工资项目设置保存在该表中关键字段:cGZGradeNum工资类别号iGZBName_id表标识cGZItemTitle所选工资项目cExpression表达式iGZItemWidth栏宽iColWidth列宽工资报表显示高度设置表WA_tblRCsetP关键字段:cGZGradeNum工资类别号cUserid用户编号ctblNum表编号ctblName表名称cRHeight高度cTitleRHeight标题高度U8支持服务应用薪资常用数据表介绍4.1账表设置(2/2)4、账表软件操作数据库操作工资报表显示列宽设置表WA_tblRCsetM关键字段:cGZGradeNum工资类别号cUserid用户编号ctblNum表名称cCNum列编号cCWidth宽度工资数据表对应后台表为:Wa_gzdata明细表的数据来源于该表关键字段:cGZGradeNum工资类别号cPsn_Num人员编码cPsn_Name人员姓名cLkxcode类款项编码cDept_Num部门编码iPsnGrd_id人员类别号iYear工资年份iMonth工资月份iAccMonth会计期间bDCBZ是否调出bTFBZ是否停发iCheckFlag审核标志cCheckPerson审核人工资汇总表对应后台表为:Wa_gzhzb汇总表的数据来源于该表关键字段:cGZGradeNum工资类别号cDept_Num部门编码iPsnGrd_id人员类别号iPsnAmt部门类别人数iYear工资年份iMonth工资月份iAccMonth会计期间U8支持服务应用PART2常见问题解决方案及思路U8支持服务应用常见问题解决方案及思路1、打开部门工资汇总表,选择部门后点击确定,软件直接退出,没有任何报错提示U8支持服务应用常见问题解决方案及思路数据库后台跟踪没有提示错误信息,但是执行到如下语句时停止了:SelectiGZItem_IDFromWA_GZtblSetWherecSetGZItemName='‘查询分析器中查询结果如下:U8支持服务应用常见问题解决方案及思路工资表wa_gztblset是工资项目设置表,字段iGZItem_ID是工资项目编码;查询整张表发现工资项目1002对应的工资项目名称为空;工资项目1002是系统工资项目,对应的名称应是“年终奖代扣税”;U8支持服务应用常见问题解决方案及思路通过sql语句,在表wa_gztblset中添加上对应的名称:updatewa_gztblsetsetcSetGZItemName='年终奖代扣税'whereiGZItem_id='1002‘再查询表wa_gztblset对应的1002工资项目名称正常:U8支持服务应用常见问题解决方案及思路重新查询部门工资汇总表可以正常显示U8支持服务应用常见问题解决方案及思路2、增加薪资人员档案时报错:数据存盘失败,请稍后再试!U8支持服务应用常见问题解决方案及思路问题原因:主要是工资数据表wa_gzdata中缺少工资项目字段导致;工资项目字段都存储在wa_gztblset中;首先查看工资项目设置表wa_gztblset:U8支持服务应用常见问题解决方案及思路查看工资数据表wa_gzdata:发现wa_gzdata中缺少工资项目编号为9的项目;在wa_gzdata中增加字段F_9;Altertablewa_gzdataAdd[F_9][numeric](18,2)NULL添加字段后再查询wa_gzdata:U8支持服务应用常见问题解决方案及思路该问题一般都是wa_gzdata和wa_gzhzb中的字段丢失导致,但手工对比wa_gzdata,wa_gzhzb和wa_gztblset两个表效率较低;可以通过如下语句快速检查出wa_gzdata表中缺少的工资项目字段:selectiGZItem_idfromWA_GZtblsetwhereiGZItem_idnotin(selectsubstring(name,3,4)fromsyscolumnswherenamelike'F_%'andid=(selectidfromsysobjectswherename='wa_gzdata'))goU8支持服务应用常见问题解决方案及思路薪资人员档案中再增加人员,可以正常保存U8支持服务应用常见问题解决方案及思路3、工资变动中,当前月份的“总人数”和“当前人数”不同?U8支持服务应用常见问题解决方案及思路该问题主要是工资变动中wa_gzdata人员部门编码和薪资档案中wa_psn人员部门编码不一致导致通过sql语句排查出部门编码不同的人员:select*fromwa_gzdataasainnerjoinwa_psnasbona.cgzgradenum=b.cgzgradenumanda.cpsn_num=b.cpsn_numanda.iYear=b.iYearwherea.iYear='2015'anda.iMonth=1--该日期修改为薪资的最新会计期间anda.bDCBZ=0anda.bTFBZ=0anda.cDept_Num<>b.cDept_numU8支持服务应用常见问题解决方案及思路排查出人员后,查看wa_gzdata、wa_psn部门编码确实不同U8支持服务应用常见问题解决方案及思路使用sql语句将wa_gzdata中的部门编码更新成wa_psn中的部门编码:updateaseta.cDept_Num=b.cDept_numfromwa_gzdataasainnerjoinwa_psnasbona.cgzgradenum=b.cgzgradenumanda.cpsn_num=b.cpsn_numanda.iYear=b.iYearwherea.iYear='2015'anda.iMonth=1--该日期修改为薪资的最新会计期间anda.bDCBZ=0anda.bTFBZ=0anda.cDept_Num<>b.cDept_numgoU8支持服务应用常见问题解决方案及思路再次查询该人员,目前wa_psn与wa_gzdata中的部门编码一致了U8支持服务应用常见问题解决方案及思路再次查看工资变动数据,“总人数”和“当前人数”已经相同了U8支持服务应用常见问题解决方案及思路4、打开薪资类别-部门设置,勾选新的部门报错,运行错误91U8支持服务应用常见问题解决方案及思路这个错误比较常见,在其他操作地方也经常碰到,大概有几类错误1.可能部门信息表Department有错误,如上下级级次,是否末级等2.可能薪资部门表WA_dept有错误,如错误记录,表结构等3.部门表Department和薪资部门表记录不包含等数据错误错误正确U8支持服务应用常见问题解决方案及思路通过数据库跟踪分析,没发现有用的信息,继续看后台数据库跟部门有关的级次表,修改后,再去薪资设置部门就正确了。U8支持服务应用常见问题解决方案及思路updateAccInformationsetcValue='22'wherecSysID=‘aa'andcID='05'andcName='cDepLevel‘通过以上语句修改后,再去勾选部门就不报错了,可以正常勾选了。U8支持服务应用常见问题解决方案及思路5、如何设置薪资项目取本月的天数?对于某些特殊行业,上班不按法定休息日休息,连续上班好多天,完成一项任务后再去连续休息一段时间,如医院,公安,消防,海员等行业人员。他们的核算工资会按工作天数和休息天数与当月总天数比较来计算。而每月有31,30天或者28,29天区分,系统如何准确的取到当月天数,就是解决这个问题的关键。目前工资系统中给出的应用函数并没有一个可以计算当月天数的函数,这需要通过编写相应公式来变通来实现。由于每月天数不同,而且还要区分是否闰年,所以公式的编制就需要想好区分条件。U8支持服务应用常见问题解决方案及思路首先定义三个工资项目,本年,本月,本月天数,其中本年和本月计算时用不上,但可以参看本月天数计算的是否正确。本年、本月有直接的函数,调用计算就行。本年调用year()本月调用month()U8支持服务应用常见问题解决方案及思路分析每月天数:我们知道一年有12个月,其中1,3,5,7,8,10,12这7个月为31天,4,6,9,11这四个月为30天。2月闰年为29天,非闰年28天。至于什么是闰年大家都知道的,就是年份可以被4整除的年份,如2012,2016等。如何判断闰年?看下面这个等式int(year()/4.00)=(year()/4.00)这个等式的意思就是年份除4取整后是否等于年份除4,如相等就是闰年。举例:如年份是2016,2016÷4=504,2016÷4取整后也等于504,所以我们判断它是闰年。如果年份是2017,2017÷4=504.25,2017÷4取整后等于504,二者不相等,它就不是闰年。2月份天数具体公式如下:2月份天数=iff(int(year()/4.00)=(year()/4.00),29,28)U8支持服务应用常见问题解决方案及思路2月的天数确定了,其他的月份就好办了。其他月份天数公式如下:总天数=iff((month()=1ormonth()=3ormonth()=5ormonth()=7ormonth()=8ormonth()=10ormonth()=12),31,30)这个公式意思是说如果月份=1,3,5,7,8,10,12,则总天数为31,否则为30。(2月分在前面公式已排除)。将以上两种情况的公式合并一下,总天数=iff(month()=2,iff(int(year()/4.00)=(year()/4.00),29,28),iff((month()=1ormonth()=3ormonth()=5ormonth()=7ormonth()=8ormonth()=10ormonth()=12),31,30))U8支持服务应用常见问题解决方案及思路修改系统数据测试结果U8支持服务应用常见问题解决方案及思路6、薪资人员银行账号如何录入,在那些地方会用到?1、人事人员档案里银行账号手工录入和使用实施工具导入2、薪资人员档案银行账号手工录入或同步人事人员档案3、工资变动薪资项目银行账号手工录入或设置公式取薪资或人事银行账号4、银行代发银行账号取薪资人员档案银行账号5、工资发放签名表银行账号取工资变动银行账号小结:薪资里的银行账号已人事档案里的为源,可以同步到薪资人员档案,可以取数到工资变动,银行代发已薪资人员档案银行为准,工资发放签名表已工资变动为准。U8支持服务应用U8知识获取及下期预告友户通-移动端友户通-用户社区更多U8+产品知识资料、学习视频搜索获取移动端用户社区扫描二维码:关注用友友户通公众号-进入公众号点击自助服务-用户社区课程回放:用友友户通社区-学习-【U8听我说】PC网址:https://success.yonyou.comU8知识资料获取AI智能客服智能客服-AI小成7*24小时随时进行常见问题咨询U8产品端入口:登录软件门户左侧导航点击[智能客服】移动端入口:智能客服扫描二维码:预约下期U8听我说课程名称:第13期-存货与总账对账专题日期:2024年9月11日(星期三)19:00-20:00讲师:张映辉扫码预约U8支持服务应用U8支持服务应用