SAP HCM 全网最详细介绍薪酬回溯逻辑一(5000字的详细介绍)
简单来说SAP HCM 的回溯是一种自动化的薪资差额计算与调整机制。当员工的历史主数据如基本工资、社保基数发生变更时系统会重新计算受影响的过去期间并将这些期间产生的薪资差额自动汇总到当前薪资期间进行发放或补扣。01 标准教材example1.1一次回溯IP(Input Period)薪资计算输入期间FP(Foreign Period)数据归属期间例如上图的上部分员工的工资是 period 01 in period 01 /5503000元实发5593000元period 01Input PeriodForeign Period。现在是2月发现一月的工资错误从原来的3000调整到3750fp 01 in 02period 01 in period 02 就会把2月重新核算1月的工资5503750减去原来1月核算1月的5503000差异写入到553和551中750-如果是增加的后面需要带负号因为需要把结果结转到fp 02 in 02的552工资项目并取反。但是因为权责发生制的原因历史工资已经发放不能就该发放的结果所以559还是3000.fp 02 in 02period 02 in period 02 2月核算2月的工资550是4500需要把1月的差异带过来把period 01 in period 02的553去反写入到552中然后在算实发的时候5595505525250.总结所以如果只有一次回溯的时候原本的实发工资是不会变化系统只是把差异数据记录下来然后下月核算工资的时候加上差异数据。1.2两次回溯fp 01 in 03现在工资核算到3月发现1月的工资还是错误所以继续修改1月的工资现在的550是4075551最新的550-最早的5504075-30001075。553最新的550-上一次的5504075-3750325.实发不会改变。fp 02 in 03因为550等于5800需要减去fp 02 in 02的5505515800-45001300,552是第一次的差异所以在这里不改变继续保留。实发不会改变fp 03 in 033月的工资是5800因为第一次1月的差异已经在fp 02 in 02中计算所以我们需要计算的是第二次1月的差异2月的差异1300到3月工资所以552fp 01 in 03的553fp 02 in 02的55313003251625.因为3月是当前发生的月份所以原来的差异值就需加入到实发中5595505527425.总结两次回溯与一次回溯有比较大的差异一次回溯只有一个月所以需要把一次553转入到552中两次回溯需要累计两个月的553转入到552。中国回溯标准流程小结441-/A41(CNL7) - RT(X030) - LRT(X006) -/Z41 (CNL6) - (CNL9)/401紫色表示回算流程红色标识当前月流程。规则规则作用期间备注CNMV/401转入/441period 01 in period 02定位搜索CNMVCNL7/441与上月/441的差异写入生成A41period 01 in period 02定位搜索CNL7X030处理类05算出550并把存入RT表A41period 01 in period 02定位搜索X030X043生成差异表DT与差异工资项目551与553period 01 in period 02定位搜索X043X006处理类06的标准规则X006会将回算月份RT表中存储的/A41代表历史流出读取出来并写入上一结果表(LRT - Last Results Table)。LRT存储了上次运行可能是回算或上月的结果。period 02 in period 02LRT与ORT的去区别可以参考下面的链接CNL6读取LRT表中存储的历史流出项/A41(及/A42)转入/Z41(及/Z42)。/Z41代表从历史流入到当期的税基金额。period 02 in period 02定位搜索CNL6CNL9它将IT表中代表流入的/Z41和/Z42的值转移到标准的、用于后续计算的税基薪资项/401和/402中。至此历史流出的税基通过/Z41-/401的路径正式流入并影响当前月的税基计算period 02 in period 02定位搜索CNL902实战演练上面是纸上谈兵想更深理解系统的逻辑还是需要在系统中实际操练一次小学老师经常和我说好记性不如烂笔头换到计算机世界就是需要实际系统操作一次。period 01 in period 01(最原始核算1月工资当前月就是1月)工资结果RT表的数据应发合计是10200.01税是155.55实发金额是10029.26.period 01 in period 02(当前月是2026年2月现在发现员工的工资不是10000是12000所以在2月的时候修改1月的基薪修改后0003信息类型最早主数据更改就会记录员工修改的日期系统根据这个日期去找回溯月份工资核算后系统会自动把这个字段清空这样到3月核算工资的时候系统就不会去追溯。如果不想系统自动填充此字段我们可以在配置表中关系回溯T582A),设置R是开启回溯填充时间设置空不不记录回溯时间如果需要控制到字段级别可以设置成T.RPUTRBK0报表可以批量去更新0003的数据。在这个地方还有一个开关是被忽视的ERA日期之前很多小伙伴会忽略这个按钮其实这个作用就是控制是否允许你修改PA03最早返计核算期间之前的数据如果下下图的提示如果不勾选修改比2025-07-21之前的数据系统是不允许。上述是系统关于回溯的一些配置及概念只有认真理解这些基础概念我们现在开始去理解系统回溯涉及的规则、工资项等核心理念。当我们计算回溯工资的时候系统会同时出现两条数据后面的02/2026是标识当前核算月这个地方大部分我们看到是整月的数据有时候我们能看到是非整月的数据例如2026.01.01-2026.01.20其实这个有几种情况TW的SCHEMA经常看到今天我说下我遇到一个特殊case如果员工0001的工资核算范围2026.01.01-2026.01.20的核算范围是01,2026.01.21-9999.12.31的工资核算范围是ZZ也就是不核算那么系统就是会显示2026.01.01-2026.01.20的数据大家不要觉得是周薪导致的。在这里我要介绍下两个函数:① lebeg其实我们可以简单理解就是for循环如果后面的参数RC说明只有回溯月的时候才会进入这个循环例如我们现在是2月的工资核算系统追溯1月工资核算就会进入这个循环到2月的时候就不会进入这个循环所以RC作用就是只有追溯月才生效当前月不生效。② imprt后面有个参数O就是ort表的数据也可以简单理解读取上月的工资结果这里为什么说是简单的理解是因为考虑到回溯就复杂很多。如果现在是period 01 in period 01那么这个函数读取的其实是2025年12月的工资如果是period 01 in period 02其实他读取的是原来老的2026年01月的工资所以这个是有差异。这个只有自己在系统中操作一次才能更好理解规则:CNMVCN开头的一般都是中国独享的标准规则这个规则的作用是period 01 in period 02期间的时候把401工资项目转入到441工资项目。也就是税基的转移在这里我们介绍SAP标准工资项目的含义/1开头/1XX各类收入、应发总额、统计基数汇总Gross Total他是一个累计工资项目相同的工资项目在每个国家可能有不同的含义例如/103在总过是应税工资泰国是非周期应税工资。/2开头/2XX头平均 / 基数类Average Basis例如HK地区经常需要统计去年每个项目的平均值是多少。/3开头/3XX 社保 / 公积金类Tax Social Insurance/4开头/4xx税相关的工资项目/5开头/5xx实发 / 净额 / 回溯类Net Pay Retro上面可以可以看出数据结转到441工资项目中这是过渡性的工资项目因为回溯会修改税基工资项目所以需要用过渡性工资项目存一些临时结果。规则:CNL7规则cnl7是另外一个结转的工资项目是把441工资项目结转到/A41工子项目可能会有人问为什么需要结转到/A41的工资项目,我们看看这个工资项目的描述:月工资税基流出,既然有流出那么就有流入在period 01 in period 02是流出在period 02 in period 02就是流入系统用/Z41去接这要就是前面一个字母修改后面的编码没变化这要涉及可以减少工资项目的理解A是流出Z谁流入通用性就比较强。401/101-保险,把401的工资项目转到441原来的441是10,184.81period 01 in period 01现在的重新核算的是12,184.80period 01 in period 0212,184.80-10,184.81差异就是1999.99.这里继续介绍一个函数的使用if:if函数和其他语言一样就是一个判断函数多条分支但是如果后面加上参数O估计很多人就蒙圈其实他的作用就是判别是不是当前月核算。例如 period 01 in period 01那么满足条件系统进入if的函数体period 01 in period 02系统不满足条件系统不进入if函数体period 02 in period 02系统满足条件系统进入if函数体所以现在是不是对O能有一点点理解作用就是判别是不是当前核算月。如果是追溯月不进入函数体。规则:X030处理类:是工资项Wage Type的核心属性用于定义工资项在 payroll 运行中如何被计算、汇总、扣除、回溯与过账。它是 SAP 薪酬计算的 “行为指令集”所有标准 / 自定义工资项都必须配置处理类系统按其取值执行对应逻辑。配置处理类主要使用以下几个事务代码V_512W_D用于维护工资项目的视图在这里为每个工资项目指定处理类及其规格。PE03用于配置处理类的规格定义以及维护对应的个人计算规则PCR。X030规则的作用就是把钱累计到550工资项目这里用到一个处理类的概念例如下图的P05只要看到规则是后面的参数第一个字母是P开头的就标识是处理类。规则X042是把ORT的550写入到551中第一次只是暂存因为这个差异并不是真实的差异实际产生差异的是规则X043.规则:X043规则X043才是真正产生差异的地方。我们来分析下这个规则addwt * : 原封不动的保存560工资项目amt?0 判断560是否存在金额addwtd/551:12029.25(-10029.26)1999.99的数据写入到dt表ADDWT/5531999.99写入到553工资项目ADDWT/5511999.99写入到551工资项目NUM BTEX X042规则把num1传入到此变量中最后面我们看看ORT表与rt表的数据对比系统追溯/101(税)、/103(应税)、/401税基的工资项目会改变/403(税)、559(实发)不会改变。02/2026 ( 2026.02.01 - 2026.02.28 )现在来看看核算月的数据如何知道是核算月黄色的日期和后面的日期是一致说明就是核算月。首先我们是通过X006规则把A41的数据转入到LRT表中因为后面的规则需要从LRT表读取数据。规则:CNL6规则CNL6就是读取上面LRT表的数据把a41的数据写入到IT表中主要我们看到CNL6规则里面有个operation是WGTYP/Z##这里就是前面说的适配性的问题后面的数字可以自动转到Z开头的工资项目##表示原来的工资项目的编号。ort是上期的工资结果lrt是回算月流入的数据例如如果显示period 02 in period 02那么lrt就是读取period 01 in period 02的数据。关于operaiotn的如何学习可以参考我原来的文档如何自学operationvivi rsl公众号osinnovationSAP HCM SCHEMA-002 operation自学方法及实战案例AMT BETRGlrt用户ort的区别lrt与ort区别vivi rsl公众号osinnovationSAP HCM ORT表与lrt表的区别规则:CNL9就是需要把增加的钱加入到本期的税基中。因为标准的回溯只能追溯汇总金额实际业务其实很多是需要显示更多的明细而不是一个简单的汇总值如果同时修改多个工资项目核对的时候是比较困难的。所以可以通过这个规则去对比明细差异的工资项。中国还有一个特定的函数能追差异CNRET与处理类65配合使用。401本期400z4112284.801999.9914284.79。本期计税基数:上期18514.2514284.7932799.04最后税的结果是278.54我们看看X030规则数据写入到550工资项目但是这个地方是没有加上差异值的只是核算月的工资。PDT函数就是循环dt表的数据也就是我们的差异值上个月差异迭代过来的数据。56055055212006.261999.9914006.25规则处理后累计的差异值与当月的工资一起累计。最后把这个结果写入到RT表。上述整个回溯的过程已经完成SAP的回溯遵循一个原则就是权责发生制的逻辑核心一句话属于本期的费用不管钱发没发都算本期成本不属于本期的哪怕钱付了也不算本期。薪酬回溯调整Retro本质也是权责发生制哪一期的工资变动费用就要调整回哪一期。/551回溯差额、应计工资、跨期发放都是为了满足业务发生在哪个月成本就进哪个月企业会计准则、上市公司、正规财务核算全部要求用权责发生制。最后我们看看SAP的工资结果最后我们看看工资结果在这里我们可以看下图的第一列有个P与A的标识在 SAP HCM 工资结果Payroll Result中P和A是状态标识Status Indicator用于区分同一核算期For-Period下不同版本的工资结果核心是管理回溯Retro场景下的多版本结果。1. A Current当前有效结果含义最新、当前生效的工资结果是系统默认读取、用于发薪、过账、报表的唯一有效版本。2. P Previous上一版 / 前序结果被新结果替换的前一版有效结果是回溯前的 “旧正确版”。回溯计算时系统不删除旧结果而是将原A改为P保留历史轨迹。用于差额计算新A与旧P对比生成回溯差额/551。审计、追溯历史计算逻辑时使用。系统逻辑A 永远是最新正确版P 是回溯前的上一正确版(回溯一次)O 是更早的历史版(回溯多次)总结因为薪酬核算是个技术活所以想理解回溯的概念其实是对SAP HCM的SCHEMA的一次整体理解所以没有SCHEMA的基础是没办法理解回溯的概念现在我把我学过SCHEMA的文章总结到这方便大家能调阅查看。AMT含义vivi rsl公众号osinnovationSAP HCM SCHEMA-001 AMT*与FILLF功能SAP HCM 公积金超过上限后的计税方案vivi rsl公众号osinnovationSAP HCM 公积金超过上限后的计税方案SAP HCM TW PAYROLL 001 OAI 劳工职业灾害保险vivi rsl公众号osinnovationSAP HCM TW PAYROLL 001 OAI 劳工职业灾害保险SAP HCM 2026新个税解读amp;关于升级事项vivi rsl公众号osinnovationSAP HCM 2026新个税解读关于升级事项SAP HCM 薪酬核算替班解决方案vivi rsl公众号osinnovationSAP HCM 薪酬核算替班解决方案SAP HCM Change payroll area in middle of monthvivi rsl公众号osinnovationSAP HCM Change payroll area in middle of monthSAP HCM 通过泰国PAYROLL学习其他国家的薪酬核算逻辑vivi rsl公众号osinnovationSAP HCM 通过泰国PAYROLL学习其他国家的薪酬核算逻辑SAP HCM 薪酬过账-红字冲销vivi rsl公众号osinnovationSAP HCM 薪酬过账-红字冲销SAP HCM 薪酬核算红色异常日志信息如何快速定位问题vivi rsl公众号osinnovationSAP HCM 薪酬核算红色异常日志信息如何快速定位问题SAP HCM 薪酬过账-忽略成本分配的含义vivi rsl公众号osinnovationSAP HCM 薪酬过账-忽略成本分配的含义SAP HCM 薪酬核算关于成本的C0与C1表的含义vivi rsl公众号osinnovationSAP HCM 薪酬核算关于成本的C0与C1表的含义SAP HCM 分析标准薪酬过账报表的并发逻辑vivi rsl公众号osinnovationSAP HCM 分析标准薪酬过账报表的并发逻辑SAP HCM 薪酬过账报表查询替代PCP0vivi rsl公众号osinnovationSAP HCM 薪酬过账报表查询替代PCP0SAP HCM 薪酬过账表vivi rsl公众号osinnovationSAP HCM 薪酬过账表SAP HCM 资产类科目挂么挂利润中心vivi rsl公众号osinnovationSAP HCM 资产类科目挂么挂利润中心SAP HCM Step-by-step guide to create payroll custom functionvivi rsl公众号osinnovationSAP HCM Step-by-step guide to create payroll custom function