简介:这份PPT资料面向SAP MM顾问、集团财务与供应链实施人员,系统梳理公司间采购与内部交易的核心模式,帮助读者理清集团内不同公司、不同工厂之间物料转移的业务逻辑与系统配置思路。内容覆盖工厂间转储(UB转储订单,含带交货单与不带交货单、一步法与两步法)、公司间采购STO、公司间计划协议、跨公司销售、集中采购,以及K寄售、O委外、Q项目等特殊库存场景下的公司间操作与配置要点,并配有系统演示与总结对照表。资源包共1个pptx文件,约26.85MB,以图文与流程演示为主,适合按模块对照学习。目前已有315人学习下载,可作为梳理公司间交易方案、理解移动类型与清账科目借贷关系的参考材料。
1. 公司间采购到底在解决什么问题:从一个反复对账的月末说起
每到月末结账,某制造企业的财务小A就要面对同一件头疼事:A公司向B公司采购了一批物料,两边系统里都有这笔交易,但金额、税额、入库数量总是对不上。采购说货已经收了,财务说发票还没到,销售那边又催着确认收入。这种场景在集团化企业里几乎每月上演,而SAP系统中的公司间采购模式,正是为了把这种跨法人实体的内部交易管清楚而存在的。
公司间采购,简单说就是同一个集团下两个独立法人公司之间的买卖行为。它和普通采购最大的区别在于:买卖双方都在同一套SAP系统里,但分属不同的公司代码,每一笔交易都要同时满足采购方的入库需求和销售方的收入确认,还要保证两边账务能自动对平。适合谁用?集团型企业、多法人架构的公司、有内部供应链协作关系的组织。如果你所在的公司只有一个法人实体,这套东西暂时用不上;但只要涉及跨公司调货、内部结算,它就是绕不开的基础设施。
2. 公司间采购的三种主流模式:从标准到跨公司,选型逻辑在哪
在SAP里做公司间采购,不是只有一条路。不同业务场景对应不同的模式,选错了后面全是补丁。我一般会把它们分成三类:标准公司间采购、跨公司采购、以及带库存转移的采购。下面把每种模式的适用条件和配置要点拆开讲。
2.1 标准公司间采购:买卖双方都在同一系统里的默认解法
标准公司间采购是最常见的一种。它的核心逻辑是:采购方公司代码下创建采购订单,供应商填的是关联公司对应的客户编号,系统通过「供应商-客户」的关联关系,自动在销售方生成一张销售订单。发货、开票、收货、发票校验,两边单据一一对应。
配置上,最关键的是三件事:第一,在采购方供应商主数据里,把「公司间供应商」字段维护成销售方的公司代码;第二,在销售方客户主数据里,把「公司间客户」字段维护成采购方的公司代码;第三,确保两边物料主数据的计量单位、物料组、税码能对上。这三步做完,采购订单保存时系统会自动触发销售订单创建。
" 检查供应商主数据中的公司间标记是否维护 SELECT SINGLE lifnr, kunnr, bukrs FROM lfa1 INTO @DATA(ls_vendor) WHERE lifnr = @lv_vendor_id. IF sy-subrc <> 0. WRITE: / '供应商主数据不存在,检查LFA1表'. ELSEIF ls_vendor-kunnr IS INITIAL. WRITE: / '公司间供应商未关联客户编号,需在BP中维护'. ENDIF.这段代码的作用是快速排查供应商主数据里公司间关系是否配好。lifnr是供应商编号,kunnr是关联的客户编号,bukrs是公司代码。如果kunnr为空,说明采购订单保存时不会自动生成销售订单,这是最常见的翻车点之一。
2.2 跨公司采购:当采购方和销售方不在同一公司代码下的处理
跨公司采购和标准模式的区别在于:采购方下的订单,收货时库存直接进入采购方,但销售方需要单独开票给采购方。这种模式常见于采购方没有销售功能、只负责内部领用的场景。配置上需要额外注意「交货类型」和「开票类型」的映射关系。
具体操作上,采购订单的行项目类别要用标准采购类别,但确认控制里要勾选「公司间」标识。收货时用MIGO做101移动类型,系统会自动生成销售方的交货单。开票环节用VF01创建发票,VF02过账后触发采购方的发票校验。这里有个参数容易忽略:采购订单里的「交货日期」和销售订单里的「计划交货日期」必须留出足够缓冲,否则MRP跑出来的需求日期会打架。
2.3 带库存转移的采购:STO模式与公司间采购的边界
库存转移单(STO)严格来说不算采购,但在实际项目里经常和公司间采购混用。区别在于:STO不产生销售订单和发票,只做库存移动和内部结算。如果集团内部只是调货、不涉及收入确认,用STO更轻量;如果涉及跨法人结算、需要开票,就必须走公司间采购。
选型建议:先问财务三个问题——要不要开票?要不要确认收入?要不要做应收应付?三个都要,走标准公司间采购;只要库存移动,走STO;介于两者之间,走跨公司采购。这个判断顺序能帮你省掉大量返工。
3. 配置落地:从供应商主数据到发票校验的完整链路
模式选完之后,落地就是配置和主数据的事。这一章按实际项目里的操作顺序,把关键配置点串起来。每一步都给出可复现的操作路径和参数说明。
3.1 供应商与客户主数据的公司间关联配置
第一步永远是把买卖双方的主数据关联起来。在SAP里,供应商主数据的「公司间供应商」字段和客户主数据的「公司间客户」字段是配对的。操作路径:BP事务码 → 供应商角色 → 公司代码段 → 公司间供应商字段,填入销售方的公司代码。客户侧同理,在客户主数据的销售区域段里维护公司间客户。
参数说明:公司间供应商字段填的是销售方的公司代码,不是客户编号;公司间客户字段填的是采购方的公司代码。这两个字段填反了,系统不会报错,但后续单据流会断。我一般会用一个简单的检查表:采购方公司代码、销售方公司代码、供应商编号、客户编号,四列对齐后再进系统。
3.2 采购订单到销售订单的自动创建:单据流配置
单据流的核心是「采购订单类型」和「销售订单类型」的映射。在SPRO里找到「物料管理 → 采购 → 采购订单 → 设置公司间采购」,这里定义采购订单类型对应的销售订单类型。常见配置:采购订单类型NB对应销售订单类型OR,采购订单类型UB对应销售订单类型ZOR。
" 查询采购订单对应的销售订单 SELECT SINGLE vbeln, bsart, ernam FROM ekko INTO @DATA(ls_po) WHERE ebeln = @lv_po_number. SELECT SINGLE vbeln FROM vbak INTO @DATA(lv_so) WHERE vbeln = @ls_po-vbeln. IF sy-subrc = 0. WRITE: / '销售订单已生成:', lv_so. ELSE. WRITE: / '销售订单未生成,检查单据流配置'. ENDIF.这段代码用来验证采购订单保存后销售订单是否自动创建。ekko是采购订单抬头表,vbak是销售订单抬头表。如果查不到销售订单,优先检查SPRO里的单据流配置和供应商主数据的公司间标记。
3.3 收货、发票校验与跨公司结算的账务处理
收货环节用MIGO,移动类型101。系统会自动生成物料凭证和会计凭证,采购方记库存增加、应付暂估,销售方记发出商品、收入暂估。发票校验用MIRO,输入采购订单号,系统带出收货数量和金额,过账后生成应付发票。
跨公司结算的关键是「公司间发票」的处理。销售方用VF01开票后,采购方用MIRO做发票校验,两边税额必须一致。常见坑是税码配置不同导致税额差异,解决方法是确保两边物料主数据的税分类一致,并在采购订单里明确税码。
4. 避坑指南:公司间采购最常见的五个翻车现场
这一章全是血泪经验。每个坑都按「现象 → 原因 → 解决」写,方便你对照排查。
4.1 采购订单保存后销售订单没生成
现象:采购订单保存成功,但销售方查不到销售订单。原因:供应商主数据的公司间供应商字段没维护,或者维护的公司代码和销售方不一致。解决:用BP事务码检查供应商主数据的公司代码段,确认公司间供应商字段填的是销售方公司代码。如果填了还不行,检查SPRO里的单据流配置是否激活。
4.2 收货时提示「公司间库存不足」
现象:MIGO收货时报错,提示库存不足或移动类型不允许。原因:销售方的库存地点没有可用库存,或者采购订单的行项目类别不支持公司间收货。解决:先查销售方库存地点是否有库存,再用MB52看库存明细。如果库存有但还报错,检查采购订单行项目的确认控制里是否勾选了公司间标识。
4.3 发票校验时金额对不上
现象:MIRO做发票校验时,系统提示金额差异超过容差。原因:采购订单价格和销售发票价格不一致,或者税码配置不同导致税额差异。解决:先用ME23N查采购订单净价,再用VF03查销售发票金额,逐项对比。如果差异在税额,检查两边物料主数据的税分类和采购订单里的税码。
4.4 跨公司结算时两边账务不平
现象:月末对账时,采购方应付和销售方应收金额不一致。原因:发票校验和销售开票的过账日期不同,或者汇率差异导致本位币金额不同。解决:统一过账日期,确保两边在同一会计期间。汇率差异用OB08检查汇率表,必要时做汇率调整凭证。
4.5 物料主数据计量单位不一致导致数量差异
现象:采购订单数量100个,销售订单显示100箱。原因:两边物料主数据的计量单位不同,且没有维护单位转换关系。解决:用MM03查两边物料主数据的计量单位,在CUNI里维护单位转换关系。如果业务上确实存在不同单位,在采购订单里明确转换系数。
5. 进阶技巧:用查询和报表把公司间采购管起来
配置跑通只是第一步,日常运维要靠查询和报表。这一章给几个我常用的查询和报表技巧,帮你快速定位问题。
5.1 用SE16N快速排查单据流断点
SE16N是查表神器。公司间采购的单据流涉及几张核心表:EKKO(采购订单抬头)、EKPO(采购订单行项目)、VBAK(销售订单抬头)、VBAP(销售订单行项目)、MKPF(物料凭证抬头)、BKPF(会计凭证抬头)。排查时按「采购订单号 → 销售订单号 → 物料凭证号 → 会计凭证号」的顺序查,哪一步断了就查哪一步的配置。
" 按采购订单号串联查询单据流 SELECT a~ebeln, a~bsart, b~vbeln AS so_number, b~erdat FROM ekko AS a LEFT JOIN vbak AS b ON a~vbeln = b~vbeln INTO TABLE @DATA(lt_flow) WHERE a~ebeln = @lv_po_number. LOOP AT lt_flow INTO DATA(ls_flow). WRITE: / '采购订单:', ls_flow-ebeln, '销售订单:', ls_flow-so_number, '创建日期:', ls_flow-erdat. ENDLOOP.这段代码用LEFT JOIN把采购订单和销售订单串起来,ebeln是采购订单号,vbeln在两张表里分别代表采购订单号和销售订单号。如果so_number为空,说明销售订单没生成,回到第4章排查。
5.2 用MB5B和MR11做库存与差异分析
MB5B查库存收发存,适合月末对账时看公司间库存移动明细。MR11做GR/IR清算,专门处理收货和发票之间的差异。这两个事务码配合用,能覆盖大部分公司间采购的库存和差异问题。
| 事务码 | 用途 | 关键参数 |
|---|---|---|
| MB5B | 库存收发存查询 | 公司代码、物料、日期范围 |
| MR11 | GR/IR清算 | 采购订单号、过账日期 |
| ME2M | 采购订单查询 | 采购订单类型、供应商 |
| VF05 | 销售发票清单 | 开票日期、客户编号 |
5.3 自定义报表:用CDS视图做公司间采购全景看板
如果标准报表不够用,可以用CDS视图做一个全景看板。核心思路是把采购订单、销售订单、物料凭证、会计凭证四张表关联起来,按公司代码和会计期间汇总。这样月末对账时一眼就能看出哪笔交易没闭环。
我自己的习惯是:每月结账前跑一次CDS报表,把未闭环的单据导出来,逐笔跟进。这个习惯帮我省掉了大量事后救火的时间。公司间采购的玄学在于,配置对了不代表业务不会出幺蛾子,只有把查询和报表用起来,才能把问题控制在发生之前。希望帮到你。
本文还有配套的精品资源,点击获取