ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SAP RRB资源相关开票全解析:从DIP参数文件到DP90/DP91落地

SAP RRB资源相关开票全解析:从DIP参数文件到DP90/DP91落地 RRBResource-Related Billing资源相关开票在SAP SD模块里属于典型的小众但难啃的部分。很多做SD的同事常规销售订单开票闭着眼都会一碰到RRB就懵DIP参数文件是干什么的DP90和DP91到底怎么用成本对象从哪里来为什么服务工时确认了一堆却开不出发票。我陆续在几个服务型项目上摸过这类需求今天就把这条链路从DIP参数文件到DP90/DP91开票的完整路径拆一遍适合正在做服务类开票项目的SD顾问也适合支持团队遇到RRB问题时拿来对照排查。这篇内容我尽量按实际项目里的处理顺序来讲不堆术语也不跳过关键细节。你能看到每个环节之间是怎么衔接的也能直接拿去做配置和测试。1. 先把RRB的业务场景想清楚连需求都不理解配置就是空谈1.1 RRB解决的不是“开票”而是“按实际成本耗用开票”在标准SD流程里开票依据是销售订单上的条件价格一个行项目一个价格录销售订单时基本就把金额锁定了。RRB完全不同它的开票依据是成本对象上的实际耗用比如服务人员的工时、消耗的备件、报销的差旅费。这类业务常见于设备运维、工程服务、咨询项目、售后维修特点是客户不按固定合同价结算而是按“实际做了多少”来付费。举个例子一家做生产设备运维的公司和客户签的是年度框架协议每个月按实际发生的人天和备件结算。这个月维护人员去现场干了30小时换了两个密封件报销了一次打车费月底开票金额就是工时单价乘以30小时再加材料成本和差旅费最后按合同约定加一定利润率。这种场景如果用标准销售订单开票要么每个月建一堆明细行要么月初先把整年数量录进去既不准也难维护。RRB把“开票”和“成本发生”挂上了钩。只要成本对象上的工时、材料、费用是真实过账的RRB就能按规则把这些数据捞出来汇总成一张开票清单再转成正式发票。这就是RRB在整个SAP体系里的定位一种以消耗驱动、以成本对象为核心的资源相关开票方式。1.2 RRB完整链路服务确认 - DIP汇总 - DP90/DP91 - VF01RRB完整跑起来大概是这么一条链第一步业务执行阶段所有实际消耗要过账到同一个成本对象上。工时通过工时确认、服务条目确认或者CATS批量导入材料消耗通过发货过账费用通过费用报销或者手工过账全部汇聚到内部订单、WBS元素这类成本对象上。第二步DIP参数文件按事先定好的规则去成本对象上抓取这些数据做筛选、分类和汇总。DIP参数文件决定哪些数据能进开票清单哪些不能按什么维度分组用什么定价过程算钱。第三步事务代码DP90生成开票到期清单。DP90的作用可以理解成跑一次“可开票数据体检”把符合条件的数据按行显示出来每行代表一个成本对象或一组开票明细。DP91用来核查和调整这些行比如改数量、改金额、删除错误行。第四步从DP90/DP91生成正式发票的路径是VF01或者VF04。DP90/DP91生成的Billing Due List在VV31或者VF04里处理VBRK表里生成销售发票会计凭证同步产生。这里有个很容易混淆的点DP90/DP91生成的不是最终发票只是一张“候选清单”。很多人跑到这里发现没有发票号码以为没生成其实是因为还没有执行VF04来处理清单。1.3 为什么标准销售订单开票替代不了RRB可能有人会问既然最终都是走VF01开票为什么不能直接建销售订单答案是三个字定不了。标准销售订单开票的前提是已知品项、单价、数量。而RRB场景里单价可以约好数量却是动态的取决于每个月实际发生了多少工时。这倒还能忍受更麻烦的是成本对象可能是跨期间、跨订单的。一个项目从启动到验收持续半年客户按里程碑分三次付款每次付款金额取决于这几个月累计发生的成本。标准订单完全没法动态反映这种变化。另外RRB里可以对已经发生但未确认的数据做处理。比如本月有员工还没有提交工时或者材料费还没过账可以先不放进这期开票清单等下期再补。这在服务型业务里非常重要发票开给客户之前财务和业务总要对一遍“数字准不准”。DIP参数文件和DP91提供了调整空间这是标准销售订单流程给不了的。2. DIP参数文件RRB链路的“筛子、标签机和计算器”2.1 DIP参数文件到底是什么为什么它决定RRB成败DIP参数文件全称是Dynamic Item Processor Profile动态项目处理器参数文件。名字听着抽象作用其实很直白决定哪些成本能被选中选中的成本怎么分类分类完之后用什么价格算钱。我习惯把它理解成三合一工具筛子、标签机、计算器。筛子是指DIP参数文件规定数据来源和筛选条件。比如只选实际成本不选计划成本只选特定成本要素范围内的数据或者只处理某类成本对象。标签机是指捞出来的数据要归类比如按“劳务”“材料”“费用”分成不同的行项目类别将来开票时客户能看着发票知道钱花在哪。计算器是指DIP参数文件里指定了定价过程系统会把成本行和加成行放在一起算出一个最终开票金额。正因为它管这么多DIP参数文件一旦配错后面DP90和DP91的结果一定跟着错。最常见的场景是清单为空多半就是DIP参数文件里的选择条件把数据全过滤掉了清单有数据但金额不对可能是行项目分类漏了某类成本或者定价过程没有把对应成本行纳入计算。2.2 配置DIP参数文件的几个核心决策点DIP参数文件在后台的维护路径是SPRO - 销售与分销 - 开票 - 资源相关开票 - DIP参数文件。命名上建议用统一前缀带含义比如ZRRB_OPS代表运营服务类ZRRB_CS代表售后类后面方便维护和排查。配置过程中有几个核心决策点要特别留意。第一计划/实际标识。这是先选分清计划成本和实际成本的开关。RRB最常用的是实际成本因为开票基于真实消耗。但在项目早期预算确认时可能还需要用计划成本做预开票这时候就得单独配置一套允许选计划成本的DIP参数文件。第二成本对象类型。一般允许选成本对象类别比如内部订单、WBS元素。这决定了DP90选择屏幕上你能输入什么。建议一个DIP参数文件只绑定一种成本对象类型减少数据串扰。第三行项目分类规则。DIP参数文件里通过字段目录规则把原始CO行项目按“劳务”“材料”“费用”等类别归类。每个类别最终映射到一张SD开票的行项目类别。这个归类很关键关系到发票上打印出来的行项目是不是客户能理解的。第四定价过程。DIP参数文件必须绑定一个定价过程这个过程里除了成本行还要有加成行。成本行把CO侧过来的成本金额“搬”进发票加成行算出利润或管理费。如果这几点没想清楚直接抄标准配置很容易挖坑。比如标准里的DIP参数文件可能带了很多不需要的字段分组实际跑出来的清单会碎成很多行一个成本对象开出十几张发票客户那边对账对到崩溃。2.3 DIP参数文件怎么和销售订单、服务订单联动DIP参数文件配好之后还得告诉系统“在哪个业务场景里用它”。它必须被分配到行项目类别或者订单类型上否则DP90执行时因为没有可用的DIP参数文件直接空跑一趟。具体分配位置通常在销售凭证类型或者行项目类别的配置里跟定价过程类似在行项目类别维护屏幕有一个字段专门指定DIP参数文件。也有一些项目上是在服务订单类型里维护的取决于业务用的是SD纯订单还是服务模块的服务订单。不管放哪里原则都是一个DIP参数文件对应一个业务场景。有个实操经验值得分享改动DIP参数文件之后建议用DP91重新做一次结果比对。因为DIP参数文件是动态读取的改了配置以后不会自动重新处理旧清单需要手动重新跑DP90或者刷新DP91里的清单行否则屏幕上看到的还是老结果很容易误判成没改生效。2.4 定价与加成RRB的金额到底怎么算出来的RRB开票金额看起来像是自动出来的其实底层也是走定价过程。成本数据从CO侧过来之后在DIP参数文件指定的定价过程里形成若干“成本行”然后系统再按事先配好的条件类型在成本行的基础上算加成。比如成本行显示成本金额1000元加成条件类型设置成在成本上增加10%最终开票金额就是1100元。如果项目上还涉及价外税也会在定价过程里按国家设置自动算出税额。整个定价逻辑其实和标准订单开票一脉相承只是价格来源不是销售订单的条件而是CO侧的实际成本行。配置加成的时候要注意条件公式的基准值。常见的错误是加成条件使用了数量条件结果金额变成数量乘以单价再加成导致总额翻倍。RRB的加成条件一般建议基于“成本小计”这个条件类型的金额来计算也就是用公式让加成额等于成本小计乘以一个比例而不是重新定义单价。3. 开票前的后台配置与主数据把前置条件一次配齐3.1 开票类型、复制控制和科目确定RRB最终也是走销售和分销开票所以该有的几件套一个都不能少。第一开票类型。需要定义一种或几种专门给RRB用的开票类型比如F5是标准服务发票RRB可以复制标准类型改一套出来。开票类型后面要挂在销售凭证类型对应的复制控制里RRB发票才能被创建。第二开票复制控制。控制从销售订单复制到开票凭证的规则这里要关注的是RRB场景里部分开票和最终开批的设置。因为RRB是按期间多次开票的复制控制里通常允许部分开票不能让系统自动认为开了一次发票就把订单全清了。第三收入科目确定。RRB开票的科目归集经常比普通销售订单复杂。服务收入、材料收入、费用加成可能走不同科目这些通过发票行项目类别和科目确定表配置。这个最好和FICO顾问一起过一遍RRB的科目确定和CO成本要素的映射如果对不上会出现财务月结时收入和对账单对不平的情况。第四税务和客户主数据。RRB开票照样受客户主数据的销项税设置影响客户主数据的销售抬头和开票抬头页签建议确认清楚否则DP90跑出来的税额会错。3.2 成本对象与服务确认RRB的数据从哪来DIP参数文件只是规则真正被开票的数据源头是成本对象上的实际成本。在RRB正式测试之前必须先确认三个问题工时有没有确认成本有没有过账成本对象主数据是否完整。工时确认是服务型RRB最常见的数据来源。SAP里工时确认可以通过服务条目确认也就是ESSR最终生成CO凭证过账到内部订单或者WBS。也可以通过HR的CATS跨应用工时表批量整合后过账到CO适合员工数量多的企业。材料成本则是通过发货过账比如维护领用备件过账到同一个内部订单。费用类数据通过差旅报销或者FI手工凭证成本科目挂在对应的成本对象上。这三个数据流有一路没走通DP90出来的清单就不全。因此正式测RRB之前我习惯做一次“数据端口测试”直接CO03看一个成本对象的成本报表确认所有该进来的工时、材料、费用都已经在成本对象上了。数据没到成本对象之前任何DIP参数文件的调整都是白搭。3.3 实战案例一个设备运维公司的RRB开票配置清单以我经手过的一家设备运维公司为例他们每个月底需要按客户项目开票配置大致是这样一张清单配置项处理内容关键值成本对象每个项目建一个内部订单订单类别为“间接费用订单”工时确认服务确认过账到内部订单费用科目对应“保养服务工时”成本要素材料发货备件发货过账到内部订单物料出库消耗进入材料成本要素DIP参数文件只选实际成本按劳务/材料/费用分组成本对象类型内部订单行项目类别劳务、材料、费用分别映射开票行项目发票行显示三行定价过程成本小计10%加成税加成基于成本小计计算开票类型复制F5生成ZRRB允许部分开票DP90期间按确认日期当月每月20日批量跑一次这套配置跑起来之后每月的步骤就是月底汇总确认工时检查材料费是否全部过账跑DP90生成清单查DP91确认行项无误走VF04统一开票。整个月结周期从原来的三天压缩到半天财务和业务也终于对上了口径。4. DP90/DP91实操从候选清单到正式发票4.1 DP90创建开票到期清单选择条件与执行DP90的事务代码是DP90菜单路径通常在后勤 - 销售和分销 - 开票 - 资源相关开票 - 开票到期清单 - 创建。对于日常使用者来说记住DP90一个事务代码就够了。进入DP90的选择屏幕之后有几个字段基本是必填的公司代码、销售组织、成本对象类型和成本对象号以及开票日期或者过账期间。如果业务是按月开票建议把“期间”字段框好避免把往期已经开过票的数据再捞进来一遍。还有一个关键参数是DIP参数文件如果业务上有多个DIP参数文件DP90屏幕可以选择跑哪一个。通常这里直接选择对应的DIP参数文件系统就会严格按它的规则去抓数。如果留空系统会按默认逻辑处理结果容易意外。执行之后DP90会生成一份开票到期清单。清单里每行包括成本对象、DIP参数文件、行项目分类、成本金额、加成金额、计划开票金额等关键信息。此时只是生成了清单还没有生成发票所以屏幕上看到金额但找不到发票号是完全正常的。第一次跑DP90时建议先不加任何额外筛选跑出全量清单再看结果比反复猜测哪些参数选错要高效得多。看到清单后逐项核对金额再决定是否进入下一步。4.2 DP91核查与调整别把未确认的成本开给客户DP91是RRB的“手工加工台”专门用来核查和微调DP90生成的清单。事务代码DP91菜单路径和DP90相邻进入后可以看到单条或某范围内清单行的明细。DP91能做的调整里有几个常用动作更改开票计划、修改数量、修改金额、删除整行、释放被锁住的清单行。比如某个月发现有一张差旅报销还没过账但客户催着开票这时候可以在DP91里暂时删掉那行费用下期再补。要注意在DP91里删掉的成本只是不参与本期开票成本对象上的CO数据不会被删除。这是一个很安全的操作但要记得下期DP90时把它重新捞回来否则这笔成本会一直挂在成本对象上而不开票造成CO余额长期挂账。DP91里每一行都有一个状态字段。状态是“错误”的行必须处理后才能开票常见的错误包括客户主数据不完整、科目确定失败、定价过程异常。处理完错误后重新释放才能进入VF04。4.3 从DP90/DP91到VF04正式开票的衔接细节DP90/DP91处理完清单之后下一步是VF04处理开票到期清单。VF04是SD顾问熟悉的界面里面会看到从DP90/DP91转过来的待开票清单行。在VF04里选中需要开票的行点击“后台开票”或者“显示开票凭证”的前台开票系统按DIP参数文件绑定的定价过程算好的金额正式生成销售发票。此时VBRK表里才有发票号会计凭证同步产生。这里有一件特别重要的事VF04开票成功之后一定要回头在DP91里确认清单行状态是否变成“已开票”。如果没有说明DP90/DP91和VF04之间有断点常见原因是复制控制或状态更新配置没写对。从DP90生成清单到VF04开票这两个步骤之间的间隔如果很长要小心一个情况期间已经跨月成本对象上又新增了成本数据。DP90跑的时候和VF04开票的时候金额可能不一致。严格的流程是DP90跑完当天就把VF04开票做完避免两边数据对不上。如果实在隔了很久建议重新刷新清单再开票。5. RRB运行中的高频问题与排查速查表5.1 DP90清单为空先查数据源再查参数DP90跑出来一条数据都没有这是RRB最常见的问题。很多人第一反应就是改DIP参数文件改完之后发现还是没数据。我的排查顺序是固定的。先查成本对象上有没有成本数据用CO03查看内部订单实际成本报表确认工时、材料、费用是否都进来了。如果成本报表都是空的问题根本不在SD回到服务确认和CO过账的环节去查。第二步查DIP参数文件的选择条件。实际成本、成本对象类型、行项目分类有没有选对。特别是生产成本和劳务成本要素是否被排除掉很多自定义成本要素不在标准DIP规则范围内导致没有被捞上来。第三步查DP90选择屏幕输入的期间和DIP参数文件是否匹配。如果选择期间是四月份但成本确认日期是五月份DP90自然为空。这种低级错误在月结时最容易发生因为每个人都默认自己选的是正确期间。最后查数据是否已经开过票了。如果一个成本对象上一期已经通过DP90/DP91开过票本期再次运行系统会检查数据重复集。如果没有正确处理部分开票的控制可能整单已经被标记为完成不再出现在清单里。可以做成一个速查表症状排查方向检查对象DP90完全没数据成本对象上是否没有成本CO03实际成本报表DP90完全没数据DIP参数选择条件过滤太严DIP参数文件配置DP90完全没数据选择期间和确认期间不匹配DP90期间字段DP90数据变少部分行已开票状态被隐藏DP91状态过滤DP90金额偏小某类成本未纳入行项目分类DIP行项目分类5.2 DIP参数文件“不生效”大概率是分配环节断了有朋友遇到过改完DIP参数文件里的选择规则重跑DP90之后完全没反应。原因通常是DIP参数文件没有正确分配到销售凭证类型或服务订单类型上系统根本没拿你改的版本。排查方法很简单进VA03打开对应的销售订单在行项目详细数据的“开票”页签里看DIP参数文件字段显示的是哪一个。如果显示为空说明销售订单并没有挂到DIP参数文件上后续DP90当然用不上你配的规则。还有一种情况是销售订单行项目类别里挂的DIP参数文件和DP90屏幕里选的DIP参数文件不是同一个。比如行项目里挂的是ZRRB_ADP90里手动选了ZRRB_B两边规则不一致跑出来的结果和你预期当然不一样。DP90没有特殊要求时最好让DIP参数文件字段留空让系统完全按行项目里挂的来。5.3 开票金额不对成本项与定价过程逐一核对开票金额不对先从DIP参数文件的行项目分类入手。比如发票上只有劳务费没有材料费多半是材料成本没有被映射到任何开票行项目类别DIP参数文件把材料成本过滤掉了。还有一种情况是费用加成重复。比如客户要求的合同价是成本加12%但在定价过程里既有加成条件又在发票行项目里人为输入了额外的加价最终金额就偏高了。RRB定价过程的加成条件建议做成自动计算不要留给人工每次手输否则每次月结都会有人填错。如果DP91里手工修改过金额VF04开票时默认会按修改后的金额开票。要留意修改过的行有没有被审计追踪财务对账时如果金额平不上通常就是这里手动改出了差异。5.4 DP91行项目灰色/无法勾选状态与锁机制DP91里某一行是灰色无法勾选或修改不要硬点。灰色通常代表该行要么已经处于正在处理状态要么已经被另一用户锁定。SAP对于RRB清单的处理是有锁机制的。两个用户同时跑DP90或者一个人开着DP91另一个人在VF04里处理同一个成本对象后一个往往拿到锁等待甚至报错。如果遇到灰色行先等一会儿再刷新如果持续锁定可能需要去事务代码SM12里去查看锁对象。另外某些状态的行是“错误”状态此时该行不允许开票即使不是灰色也不能勾选。这时要用DP91进入行明细看错误消息一个个解决掉然后把该行状态设为“释放”或者标记为可开票再去VF04。5.5 发票过账了但打不开发票号的典型场景这个场景不只在MM里出现RRB同样会遇到。DP90/DP91清单显示已处理VF04里也有记录但打开发票发现没有号码财务却提示已经有会计凭证过账了。大多数情况下这是因为销售发票的编号分配出现了问题或者发票在会计凭证阶段成功但后续的“保存”环节由于输出类型报错回滚了部分状态导致VBRK生成和会计凭证之间不一致。排查路径是先在VF04里查看该发票的错误日志常见原因包括发票输出类型无法找到打印机或邮箱地址导致发票没有最终保存完整。检查财务凭证确认是否真的已经有过账凭证。如果两者确实不一致最稳妥的方案是把这条开票凭证冲销掉再重新开一次而不是手工去财务调整。这类问题建议和负责人一起操作因为涉及会计凭证冲销会影响财务月结数据。但掌握了原理至少要知道它不是RRB专属的坑而是SD开票通用问题在RRB场景下的一个投影。6. 最后再分享几条RRB落地的实操习惯6.1 给DIP参数文件一套可维护的命名规范DIP参数文件一旦多了名字没有规律就连维护人都认不出哪个是哪个。我见过客户项目上叫DIP1、DIP2、DIPTEST的到后面谁都不敢动。建议命名用“ZRRB_业务场景_成本对象类型_开票类型”的结构比如ZRRB_MAINT_IO_F5一眼能看出是运维场景、内部订单、F5开票类型。DP90选择时也方便直接按命名筛选不会误选。6.2 用变式保存DP90选择屏幕减少手工输入DP90这种月结操作每次输入的公司代码、销售组织、获利能力范围、期间等几乎是固定的完全可以保存成变式下次进事务代码直接套用。这样既减少手工输错的可能也方便新同事上手月结操作不用每天问老师傅选什么期间。变式保存的时候注意不要锁死期间建议把期间留成变量每个月跑之前填一次其他条件全部固定。甚至可以给变式设置操作权限只有财务月结负责人能执行避免其他同事误操作跑出一大堆脏清单。6.3 周期清理与CO成本对象的核对习惯RRB跑久了成本对象上会出现长期未开票的余额。原因各异有的是数据未确认有的是DIP参数文件选择条件漏掉也有的是客户主数据出问题导致该开没开成。建议每个月开票结束后单独导出一张“有成本余额但未产生开票记录”的清单发给业务确认是不是有问题。这个动作虽然不在SAP标准操作手册里但能预防很多年底对账时才发现的历史问题。6.4 扩展思路RRB不只是“服务开票”最后说一句RRB不只是服务行业能用。制造业的样品制作费、研发项目向客户分摊的成本、维保合同里的超额工时结算这些业务只要有“按消耗开票”的需求都可以借鉴RRB这套链路。理解DIP参数文件的原理之后换成本对象、换行项目分类就能搭出新的应用场景。我个人在实际项目里最大的体会是RRB本身不是什么高深算法它背后就是“成本对象规则清单开票”这条线。问题基本都出在链路中间某一段断了比如工时没确认、DIP分配错了、期间选不对。所以真遇到问题别急着改配置先按数据源、DIP参数文件、DP90清单、VF04开票这四段逐段确认哪一段断了快速定位通常十分钟之内能解决。希望这篇对正在啃RRB的同行们有点帮助。
返回列表