SAP现金销售订单配置:从立即交货到OBYC科目确定全流程解析
简介一份面向SAP业务与财务人员的现金销售订单处理流程文档聚焦BV订单类型、BVN行项目类别、ZP计划行类别等关键配置完整梳理从创建订单、发货过账到开票清账的标准化操作路径并说明其相对传统手工模式的自动化优势。全包仅含1个pdf文件约756KB内容精炼适合负责现金销售业务的录单员、仓库与应收会计作为操作参考。已有101人学习可用于快速掌握SAP现金销售与标准销售分离的设计思路理解订单保存自动生成交货单、提前开票、后台过账等环节的实操要点也可为后续系统配置或流程优化提供对照依据。1. SAP现金订单把一手交钱一手交货做进系统SAP实施里标准销售流程大家都熟但一到现金销售就容易翻车货出了、钱收了账上却还挂着一个发出商品科目财务对账怎么都对不上。这份现金订单业务处理流程方案把“一手交钱一手交货”做成了一套独立的配置——销售订单保存即自动产生交货单出纳收款后直接开票清账发货过账用后台作业每天定时跑。它绕开了发出商品中间科目出库直接结转主营业务成本开票直接挂现金。适合正在做SAP SD模块实施、或者被现金业务月结对账折磨的实施顾问和财务同事。2. 业务蓝图先行流程时序与会计分录决定整套配置现金销售不是把标准订单改个名字那么简单。真正决定后面每一个配置动作的是流程时序和分录逻辑这两件事。把这两件事想清楚后面的订单类型、行项目、移动类型、定价过程都是顺水推舟。2.1 为什么现金业务要把开票挪到发货前面标准销售业务在系统里的时序是销售订单 → 创建交货单 → 拣配发货 → 发货过账此时产生会计凭证→ 开票。这个顺序的前提是生产和收款之间存在一个账期。但现金销售是收款、开票、交货几乎同时发生甚至出现“客户先交钱、见票提货”的线下规则。如果继续沿用标准时序发票要等到发货过账之后才能开客户等在仓库门口业务员却被系统卡住这就闹笑话了。这套方案把时序调整成了创建销售订单保存时自动产生交货单→ 出纳收款并打印发票 → 仓库依据发票拣配 → 发货过账可以设成后台作业每天固定时间跑一次。开票在发货过账之前完成是为了配合“先收款后给货”的现金销售惯例。这里的落地开关就是订单类型BV上勾选“立即交货”文档里反复强调这个勾选实际配置时忘掉的不少。还有一个值得注意的点发货过账被设计成后台作业每天定时自动跑。这意味着发货过账的会计凭证不是操作员手工点击后立刻生成的而是系统批量过账。好处是录单文员不需要懂财务只要保证单据状态正确剩下交给定时任务坏处是当天如果不跑这批作业库存和账上会有一段时间不同步所以上线后运营要盯住SM36里的作业状态。2.2 会计分录对比要不要发出商品是全篇的决策点为什么标准销售需要发出商品科目因为出库和开票往往跨月。货在当月发出发票要到下月才开为了保证成本和收入的配比出库时不能直接进成本于是先用“发出商品”这个中间科目挂起来等下月开票时再结转收入同时把成本补记上。这是标准业务的做法。现金业务的特点是出货和开票基本同月完成甚至同一天完成物权在收款和交货那一瞬间就转移了。如果账上还挂一笔发出商品等于说“货已经给客户了但账还认为这货是我们的存货”这就是典型的账实不符。所以文档给出的分录设计是出库直接转成本开票直接计收入。环节传统业务有发出商品现金业务无发出商品出库借发出商品 贷库存商品借主营业务成本 贷库存商品开票借应收账款、主营业务成本 贷发出商品、主营业务收入、销项税借现金-人民币 贷主营业务收入、销项税两张表放在一起看现金业务的会计处理明显更短省掉了发出商品的挂账和转销两步全流程两个会计凭证就闭环了。这也是这套方案“简化操作、提高效率”的底层逻辑。2.3 这套流程的适用边界这套现金流程不是所有销售场景都适用。它的前提是开票和出货同月闭环线下收款动作能配合系统单据生成。比较典型的场景是门店柜台零售、海外子公司面向小客户的现款现货、展会现场销售这类业务。反过来如果业务上是先货后款或者开票时间和出库时间可能跨月那就必须继续走标准销售加发出商品的方案。实施顾问接手时第一步应该是和业务确认清楚“这个销售到底收不收现金、开票和交货能否保证同月”而不是直接就套用BV配置。3. 销售端配置订单类型BV、行项目BVN与计划行ZP业务流程理顺之后进入销售模块配置。这一章的三个配置对象都是SD侧的订单类型、行项目类别、计划行类别。它们之间是父子关系——订单类型决定允许用哪些行项目类别行项目类别决定允许用哪些计划行类别计划行类别决定使用哪个移动类型。3.1 订单类型BV立即交货是现金业务的第一个开关订单类型BV的创建在事务代码VOV8里完成复制一个现成的标准订单类型再做修改。最关键的一个字段是“立即交货”Immediate Delivery必须勾选。勾选之后订单保存时系统才会自动触发交货单创建这样才能保证“先开票、后过账”的时序能走通。另一个需要确认的是“交货类型”字段。标准订单类型自带的交货类型通常指向标准交货单现金订单这里沿用标准交货类型即可因为交货过账的差异不是靠交货单类型拉开的而是靠行项目上的计划行和移动类型拉开的。我在实施时一般还会把“发货类型”和“装运点”确认一遍确保订单保存后系统自动创建的交货单能落到正确的仓库不然到了仓库拣配环节才发现发错仓那又是另一笔麻烦账。提示订单类型里的“立即交货”是整套配置的地基。这个字段没勾上后面BVN、ZP配得再对订单保存时都不会自动带出交货单业务操作就卡在第一步。3.2 行项目类别BVN让发票参考订单而不是交货单行项目类别BVN在VOV7里配置一般也是从标准行项目复制之后修改。这里的核心变化是“出具发票类型”这一项标准行项目的开票参考通常是“参考交货单”而BVN必须改成“参考订单”。为什么要参考订单因为现金业务的发票要在发货过账之前打印这时交货单可能已经创建但尚未过账甚至根本没拣配。如果开票逻辑参考交货单系统就要求交货单处于已过账状态才能开票时序就卡死了。改成参考订单后只要订单有效出纳就能直接基于订单创建发票并打印不需要等待仓库动作。顺带说一句BVN对应的“计划行类别”要填ZP下一小节讲。这一步决定了一张现金订单往下走的时候系统用哪个计划行、最终关联哪个移动类型。经常有同事配了BVN但计划行类别还指向标准CP结果发货过账走了601移动类型科目结转全部落到原来的发出商品逻辑上。3.3 计划行类别ZP复制CP之后需要调整什么计划行类别ZP在事务代码VOV6里配置标准的做法是复制CP然后改名。复制之后必须把“货物移动”相关的移动类型从601改成Z01因为Z01这个移动类型是专门为现金业务复制出来的它携带了科目修改码Z11。改完ZP之后可以反过来在订单类型BV的行项目类别BVN里确认计划行类别确实带到了ZP。这里有一个容易忽略的细节ZP只解决正向发货冲销发货过账还需要对应的冲销移动类型Z02。文档里特意提到“工作要搞全顺便复制602创建一个新的移动类型Z02用来冲销”这就是在提醒配置人员别只做单向流程。系统里面发货过账一旦做了一旦仓库发现拣配错误没有冲销移动类型就只能走退货订单或者手工凭证会非常痛苦。表格里列一下这一章三个配置对象的速查配置对象事务代码复制来源关键改动订单类型BVVOV8标准订单类型勾选立即交货行项目类别BVNVOV7标准行项目开票参考改为参考订单计划行类别ZPVOV6计划行CP移动类型改为Z01准备Z02冲销4. 库存移动与科目确定Z01/Z02移动类型与OBYC的GBB配置销售端的配置只是流程骨架真正让成本和库存“转”起来的是移动类型和科目确定。现金业务和标准业务在这里分道扬镳标准业务发货过账走601移动类型出库金额进发出商品现金业务发货过账走Z01移动类型出库金额直接进主营业务成本。4.1 移动类型Z01复制601之后换个科目修改码移动类型Z01通过事务代码OMA1或者直接复制601创建。复制601之后要去OMJJ事务里查看Z01的“科目修改码”Account modification字段把它改成Z11。科目修改码的作用是在物料移动过账时告诉系统该去OBYC配置里的哪个键值组合找总账科目。这套方案的逻辑链是这样的计划行类别ZP指定移动类型Z01 → 移动类型Z01携带科目修改码Z11 → OBYC的GBB配置里维护了Z11对应的科目 → 发货过账时自动记账到主营业务成本。链条特别长中间任何一环断裂结果就是发货过账时报“科目未确定”或者“没有可以记账的科目”。这条链路在文档里有一句话非常关键“这样设置完成后只要物料的评估级别是3000的话都可以直接结转到主营业务成本。”评估级别这里指的是评估范围编号有的公司叫工厂3000是这家公司自己的编号。复制的时候不要原样照抄要替换成自己公司的评估范围编号否则物料主数据里的评估级别对不上照样会找不到科目。4.2 冲销移动类型Z02成对配置才有后悔药Z02是从602复制的用途是冲销Z01的过账。移动类型601/602是标准成对的正向发货和冲销发货Z01/Z02也是成对出现。配置Z02时注意它的科目修改码要与Z01保持一致即也指向Z11这样冲销过账时才能把主营业务成本原路冲回而不是冲到一个莫名其妙的对方科目。我在项目上习惯把Z01和Z02放在同一时间配置配完就用一张测试订单走一遍“发货过账 → 冲销 → 再发货过账”的完整闭环。很多配置问题在正向流程里暴露不出来只有冲销时才现原形。比如科目修改码不一致正常发货记账没问题冲销时却报科目确定错误这种问题查到根上就是当初偷懒没配Z02。4.3 OBYC配置GBB事务码加上Z11落到主营业务成本OBYC是物料移动的自动记账科目配置中心。进入OBYC之后找到“GBB”这个事务码库存记账/消耗记账相关在科目修改码Z11这一行维护总账科目。这里维护的科目就是主营业务成本的库存结转科目具体科目号取决于企业科目表常见的是6401开头的成本类科目。这里有一个细节值得讲清楚OBYC的GBB配置是按“评估范围 科目修改码 评估类”的组合去匹配科目的。如果物料评估类对应的行没配置或者评估范围和Z01/Z11不匹配系统在过账时会提示无法确定科目。文档里这家公司把评估级别统一为3000本质上是让所有走现金销售渠道的物料在主数据层面保持一致避免每张订单都因为评估范围不同而报错。注意OBYC里改科目对已过账的历史数据没有任何追溯作用。上线前就要把GBB-Z11配好并冻结上了线再改科目已经产生的会计凭证不会自动重分类只能靠手工凭证去调。5. 定价过程与开票避坑ZKD04/ZKD05与那个删除VPRS的玄学配置走到定价过程才是这份文档里最容易让人卡壳的地方。文档作者本人在这里也留下了一句很实在的困惑“为啥删掉就可以找到了没搞明白SAP的逻辑。”我把它归类为这是一个被验证过有效、但底层取值逻辑不透明的配置。作为后来者先照做再理解。5.1 一个订单一个开票为什么现金业务需要两套定价过程标准现金业务需要两个定价过程ZKD04分配给订单类型BVZKD05分配给开票类型BV。ZKD04从ZKD01复制而来删掉其中的“应计项”条件行。应计项在传统业务里对应的是发出商品的应计负债既然现金业务不需要发出商品这个条件行自然要删。ZKD05又从ZKD04复制而来唯一的改动是删掉VPRS条件。VPRS是成本价条件在标准订单的定价过程中它的作用是让系统在订单层面展示或计算成本价。标准开票类型F2的定价过程里保留VPRS没问题因为F2所在的标准销售流程里成本核算相关的科目在OBYC里是配全的。但现金开票类型BV复用了KOFI00这个账户确定过程而KOFI00在为BV找科目时恰恰会因为VPRS找不到对应科目而直接报错。5.2 删除VPRS现象、原因与处理先记录一下现象现金订单的正常创建和发货过账都没问题但执行“出具发票”并批准至会计时系统报账户确定错误报错信息指向VPRS条件类型提示无法找到总账科目。原因分析上我倾向于这样理解VPRS条件在账户确定过程中会被当成一个取值入口SAP要根据定价过程中的条件类型去匹配对应的科目确定规则。BV开票类型用的KOFI00账户确定过程它的规则表里没有为VPRS准备科目配置所以系统遍历到VPRS时就找不到对象删掉VPRS之后KOFI00剩余的条件类型收入、税、现金等都有对应科目账户确定自然通过。至于“删掉之后SAP用哪个逻辑取成本科目”这个问题我只能说文档作者当年没搞明白我也没有完全搞明白。SAP的定价与科目确定交互逻辑本身就像一个黑匣子很多情况是靠已验证的配置样本来反向确认的。实施中遇到这种问题最务实的做法不是停下来死磕内部逻辑而是把已有可行配置作为基准通过检查条件类型清单去对齐差异。在客户项目上我会把这类玄学问题记录成一张对照表避免后面同事重走一圈定价过程分配对象相对上一步的改动用途ZKD01标准订单原有基准原发出商品业务ZKD04订单类型BV删除应计项现金订单不挂发出商品ZKD05开票类型BV删除VPRS现金开票避开科目确定报错5.3 开票类型BV与KOFI00串用定价过程有多容易踩坑开票类型BV在配置时大部分设置项参考标准F2即可账户确定过程沿用KOFI00。但正因为F2和BV共用KOFI00才最容易踩坑如果给开票类型BV分配的是ZKD04没删VPRS而不是ZKD05那么开票批准至会计时VPRS在KOFI00里找不到科目报错出场。更隐蔽的风险是如果科目配置碰巧让VPRS找到了一个错误科目发票过账可能不报错却会把成本再结转一次造成收入、成本、库存三方对不上。所以上线前检查有一项必做确认开票类型BV的定价过程是ZKD05而不是ZKD04。这俩相差一个条件行名字还几乎一样配置表里一个看走眼就选错了。我在交付检查清单里专门放了一条打印出ZKD05的定价过程页面人工确认VPRS这一行是删除状态。5.4 避坑记录四条现金订单配置的血泪经验第一条物料评估级别不一致。现象同一张现金订单里部分物料发货过账成功部分物料报“科目未确定”。原因走GBB-Z11的科目配置只覆盖了评估级别3000的物料其他评估级别的物料没有对应科目。解决统一现金销售物料的评估级别或者在OBYC里为其他评估级别补充配置。第二条订单和开票错用同一个定价过程。现象订单保存正常开票时账户确定报错。原因给开票类型BV分配的定价过程是ZKD04而不是ZKD05VPRS还留在里面。解决把开票类型BV的定价过程改成ZKD05并确认VPRS已删除。第三条现金科目没有分配。现象发票过账成功但现金科目为空或挂到了应收账款。原因在FI配置中现金/银行科目没有按过账码分配到BV开票类型对应的事务。解决在财务配置里为现金交易分配“现金-人民币”科目注意过账码和账户码要和BV开票类型的科目确定过程匹配。第四条发货过账后台作业漏跑。现象仓库实物已发货但系统库存和账务没动配送报表全绿财务对账全红。原因发货过账设成了后台作业但没人盯SM36执行结果作业失败也没人发现。解决后台作业执行成功后配置通知或检查日志并设置一个兜底的手工过账入口供IT值班人员使用。6. 上线验证与冲销测试三个必须手动走一遍的动作配置落完不算完上线前必须手工走一遍完整流程把坑在录单文员面前先踩掉。我每次做这类独立销售流程的配置都会强制自己完成下面三个动作再交付。先做凭证流检查。用测试订单走一遍“创建订单 → 自动生成交货单 → 开票 → 发货过账”之后在VA03查看销售订单的单据流确认能看到交货单据和会计凭证且会计凭证状态为“已清账”。文档里的截图就是这一步——凭证流中会计凭证已经是清账状态不需要再去F-28手动清账。这一步验证的不只是配置还验证了“出纳收款后直接开票清账”这个业务设计真的落地了。然后做冲销测试。先对测试订单做发货过账再用移动类型Z02冲销然后重新做一次正向发货过账。整个过程中检查每一次过账的会计凭证Z01过账借主营业务成本、贷库存商品Z02冲销应该是正好相反的分录重新发货过账后再检查一次。只有冲销能原路返回仓库拣配错误时才有后悔药吃。最后做后台作业验证。在SM36里创建或查看定时发货过账的后台作业先手动运行一次确认作业能正常处理挂起的交货单然后模拟当天的作业日志确认无报错。从那次因为后台作业漏跑导致财务对账翻车之后我每次上线前都会把这三步走一遍再交出门顺序都不改。这套现金订单配置不难难的是把“先收款、快交货、定时过账”的节奏固化进系统里。希望帮到你。本文还有配套的精品资源点击获取