☰
SAP现金销售BV流程配置:避开发出商品与重复成本
2026/10/27 5:54:00 网站建设 项目流程

简介:《SAP现金订单业务处理流程V2.0》是一份面向SAP SD顾问、销售与财务业务人员及ERP项目成员的PDF流程文档,重点解决现金销售订单从创建、发货过账到开票清账的标准化操作与后台配置问题。压缩包共1个PDF文件,约756KB,内容以业务操作说明和配置实现为主线,便于按订单类型BV、行项目类别BVN、计划行类别ZP、移动类型Z01、定价过程ZKD04与ZKD05、开票类型BV及现金科目确定等模块检索学习。文档对比传统手工现金销售方式,强调销售订单保存后自动产生交货单、发票在拣配发货前打印、发货过账可设为后台定时作业、出纳收款后直接开票清账等设计,并逐项说明订单创建、发货确认、发票验证与清账处理的操作要点,适合用于项目落地、流程培训及自查排错。已有101人学习。

1. 现金销售不走发出商品:BV 这套配置装歪,月末账上会挂两笔成本

前一阵帮一家做现款批发的公司查 SAP 沙箱,账上出了个怪现象:同一张现金销售订单,发货过账时成本进了发出商品,开票传会计时又结了一次主营业务成本,一批货在两张凭证里各走了一遍。查下来不是财务做错,是订单类型 BV 的「立即交货」没勾、计划行还挂在标准 CP 上,整条链路照抄了赊销的配置。手里这份《SAP 现金订单业务处理流程 V2.0》把该改的点都列出来了,但文档只写「改成什么」,不写「改错了会怎样」。现金销售这套流程本身不复杂,难在它是把标准销售拆开重装:订单保存即交货、发货可以后台跑、开票直接清账,任何一环沿用标准配置,账就会歪。下面按 ECC 和 S/4HANA 都能复现的顺序,把 BV、BVN、ZP、Z01、ZKD04、ZKD05 一个个装到位,适合要在测试客户端里落一版现金销售方案的顾问和内部运维。

2. 装前清点:客户端、版本差异和六个必须复制的源对象

装这套东西最忌讳上来就点新建。SAP 里跟销售、过账、定价相关的对象几乎都有现成的标准件可用,全部走「复制 → 改名 → 只改差异字段」的路子,一是省事,二是复制出来的对象自带完整的后续逻辑,不会出现某个字段空着导致链路断掉的情况。

2.1 在哪个客户端装,以及 ECC 与 S/4HANA 的差别

配置一律在 DEV 客户端做,挂传输请求,再传到 QAS 验证、PRD 上线。直接在生产改 OMJJ、OBYC、VKOA 这三个事务码下的东西,出事连后悔药都没有——它们影响的是全公司所有走库存和开票的单据,不是你这个现金销售流程一个。请求号建议单独开一个,描述写清楚「现金销售 BV 流程配置」,方便后面出问题只回滚这一单。

版本上要留意两点。ECC 6.0 时代这套配置全部能在 SPRO 里点完,S/4HANA 里事务码 OMJJ、OBYC、VKOA、V/08、OVKK、VOV8、VOV7、VOV6 依然在,路径略有挪动,用事务码直接进最稳。另一个是 S/4HANA 的客户主数据走 BP 事务码,客户定价过程字段在 BP 的销售与分销视图里,找 OVKK 那条配置时别在老事务码 XD02 里翻。

下面这张表是我一般会先写在纸上、配一个划一个的清单,事务码直接敲,不绕 SPRO 菜单:

对象目标名事务码复制来源
订单类型BVVOV8标准订单类型(标准里已有 BV,确认字段后沿用或重建)
行项目类别BVNVOV7标准 BVN / 标准行项目类别
计划行类别ZPVOV6CP
出库移动类型Z01OMJJ601
冲销移动类型Z02OMJJ602
定价过程(订单)ZKD04V/08ZKD01
定价过程(开票)ZKD05V/08ZKD04
开票类型BVVOFAF2
账户确定过程KOFI00VKOA沿用标准
自动记账GBB / Z11OBYC新增行

这里有个容易被忽略的事实:SAP 标准里本来就有订单类型 BV(Cash Sales)和行项目类别 BVN,很多人以为直接拿来用就行。问题是标准 BVN 的开票参考是交货单,标准计划行 CP 指向 601 出库,只要公司启用了发出商品科目,照搬标准件跑出来的还是赊销那套账。所以真正要动的是行项目类别的开票相关性、计划行的移动类型,以及移动类型背后的科目修改码,订单类型 BV 只是把它们串起来的壳。

2.2 复制前先确认三件事

第一件是物料评估类。第 4 章 OBYC 里 GBB/Z11 的科目是按「科目修改码 + 评估类」组合取的,如果参与现金销售的物料评估类不是 3000,配好的科目对它不生效,发货过账时系统会直接报科目确定错误。用 SE16N 看 MBEW 表能快速摸清家底,我习惯用下面这段查询把评估类 3000 的物料先捞出来,确认范围对不对:

" 查评估类为 3000 的物料,确认现金销售涉及的范围 SELECT m~matnr, " 物料号 m~mtart, " 物料类型 q~bklas, " 评估类 q~vprsv, " 价格控制 S/V q~stprs, " 标准价 q~verpr " 移动平均价 FROM mara AS m INNER JOIN mbew AS q ON q~matnr = m~matnr INTO TABLE @DATA(lt_eval) WHERE q~bklas = '3000'.

这段跑出来如果只有零星几个物料,说明评估类 3000 不是主流,那就要么调整 OBYC 里配的评估类,要么把现金销售限定在这个物料范围内,别指望一套配置吃下全部物料。vprsv那一列顺带看一眼,S 价和 V 价物料在出库时的成本取数逻辑不一样,验证阶段对账要对得上。

第二件是账户确定过程 KOFI00 有没有被别的开票类型占用、里面收入科目配没配全。开票类型 BV 沿用 KOFI00 是这套方案的前提,如果 KOFI00 被改得面目全非,后面删 VPRS 那一步的收益会很有限。

第三件是公司代码的会计期间和货币。现金销售讲的是当月出库当月开票,如果测试客户端期间没开或者只开到上个月,发货和开票都过不去,会让你误以为是配置问题。

3. 流程骨架:订单类型 BV、行项目类别 BVN 与计划行 ZP 怎么落

骨架这一层决定「单据怎么流」,三个对象是链式依赖:订单类型带出行项目类别,行项目类别带出计划行类别,计划行类别带出移动类型。哪一层断掉,后面发货和开票都跑不起来,所以装的时候按这个顺序配,别倒着来。

3.1 订单类型 BV:立即交货那个勾决定后面所有事

VOV8 进去看 BV。核心字段就一个:「立即交货」(Immediate Delivery)必须勾上。这个勾一打,前台 VA01 保存订单的瞬间系统就会去创建交货单,不需要人去 VL01N 手工建。现金销售「一手交钱一手交货」的节奏靠的就是它,不勾的话订单保存完躺在那里等发货,一旦跨月,成本又得走回发出商品。

同时确认交货类型指向 LF,订单相关开票的标记按标准给。订单类型层面我一般不动太多,因为它只是一个容器,真正决定「开票参考订单还是参考交货单」的是行项目类别。改太多订单类型字段,反而会影响其他复用到 BV 的输出、文本、状态管理配置。

3.2 行项目类别 BVN:把开票参考从交货单掰到订单

这是整套配置里最关键的一改。VOV7 找到 BVN,进「开票」相关页签,把开票相关性设成订单相关开票。标准的交货相关开票要求先有交货单、再按交货单开票,而现金销售我们要的是订单直接开票、发货可以在后面慢慢跑,甚至是后台作业每天定时过账。

改完以后的效果是:订单保存 → 自动生成交货单 → 发票先打出来给客户 → 发货过账可以延后。这个顺序听着别扭,但它正是现金销售能简化操作的原因,仓库拣配和发货过账不再是开票的前置条件。行项目类别里另外看三处:交货相关必须为空不能设成「不相关」,否则连交货单都不生成;定价相关保持标准;项目类别组按物料标准走。

注意:订单相关开票和交货相关开票在同一个行项目类别里是互斥的,切过去之后原来基于交货单的开票数量校验会失效,测试时务必用「订单 10 件、实际发货 8 件」的场景验证一次开票数量取的是哪个。

3.3 计划行类别 ZP:复制 CP,然后必须改的三个字段

VOV6 复制 CP 建 ZP。复制完进明细,三处要动:

第一处,移动类型从 601 改成 Z01,这是出库过账实际用的移动类型。第二处,冲销移动类型从 602 改成 Z02,退货或者过账错误时用。第三处,需求类型和可用性检查,我一般会关掉或者放宽,现金销售的场景是货已经在仓库里、客户马上提走,被 ATP 检查卡住一张单要跑去找计划员确认,效率反而下来了。

为什么不直接改 CP 的移动类型?因为 CP 被标准订单、退货、借项凭证一堆对象共用,改它等于给全公司的出库换了科目,属于典型的「一个人感冒全家吃药」。这也是为什么这套方案要新建 ZP、Z01、Z02 一整套私有对象。

3.4 移动类型 Z01、Z02 与那个被误解的 Z11

OMJJ 复制 601 建 Z01,复制 602 建 Z02。Z01 里最要紧的字段是「科目修改码」,填 Z11。这个字段决定了 OBYC 里用哪一行科目,是第 4 章所有科目配置的入口。

这里必须把一件事说清楚:Z11 是科目修改码(Account Modification),不是移动类型。有些实施笔记里写「复制一个移动类型 Z11 来做科目修改码」,照着做的人会在 OMJJ 里建出一个根本用不上的移动类型 Z11,然后去 OBYC 里找 GBB/Z11 发现配不了,卡半天。OMJJ 里建的是 Z01 和 Z02 两个,Z11 只以代码形式出现在 Z01 的科目修改码字段里,以及后面 OBYC 的 GBB 事务键下面。

Z02 作为 Z01 的冲销,科目修改码同样填 Z11,保证冲销时取回同一个科目,不会冲到一个莫名其妙的损益里。

4. 科目与定价:OBYC 的 GBB/Z11、ZKD04 与 ZKD05 的删法

单据能流起来只是第一步,钱怎么记才是这套方案的核心。现金销售跟传统业务最大的差别在会计分录:出库时直接「贷库存商品、借主营业务成本」,开票时「贷主营业务收入加销项税、借现金」,中间不经过发出商品这个过渡科目。第 3 章把单据串起来了,这一章把科目接上去。

4.1 OBYC 里的 GBB/Z11:出库直接结转成本

事务码 OBYC,选 GBB 双击进去,新增一行:科目修改码 Z11、评估类 3000、科目填主营业务成本。GBB 是「冲销记账」的事务键,601 这类出库移动类型过账时,系统在 GBB 下面按科目修改码去找对方科目,Z01 上填的 Z11 就是这把钥匙。

配完这一行,一张 Z01 出库凭证的会计分录就是:借 主营业务成本(GBB/Z11/3000),贷 库存商品(BSX/3000,库存科目由评估类决定)。跟《SAP 现金订单业务处理流程 V2.0》里给的分录完全对得上,中间没有发出商品的位置。

对照一下传统业务的差别会更清楚:

环节传统业务(有发出商品)现金销售(这套配置)
发货过账借 发出商品 / 贷 库存商品借 主营业务成本 / 贷 库存商品
开票借 应收账款 / 贷 发出商品、收入、税借 现金 / 贷 主营业务收入、销项税
成本再结转开票时借 主营业务成本 / 贷 发出商品无

表格第三行是很多人栽跟头的地方:如果开票环节还带着成本条件,主营业务成本会被再结一次,这就是第 1 章那个「两笔成本」的来源。

4.2 定价过程 ZKD04:把应计项整行删掉

V/08 复制 ZKD01 建 ZKD04。打开以后找标了「应计」(Accrual)的那几行,整行删掉。应计项存在的意义是让发出商品科目在月末按比例结转,现金业务当月出库当月结转,留着它会在月结时凭空生成一笔应计凭证,财务对账时要多花半天去追这张凭证从哪来的。

删之前先记下这些行挂在哪个小计(Subtotal)下面,删完检查一遍小计的顺序号有没有断档。SAP 的定价过程是按步骤号顺序算的,中间空一号通常没事,但如果有后续小计引用了被删行的步骤号,算出来的金额会变成 0 或者直接报错。配置完用 V/08 里的模拟功能跑一遍,看条件值和最终金额对不对,这比开一张真实订单试要快得多。

4.3 定价过程 ZKD05:VPRS 必须删,这不是玄学

再复制 ZKD04 建 ZKD05,这次要删的是条件类型 VPRS(内部价格/成本)。删完把 ZKD05 分配给开票类型 BV,订单那边继续用 ZKD04。

为什么非删不可?VPRS 是开票时把成本带进会计凭证的条件类型,它的科目由账户确定过程去取。现金销售里成本已经在发货过账时结转到主营业务成本了,如果开票再带一次 VPRS,系统要么在 KOFI00 里找不到对应科目直接报账户确定错误,要么找到了科目把成本再记一遍。删掉之后,开票凭证里只剩收入和税,账户确定要取的科目少了,自然就不会报错。

有人会问「删了以后系统靠什么取成本」,答案是它不需要取,成本已经在发货凭证里了。这不是 SAP 的逻辑说不通,是这套方案本来就把成本从开票环节挪走了。理解这一点,后面看凭证流才不会被「发票里没有成本行」吓到。

4.4 开票类型 BV 与现金科目确定

VOFA 复制 F2 建开票类型 BV,账户确定过程沿用 KOFI00。然后在 OVKK(定价过程确定)里补一条:销售组织 + 分销渠道 + 产品组 + 客户定价过程 + 单据定价过程 → 定价过程 ZKD05。

这里的坑在于订单和发票如果用同一个单据定价过程代码,两条配置会互相覆盖。我一般给订单类型 BV 配一个单据定价过程(比如 A,指向 ZKD04),给开票类型 BV 配另一个(比如 B,指向 ZKD05),两条记录并存,互不干扰。配完用 OVKK 的明细看一眼,确认「哪个单据类型取哪个定价过程」是对的。

最后是现金科目。VKOA 进去选 KOFI00,找到客户行对应的那条记录,把科目从应收账款改成现金科目(科目表里的库存现金或银行存款)。这一步做完,开票传会计时借方直接进现金,贷方是收入和销项税,凭证流里显示已清账——因为它压根没生成应收,不需要再用 F-28 去清。原文说的「出纳收取现金后直接开票清账,减少预收和清账环节」,落到的就是这一行配置。

注意:VKOA 的科目是按公司代码维护的,测试客户端改了不代表生产也改了,传输的时候盯住请求里有没有带上公司代码那一层。

5. 五个坑先记住:配置跑不通时按这个顺序查

这套配置出问题几乎不会报「配置错了」这么直白,都是过账报错、科目不对、凭证流状态不对。下面五条是我按出现频率排的,从单据流到科目逐层往下查,基本能在半小时内定位。

5.1 订单保存了,但没生成交货单

现象:VA01 保存订单,VA03 看凭证流只有订单一张单据,没有交货单。原因通常是订单类型 BV 的「立即交货」没勾,或者行项目类别 BVN 的交货相关性被设成了不相关。解决方式是回 VOV8 补勾,再去 VOV7 确认交货相关字段是空的而不是「不相关」,两张单都检查,只改一个不解决问题。

5.2 发货过账报科目确定错误,或者成本挂在发出商品

现象:VL02N 过账时弹出「科目确定失败」,或者过账成功但 FB03 看凭证,借方是发出商品。原因有两个方向:Z01 的科目修改码没填 Z11,或者 OBYC 的 GBB 下面缺 Z11 + 3000 这一行;再有一种是物料评估类压根不是 3000,配好的科目对它不生效。查法是用 MM03 看物料会计视图 1 的评估类,再去 OBYC 对一遍,两边必须对得上。

5.3 开票传会计报账户确定错误

现象:VF01 保存发票没问题,VF02 释放到会计时红字报错,提示无法确定科目。八成是 ZKD05 里的 VPRS 没删干净,或者开票类型 BV 的定价过程分配还指向 ZKD04。先在 VF03 里看发票的定价过程是哪一个,再看 OVKK 那条记录取的对不对,最后回 V/08 确认 ZKD05 里确实没有 VPRS 这行。

5.4 同一张发票里主营业务成本又出现一次

现象:发货凭证里已经有主营业务成本,开票凭证里又出现一笔金额相近的成本。原因不是配置重复,是 OVKK 里订单和发票共用了同一个单据定价过程,发票取到了 ZKD04;或者 KOFI00 里有人为 VPRS 配了科目,让系统「找到了」成本科目。解决方式是拆开两个单据定价过程,并把 KOFI00 里跟成本相关的科目行清掉。

5.5 凭证流显示未清账,出纳还要手工清

现象:发票传完会计,凭证流里显示的是未清项,出纳每天要跑 F-28。原因是 VKOA 的 KOFI00 里客户行还是应收账款科目,现金科目没分配;或者发票的支付条件不是立即收款,系统按账期挂了应收。改法是回 VKOA 把客户行换成现金科目,同时确认开票类型 BV 带出的支付条件。

提示:这五条排查顺序是有讲究的,先看单据流有没有断,再看科目取没取对,最后看清账状态。反过来查会在一堆正常配置里绕圈。

6. 装完怎么验:一张 10 件的订单跑完 VA01 到 VF01,账不对就别往下走

配置全绿不等于跑得通,SAP 里最怕的就是单点都对、串起来不对。我习惯用一张最小订单从头跑到尾,数量就 10 件,物料挑评估类 3000 的,客户用测试客户,全程截图存档,传输前再拿 QAS 跑一遍同样的单。

第一步,VA01 建单,订单类型 BV,保存后立刻去 VA03 看凭证流,交货单应该已经在了。不在就回 5.1。第二步,VL02N 发货过账,记下物料凭证号,用 FB03 反查会计凭证,借方必须是主营业务成本、贷方必须是库存商品,看到「发出商品」四个字就回 5.2。第三步,VF01 参考订单开票,VF02 释放到会计,凭证分录应该是借现金、贷主营业务收入加销项税,里面不该出现任何成本行。第四步,回 VA03 看凭证流,发票状态是已清账,整个链路四张单据齐了。

想批量确认一段时间内的单据有没有跑歪,用下面这段查询把 BV 订单和它的后续单据拉出来,对着凭证类别看有没有缺环节:

" 查最近 30 天的 BV 订单及其后续单据流 SELECT v~vbeln AS order_no, " 订单号 v~auart AS order_type, " 订单类型 v~erdat AS order_date, " 订单日期 f~vbeln AS next_doc, " 后续单据号 f~vbtyp AS doc_cat " 后续单据类别 J=交货 M=发票 FROM vbak AS v INNER JOIN vbfa AS f ON f~vbelv = v~vbeln INTO TABLE @DATA(lt_flow) WHERE v~auart = 'BV' AND v~erdat >= @sy-datum - 30.

vbfa是单据流表,vbelv是前序单据、vbeln是后续单据。跑出来如果某个订单只有 J 没有 M,说明开票环节断了;只有 M 没有 J,说明发货没跑或者立即交货没生效。这张表比一个个点 VA03 看状态快得多,月结前扫一遍能提前发现问题。

最后一步是账:让财务在测试公司代码里跑一次成本结转和收入确认的检查,确认主营业务成本只有发货那一笔、主营业务收入只有开票那一笔,两边的金额和数量能对上。这一步过了,才谈得上挂传输、上 QAS。

从那以后我每次在沙箱装这套 BV 流程,都会强制自己先把这张 10 件的订单从 VA01 跑到 VF01,四张单据的凭证流和两张会计凭证全部截图存档,再往 QAS 传。配置本身抄一遍只要半天,真正花时间的是发现「抄漏了一个字段」的那个下午。要照着落一版,最好把这份 V2.0 的流程文档摊在旁边,配一个对象划一个,别凭记忆。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询