免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

SAP现金订单全流程实战:从配置、收款到对账避坑指南

SAP现金订单全流程实战:从配置、收款到对账避坑指南 简介这是一份SAP现金销售现金订单业务处理流程设计方案面向销售、仓库、财务等业务人员及SAP实施顾问用于规范现金销售从订单创建、发货过账到开票清账的全过程并将标准销售与现金销售分离通过自动交货、后台过账等设计提升效率与准确性。资源为单个PDF文档大小756KB共1个文件。文档不仅给出BV订单类型、BVN行项目类别、ZP计划行类别、移动类型Z01、定价过程ZKD04/ZKD05、开票类型BV及现金科目确定等关键配置思路还对比了与传统手工现金销售的区别附录目录结构清晰、包含文件编号与版本信息便于实际项目参考落地。已有100人学习下载适合正在实施或优化SAP SD模块现金销售流程的读者快速掌握要点。1. 现金订单不是“先开票后收款”而是现金流驱动的快销场景SAP 里的“现金订单”在 FICO 和 SD 模块交界处通常指的是“现金销售Cash Sale”业务客户先付款、后提货或者在提货同时完成收款结算而不是传统赊销那种“开单 - 发货 - 开票 - 收款”的信用链条。对应到 SAP 系统里常见做法是用销售订单类型 OR现金销售 结算类型“立即结算Immediate Settlement” 收款过账 F-29 或 F-28 组合实现。整套流程设计的关键在于订单创建时就要触发收入确认不做应收挂账收款与发货在财务视角上同时完成。为什么要单独梳理一套处理流程而不是直接走标准赊销因为自营门店、加油站、电商自提点这类业务交易笔数大、单笔金额小、客户不固定如果每一单都走“开发票 - 生成应收 - 收款清账”财务月结时会产生大量未清项对账成本极高。现金订单就是把“开单和收款”绑定在一次操作里牺牲掉赊销的灵活性换来账务的即时清晰。这套方案适合零售快销、服务类即时结算、内部员工购买等场景也适合需要严控应收账款的企业。下面按“配置 - 前台操作 - 对账 - 踩坑 - 进阶”这条线把一套能直接复现的现金订单流程拆开讲。2. 现金订单的骨架从销售订单类型到财务过账的链路配置2.1 销售订单类型与项目类别为什么不能用标准 OR 直接跑现金销售在标准 SAP 里自带订单类型 OR但多数项目不会直接启用标准配置而是复制 OR 新建一个 ZOR 之类的自定义类型。原因很简单标准的 OR 是给“现提现货”设计的它的默认计划行类别、交货类型、开票类型都是按“立即提货”预设的一旦你的场景里掺了“先付款、后发货”“预付定金、余款提货”这类变体标准 OR 根本撑不住。创建 ZOR 的主路径是后台配置复制销售订单类型 OR 为 ZOR销售凭证类型建议选择“现金销售Cash Sale”这会直接影响系统对后续步骤的默认值判断比如是否允许立即结算、是否强制在订单层做收货、是否要求付款承诺Payment Guarantee。项目类别上用标准项类别 TAN标准项目或者复制自建 ZTAN计划行类别用 CS现金销售计划行或者自定义的 ZCS。这里的核心参数是“计划行类别的‘结算类型’字段”选了“立即结算”后系统在创建订单保存的那一刻就尝试生成会计凭证而不是等到开票或发货。配置对象事务码关键字段常见取值销售订单类型VOV8销售凭证类型OR 复制为 ZOR项目类别VOV4项目类别组TAN 复制为 ZTAN计划行类别VOV6结算类型立即结算 / 发货时结算开票类型VOV8开票类型F2 复制为 ZF2这里最容易翻车的一点计划行类别的结算类型选了“立即结算”但开票类型没有同步改成“现金销售开票”系统保存订单时会报“没有找到现金销售的开票类型”或者干脆把销售凭证挂在“待开票”里月底一看全是未开票的销售。我的习惯是创建 ZOR 时直接把开票类型一并复制改成 ZF2并在收款计划里把“付款卡/现金/银行转账”三类支付方式都配置进去。2.2 定价过程与科目确定收入科目、税码、现金折扣怎么落现金订单的定价过程可以直接复制标准 RVACCA适用于成本核算的定价过程或 RVAUSA但有几个字段必须单独调。第一是定价过程中的“现金折扣Cash Discount”条件类型比如 SKF 或 SKTO现金销售通常不设置账期所以现金折扣要么不配要么配一个“当日支付 2% 折扣”的规则。这个不是财务要求的而是业务上“先付款后提货”模式下的一种促销手段。第二是科目确定这是现金订单和赊销最本质的差别。赊销的记账是“借应收账款贷收入/销项税”而现金销售在系统里的标准记账是“借现金/银行贷收入/销项税”。这个差异在后台的“科目确定OBYC / VKOA”里体现你需要为这个订单类型对应的“现金销售Cash Sale”分配独立的收入科目、销项税科目和现金科目。具体路径是后台 - 销售和分销 - 基本功能 - 科目分配 - 收入账户确定把“现金销售”对应的条目配置出来否则系统会默认走到应收科目结算时就变成应收账款而不是现金科目。税码这块也要单独说现金销售开票常用的税码是 X117% 销项税或 F10% 税但项目里经常出现“订单保存成功了但税码没带出来”的问题。原因是定价过程中税码确定条件类型 TAX 的“计算类型”没有配置“按工厂和客户确定税码”需要在定价过程里查 TAX 条件类型的“金额/公式”字段填上“Tax Code Derivation”税率确定公式。改完定价过程后必须重新做“条件类型 - 税码”的确定配置事务码 OVK1 / FQ 系列。2.3 发货、开票与交货现金订单发货时的那道“收款校验”闸门现金订单在发货环节最大的特点是系统会检查“付款承诺Payment Guarantee”状态。所谓付款承诺就是订单创建时如果结算类型是“立即结算”系统会虚拟记一笔“现金收款”同时在交货单创建的时候去校验这笔收款是否已经过账、金额是否匹配。如果你做了“先收款、后发货”的流程那么在 VL01N 创建交货单时系统会因为“没有付款承诺”而直接弹错。这道校验逻辑归“交货类型”和“装运点/收货点”配置管核心字段在后台 - 后勤执行 - 装运 - 交货 - 定义交货类型找到你的交货类型标准 LF复制成 ZLF 也行字段“检查付款承诺”要勾上。这个勾一勾上VL01N 保存时系统会去读销售订单的付款承诺状态如果没找到直接红字报错。反过来如果交货类型里这个字段不勾那“先收款后发货”的控制就是一句空话业务员可以先交货再收款财务月底对账时又是一堆烂账。常见做法的收尾一步是“开票”环节现金销售的开票在 VF01 里生成但很多项目里因为订单保存时已经产生了收入记账财务就不再对现金订单执行 VF01 开票而是直接以订单保存产生的会计凭证作为收入确认依据。这种做法减少了冗余凭证但审计上需要额外说明“收入以订单保存时点确认不以开票时点确认。”如果审计不接受这种口径那就要回到“订单保存时不做收入记账、只在开票时记账”的流程计划行类别里把“结算类型”改成“发货时结算”即可。3. 从 VA01 到 F-29现金订单前台操作的标准动作3.1 创建现金销售订单VA01 带订单类型 ZOR注意付款卡与付款方式前台操作从 VA01 开始创建销售订单时输入订单类型 ZOR售达方和送达方如果客户是“一次性客户”则输入一个统驭客户编号比如标准的一次性客户 999999否则输入正常客户主数据。行项目里维护物料、数量、价格价格会自动带出定价过程里的条件。回车进入计划行视图后检查“结算类型”是否为“立即结算”这个字段如果变灰不可改说明订单类型参数设置正确如果可改但被改成了“无”那订单保存后系统不会做任何财务记账。保存订单后系统提示“销售订单已保存会计凭证 4900000015 已生成”之类的话这就是现金销售和赊销的第一肉眼差异赊销的 VA01 保存后不会有会计凭证提示现金销售必须出现这个提示。如果没出现大概率是计划行类别里的结算类型选错了。* 前台操作序列事务码顺序 VA01 - 创建销售订单输入 ZOR - 行项目维护物料/价格/数量 - 计划行页签检查结算类型 - 保存确认有会计凭证生成提示 F-29 - 现金收款过账输入客户/金额/利润中心 - 过账后产生银行/现金科目凭证 VL01N - 按销售订单创建交货单确认付款承诺通过 VL02N - 发货过账产生物料移动凭证 VF01 - 开票可选取决于流程设计上面的步骤里F-29 不是总账里的“现金日记账”而是 SAP 标准的“现金收款”过账事务码。F-29 界面很像 F-02但它的核心不一样它带“未清项处理”逻辑可以把你前面虚拟记的“付款承诺”在过账时真正兑现掉。如果你创建订单后直接跑 VL01N 发货付款承诺已经存在再用 F-29 过一笔银行收款这笔收款会去清掉那张“销售凭证对应的虚拟应收”而不是再挂一个新应收。这就是现金销售“不产生应收”的秘密。3.2 现金收款过账的三种方式F-29、F-28、F-02 的取舍现金订单的收款过账有三条路F-29 现金收款、F-28 手工清账、F-02 总账凭证三者的适用场景差异明显。F-29 是最贴合现金销售的方式它一次操作同时完成“收款过账”和“清账”而且界面里直接显示销售订单的账户和金额不容易串户。F-28 是清账事务码适合先有未清项再收款但现金销售本身不产生未清项所以 F-28 在纯现金订单流程里用得少更多是处理赊销转现金这种混合场景。F-02 是最不推荐的方式除非你是财务专家并且清楚知道科目。因为 F-02 需要手工输入借贷科目、利润中心、文本任何一步输错都会导致月底对账的时候“凭证能过但报表不平”。我在项目里见过一个同事用 F-02 做现金收款把“银行存款-人民币”输成了“银行存款-美元”金额差了三倍月底银行余额调节表怎么都对不上最后只好冲销重做。提示如果项目上线初期业务量不大、财务团队对 SAP 不熟练优先锁定“VA01 F-29”这条链路把 F-28 和 F-02 的权限全部收回。减少操作路径就减少了月末对账时“路径差异导致的数据差异”。3.3 发货、过账与报表核对一张现金订单的完整状态流转一张现金订单从创建到完成在 SAP 里的状态流转是这样的销售订单状态已交货/已开票/已结算 - 交货单状态已拣配/已发货/已过账 - 会计凭证状态已生成/已清账/已冲销。业务上常见的目标状态是销售订单“已结算”、交货单“已发货”、会计凭证“已过账且已清账”。-- 用 SE16N / SE16 查看表结构时核心查看字段参考 VBAK-VBELN 销售订单号 VBUK-LIFSK 交货状态 VBUK-ABRVK 开票状态 VBUK-BSTNK 客户参考 VBAP-POSNR 行项目号 VBAP-PSTYV 项目类别 VBEP-ETENR 计划行号 VBEP-SETYP 结算类型 ACDOCA-AWSYS 来源系统 ACDOCA-AWTYP 参考交易类型 ACDOCA-AWKEY 参考凭证关键字做流程验证的时候最直接的方法是看“销售订单 - 环境 - 显示会计凭证环境菜单里的‘会计凭证’”确认凭证里借贷方向是不是“借现金/银行贷收入/销项税”。如果是“借应收账款”说明定价过程或科目确定没走对。另一个快速核对报表是 FBL3N总账科目行项目或 FBL5N客户行项目输入客户编号和期间如果这个客户只有一个一次性凭证且已清账说明整个流程是健康的。4. 对账与月末差异分析现金订单为什么会对不平4.1 现金、收入、税三要素的两类差异来源现金订单月结对账的核心是“三表一致”银行/现金日记账余额、收入科目余额、销项税科目余额三张表必须各自等于业务系统里的现金收款总额、含税销售额、税额。实际对账时出现的差异第一类来自“记账时点不一致”——业务员先做了 VA01 生成会计凭证但实际收款隔天才到账现金流和收入流出现一天的时差第二类来自“税额尾差”——比如单价 3.67 元数量 3 个含税金额 11.01 元系统按行项目分别计算税额再合计和整单按含税总额计算税额差几分钱月底就是平不了。差异来源典型现象解决路径记账时点差异日结单收款笔数与银行流水差几笔启用 SAP 的“收款承诺 事后清账”模式税额尾差月末销项税科目差 0.01~2 元配置“税额取整规则”为按行项目计算或按整单计算收入确认漏记VA01 保存后没有会计凭证提示检查计划行类别“结算类型”是否立即结算客户主数据串户一次性客户被多笔订单共用检查“一次性客户账户”的统驭科目设置4.2 用 FBL5N 和 S_ALR_87012356 做现金订单的月度体检月度体检我一般看三张报表FBL5N客户行项目明细、S_ALR_87012356客户余额审计报表、FAGLL03总账科目行项目。S_ALR_87012356 是 SAP 标准的客户审计报表可以把所有客户的未清项余额按“已清/未清”列出来现金订单业务的未清项理论上应该是零只要列出任何一条未清项就是流程出问题的信号。* FBL5N 的核心筛选输入以现金订单为例 * 客户一次性客户编号或范围 * 期间当月 001~当月 012 * 行项目显示只显示未清项目去掉“未清项目”选择框 S_ALR_87012356 - 客户余额审计报表 * 关键参数客户、公司代码、科目类型D 客户 * 输出解读未清项目余额 0 为理想状态实际操作中如果发现 FBL5N 里有未清项目不要急着冲销先用“环境 - 显示会计凭证”看这笔凭证是怎么产生的。80% 的情况是某笔订单的手工收款走成了 F-02 而不是 F-29或者开票类型选择错误导致系统在开票时又生成了一张应收。这种时候冲销原凭证并重新走 F-29 是效率最高的做法比在未清项上硬清账干净。4.3 增值税科目余额与现金流的勾稽关系怎么验增值税科目对不平前面提到“尾差”但尾差通常可以通过配置解决。后台路径“财务会计 - 总账会计 - 税务 - 计算”里面有“税码的取整规则”和“按行项目计算的税额”两个开关。如果业务对发票金额精度要求高建议开启“按行项目计算税额”这样每个行项目税额单独取整整单税额是行项目税额之和和发票上的税额一致如果按整单计算税额SAP 会用总含税金额减去整单净额得出税额两种计算结果在含税单价不是整数时必然差几分钱。另一个常被忽略的点是“销项税科目与税码的对应关系”在科目确定里的映射。现金销售订单如果用了 X1 税码科目确定里必须存在“X1 对应销项税科目 2221001010”的记录如果财务在总账里手工做过“借银行贷应交税费-销项税”的补记凭证那月末这个科目还会有余额对账时差异就不是来自销售订单而是来自手工凭证。遇到这种情况先跑表 FAGLL03 看这个销项税科目借贷发生额明细把所有手工凭证挑出来单独核对。5. 避坑与常见问题现金订单实施中的 5 个典型“翻车”现场5.1 订单保存后没有生成会计凭证这是现金订单实施里最常被问到的“玄学”问题同样的操作用户、同样的订单类型有的订单保存后有会计凭证有的没有。原因是计划行类别的“结算类型”字段只在“有物料可用性检查且计划行存在”时生效如果行项目里计划行被删掉、或者项目类别变成了“免费项目gift”结算类型就不起作用。解决方法是去 VOV6 检查该订单类型的计划行类别设置确认对应的计划行类别号比如 0004 计划行的“结算类型”字段是“立即结算”同时确认 VBAP-PSTYV 的项目类别是指向这个计划行的不是指向其他计划行。* 排查顺序事务码 VOV8 - 销售订单类型 - 找 ZOR - 查看“计划行确定” - 确认项目类别与计划行类别映射正确 VOV6 - 计划行类别 - 查“结算类型”字段值 - 应为“立即结算”或“发货时结算”5.2 设置“立即结算”后VA01 保存直接报错“科目确定错误”报错信息通常是“消息 V1602科目确定错误请检查销售订单的科目分配”。这背后的原因是你在定价过程里放了“收入科目确定”条件类型 KOFI 或 KOFK但对应的科目确定“销售/普通、现金销售/普通”配置不完整。路径是 VKOA按“应用 - 科目确定过程 - 销售组织/分销渠道/产品组”维度维护。这个错最坑的是赊销订单保存完全正常只有 ZOR 报错因为赊销走的是“应收”配置你配了现金销售走的是“现金”配置你漏了。5.3 VL01N 创建交货单时报错“没有付款承诺”典型场景是“按订单发货时系统提示物料不可用、交货单不能保存”或者“保存时报错付款没有保障”。前面提过交货单类型里“检查付款承诺”字段勾选以后才会触发校验。但更隐蔽的问题是这个校验是“只要有任何一个付款承诺条目”就通过还是“付款承诺金额必须等于订单金额”才通过标准行为是后者金额对不上照样报错。解决方案是在定价过程中配置“付款承诺”条件类型把它的金额设置为和订单总额一致不要手工改小如果业务上允许部分预付那要改用“定金”流程而不是现金销售。5.4 F-29 现金收款时找不到销售订单参考F-29 界面输入客户、金额、过账日期后如果找不到销售订单这个问题的根源是客户主数据里的“统驭科目”设置错误。现金销售的一次性客户在客户主数据里要设置统驭科目为“现金/银行”相关的清算科目而赊销客户统驭科目是“应收账款”。标准的一次性客户用一个科目通常是 999999/000001你不能让现金销售订单和赊销订单共用一个一次性客户编号否则 F-29 的“未清项选择”会去应收账款的未清项里找人当然找不到。5.5 月末发出商品/收入确认差异现金订单与标准订单混用的后果业务团队很难完全按“这个客户必须现金、那个客户必须赊销”来操作经常是同一个客户今天现金付款、明天要求挂账。如果现金订单和赊销订单混用同一个客户客户主数据里的统驭科目会来回切换SAP 会报“客户统驭科目不一致”之类的问题严重时 VA01 保存直接失败。我的建议是一个客户主数据固定一个统驭科目如果这个客户两种模式都要有就在客户主数据里设“现金销售专用统驭科目”并在销售订单类型层面做“付款方式/结算类型”的强制检查——用 ZOR 的订单自动带出现金销售标记赊销客户不许走 ZOR。5.6 特别提醒不要乱动“付款承诺”与“应收借款项”的清账逻辑最后一条算血泪经验有同事为了消除 FBL5N 里一堆未清项直接在 F-28 里把现金销售虚拟应收和一笔银行收款做“手工清账”结果清账后发现“付款承诺”没被清零导致 VL01N 发货时报“付款承诺已存在但已清账”的混合状态单据卡死。清账逻辑上现金销售的凭证生成时系统内部会标记“该凭证为现金销售自动生成”F-29 过账时会自动找这笔凭证清账不需要人工干预。遇到未清项先分析它是怎么产生的再决定冲销还是手工清账不要无脑 F-28。6. 进阶玩法用收入确认时点控制把现金订单从零售复制到项目型业务现金订单不止能处理“一手交钱一手交货”它背后的“结算时点控制”机制可以延伸出三种变体。第一种是“收款时点控制”订单创建时不记账F-29 收款时才记账这用于“先预售、后提货”的场景——在计划行类别里把结算类型改成“收款时结算”并在定价过程中挂一个“收款条件”来触发记账。第二种是“开票时点控制”订单创建和发货都不记账VF01 开票时才生成收入凭证这适用于“先发货、后开票、票到付款”的政府客户或大企业客户他们不接受未开票先收款。第三种是“发货时点控制”订单创建时不记账、发货过账时记账这个适合物流有签收单、财务以物流签收作为收入确认依据的企业。* 三种常见变体的结算类型设置 * 立即结算VA01 保存即记账标准现金销售 * 收款时结算F-29 过账时生成收入凭证预售业务 * 发货时结算VL02N 发货过账时生成收入凭证签收确认收入 * 配置入口VOV6 - 计划行类别 - 结算类型 * 三种取值的实际效果要看“销售订单类型”里的“结算类型增强”是否放开进阶落地时最常见的做法是把“现金销售”和“基于收货的发票”结合VA01 创建现金订单时不记账交货单过账后由 WM 或 QM 环节触发一个“事件”系统根据事件自动开票并记账。这种设计需要启用 SD 的“后续计费计划Billing Plan”功能把收入确认从“订单保存”挪到“事件完成”。它不是标准的“现金订单 V2.0”内容但属于同一套机制上的延伸适合想做“项目型现金业务”的企业。最后说下验证方法上线的验收不应该只看“走通一笔”。我会在项目里做三笔测试第一笔正常现金订单全流程 VA01 - F-29 - VL01N - 发货过账验证收入科目、税额、库存减少三同步第二笔现金订单发货后第二天客户退货验证退货单创建、收款冲销、库存退回三个动作是否一致第三笔客户要求“先付定金、后提货”验证部分付款与尾款清账的金额匹配。三笔都通过这套流程才算稳。做现金订单这几年我最大的习惯就是“每次上线前必测退款”因为现金订单最怕的不是收不到钱而是退了钱单据还挂着账面——希望这篇文章帮你在实施路上少踩几个我之前踩过的坑。本文还有配套的精品资源点击获取
返回列表