拓冰建站拓冰建站
首页 / 资讯中心 / 正文

SAP SD跨公司销售实战:Z006订单配置、两次开票与IDOC自动过账

简介面向SAP后勤顾问、财务模块实施人员及内部顾问这份SAP跨公司销售业务流程与后台配置文档聚焦集团内公司间交易场景当接单公司库存不足时可通过跨公司销售订单实现“一次下单、直接发货”避免重复采购与漫长交期。文档以客户1192采购乙草胺原药为实例完整走通销售订单Z006、VL01N创建交货单、ZF2对客户开票与ZIV公司间开票并通过对物料凭证移动类型601和会计凭证的核对厘清两公司间成本价一致性与账务勾稽关系。后台配置部分覆盖订单类型、销售区域分配、项目类别、计划行类别、交货单类别、开票类型以及输出确定过程RD00/RD04还包含WE20合作伙伴参数设置与IDOC端口配置可按路径逐项落地。资源共1个DOCX文件压缩包约1.55MB文字与截图配合紧密适合实施和运维人员查阅复用。目前已有160人学习下载。1. 跨公司销售流程一张 Z006 订单把化工缺货和农化发货变成一次操作做 SAP SD 的人基本都遇到过这种场景客户下单了自己公司库存却不够集团兄弟公司有货。按常规思路是先做公司间采购再给客户发货但采购流程走下来交期早就过了。跨公司销售Intercompany Sales就是为这个场景设计的——销售公司接单、工厂公司发货一张销售订单同时触发销售和采购两条链。我手里这份文档恰好是这种场景的完整实战记录以化工缺货、农化发货的真实业务为例把 Z006 订单类型从下单到交货、从两次开票到 IDOC 自动过账的链路和后台配置全部串了一遍。适合刚接手 SD 模块配置的顾问也适合被公司间业务对账折磨过的财务和运维。2. 业务全景与单据流一张订单从下单到过账货、单、账分别走什么路2.1 货物流客户向化工下单交货单发货工厂却是农化理解跨公司销售第一件事是把“业务关系”和“货物关系”分开。客户 1192 与化工签购销合同要乙草胺原药 1000KG——这是业务关系化工是售达方和开票方。但化工的乙草胺工段停产库存不足农化有货——这是货物关系农化是实际发货方。文档里的流程图正是这个走向客户向 A-1 公司购买A-2 公司发货直观理解就是“销售公司收钱、工厂公司出货”。关键点在于整个流程只下一张销售订单不再单独创建采购订单。跨公司销售机制会在后台自动生成一张采购凭证把“化工从农化采购”这个动作系统化完成。用户只需要在 VA01 里录入 Z006 类型订单客户填 1192工厂填农化 2000价格按两份维护——ZPR2 是化工卖给客户的价格ZI01 是化工从农化采购的成本价。一张订单上两个价格同时生效这本身就是跨公司销售区别于普通销售订单的标志。后面每一步操作都会围绕这三个主体展开客户、化工销售公司、农化发货工厂。其中农化在系统里身兼两职——对化工来说是“供货工厂”但在公司间交易里它同时是化工的“供应商”。这个双重身份是理解后面所有配置的钥匙。2.2 单据流销售订单 → 交货单 → 两张发票单据流比货物流多一层。销售订单 Z006 创建后交货环节并不是常规的“销售公司发货”。VL01N 创建交货单时系统自动带出的发货工厂是农化2000而不是下达订单的化工。注意看图上的提示发货工厂购货客户这一行农化既是发货方又是化工的购货客户。这里容易理解偏——不要试图手工把工厂改成化工跨公司销售的交货单本来就该挂在工厂公司名下。交货单创建后点发货过账PGI查看物料凭证时移动类型是 601。这一点很多新手会疑惑跨公司发货不是应该走 303 或库存转储吗其实跨公司销售在发货环节就是正常的销售发货 601公司间的“采购”关系靠后续开票和 IDOC 通信解决不靠库存转储单。与物料凭证对应的会计凭证也全部在农化2000产生化工这边没有库存移动只有应收应付。开票环节是这个流程最特别的地方——需要开两次票。第一次是化工对客户开票确认对客户的销售收入和成本第二次是农化对化工开票确认公司间销售和化工的采购成本。两次开票都针对同一个交货单但开票类型不同对应的输出确定过程也不同。后面第 4 章专门拆这个。2.3 凭证流物料凭证在农化会计分录也在农化化工收到什么用文档里的实例走一遍账化工下单时ZPR2 是给客户的销售价ZI01 是化工采购农化的成本价。农化发货后601 移动类型的物料凭证产生在 2000 农化农化的会计凭证同样在 2000 农化——农化确认对化工的销售收入ZI01同时结转自己的库存成本。化工这边此时未产生物料账直到第二次开票完成后化工才在后台通过 IDOC 自动收到一张采购凭证文档中示例为凭证 0100000010此时化工才确认采购入库和应付农化。把这三层串起来就是全貌货从农化直达客户订单挂在化工名下发票两张化工→客户、农化→化工账务分别记在两家公司。底层靠的是 Z006 订单类型里定义的“公司间开票”标记和定价过程。配置层面差一步整个链条就断——这也是这份文档后台配置部分存在的意义。3. 后台配置Z006 订单类型、项目类别与计划行一步一步配出来3.1 定义销售凭证类型 Z006并分配销售区域跨公司销售的起点是销售凭证类型事务代码 VOV8路径在销售与分销 → 销售 → 销售凭证 → 销售凭证抬头 → 定义销售凭证类型。文档里定义的 Z006 与标准订单类型的主要差别有两个一是允许公司间开票二是指定了两套定价过程——正常开票的定价过程和公司间开票的定价过程。具体配置时在 VOV8 里复制一个标准订单类型如 OR另存为 Z006。重点看“常规”标签页里的两个字段一个定义正常开具发票的定价标识符一个定义公司间开具发票的定价标识符。以这份文档为例Z006 对客户开票用 ZF2公司间开票用 ZIV对应的定价过程分别处理 ZPR2 和 ZI01 两个条件类型。顺序别做反。先定义 Z006 类型本身再执行“分配销售区域到销售凭证类型”事务代码 OVZJ路径指到分配销售区域。漏掉这一步VA01 里销售区域下拉框就找不到 Z006。分配界面维护的是“销售范围 订单类型 项目类别”的组合允许关系后面分配项目类别时同样依赖这张表。配置过程中VOV8 里“项目类别”相关字段会影响订单行项目的默认值。如果 Z006 没有在项目类别层面对应上一个行项目类别创建订单时行项目会出现“无项目类别”报错这是新手最常卡住的第一关。3.2 项目类别 Z006 与计划行类别 ZP11项目类别决定订单行项目的行为路径在销售与分销 → 销售 → 销售凭证 → 销售凭证项目 → 定义项目类别事务代码 VOV7。文档中把项目类别也命名为 Z006与标准项目类别 TAN 基本一致没做特殊变更。创建 Z006 项目类别时把标准项目类别 TAN 复制过来是最省事的做法。注意界面里有一个“是否产生成本”字段——这个字段直接决定订单/交货单出具发票时的成本确认方式。跨公司销售场景下这个字段要保持和标准销售项目一致否则后续 CO-PA 或获利能力分析取不到数。项目类别定义好之后进入“分配项目类别”路径销售凭证项目 → 分配项目类别把 Z006 项目类别分配给 Z006 订单类型。分配界面有四个字段需要看明白字段作用配置值销售凭证类型限定哪种订单类型可用此项目类别Z006来自物料的项目类别物料主数据默认项目类别按需如 TAN该行项目用途说明行项目扮演的角色标准销售若定义了多个行项目类别的优先级多类别匹配时的选择顺序按业务需要3.3 计划行类别 ZP11 与交货单类型 Z006计划行类别控制交期和可用性检查路径在销售与分销 → 销售 → 销售凭证 → 计划行。文档中定义的计划行类别是 ZP11这里按常规做法复制标准的计划行如 CP改名为 ZP11 即可。计划行的关键配置是“可用性检查规则”它决定是否做 ATP 检查。跨公司销售场景中交货工厂与销售工厂不同可用性检查要按发货工厂的库存来跑如果设错会发现可用性检查永远报缺货。下一步是交货单类型。路径在后勤执行 → 装运 → 交货 → 定义交货类型事务代码 OVL2。文档中定义的跨公司销售交货单类型同样是 Z006它和标准交货单 LF 的关键区别在于订单类型 Z006 对应的交货单被限定为交货类型 Z006并且“定义发货移动类型”字段配置的是 601。配置项标准交货单Z006 跨公司交货单交货类型LFZ006发货移动类型601601订单是否进行可用性检查按策略按策略需覆盖到工厂 2000“订单是否进行可用性检查”这个字段表面看是个开关实际上跨公司销售场景里它影响的是交货单创建时的可用性检查策略。如果配置时没有把工厂 2000 加入检查范围就会出现“明明农化有库存系统却提示交货数量超过可用量”的怪象。3.4 交货单行项目类别与项目类别确认定义交货单行项目路径在后勤执行 → 装运 → 交货 → 定义交货单行项目事务代码 OVLP。这里把 Z006 交货类型对应的行项目类别定义出来。之后是关键一步——“在交货时定义项目类别确认”事务代码 OVLR。项目类别确认就是告诉系统当交货单复制自销售订单 Z006 时交货单行项目应该采用哪个项目类别。文档里明确提示了项目类别确认时要注意的几个字段项目类别、来自物料的科目确定、用途说明、优先使用项目。其中“是否允许过量交货”这个开关要特别留意——跨公司销售如果允许过量交货意味着农化多发一点货化工就得按多发量跟农化结算两边的发票数量和交货数量不一致时财务对账会非常痛苦。常规做法是关闭过量交货。4. 两次开票与 IDOC公司间结算怎么自动产生采购凭证4.1 第一次开票化工对客户用 ZPR2 确认销售收入交货单发货过账后进入开票环节。VF01 针对交货单开票时Z006 类型交货单要开两次票顺序不能乱。第一次开票化工对客户 1192 开票开票类型为 ZF2。这张发票上的价格是 ZPR2——化工卖给客户的销售价。它同时确认化工的销售收入和销售成本成本结转的凭证会带上“对农化的采购成本”属性。文档示例中这张票据保存在 9100002849查看会计凭证时可以看到收入确认在化工账上。这次开票的输出确定过程是 V10000输出类型 RD00。注意 RD00 的特点是“仅打印输出不会使用 EDI”——因为这是对客户的发票不需要生成 IDOC 给集团内其他公司。如果把输出类型配成 RD04系统会尝试生成 IDOC反而多出无用消息这是配置层面最常见的画蛇添足。4.2 第二次开票农化对化工用 ZI01 确认公司间销售第二次开票仍然针对交货单 8100002918但开票类型切换为 ZIV由农化对化工开票。这张发票的价格是 ZI01——农化销售给化工的价格也就是化工给客户的成本。文档中票据号 9100002850查看会计凭证时可以看到农化确认了对化工的销售收入。这次开票的输出确定过程是 V40000输出类型 RD04。RD04 的特征是“进行 EDI 传输”。当这张公司间发票保存并过账后系统会自动生成 IDOC通过配置好的端口发送给化工化工侧接收到 IDOC 后自动过账生成采购凭证。从系统操作上看两张票分别开但用的都是同一个交货单号。所以 VF01 里第一次开票完成后第二次进入时还能看到同一交货单仍可开票——这正是“一张交货单、两次开票”的系统表现。4.3 公司间价格一致性为什么两张票的 ZI01 必须相同文档里着重强调了一个原则两票据 ZI01 必须保持一致。第一张票化工对客户里 ZI01 出现在成本行第二张票农化对化工里 ZI01 出现在收入行。前者是化工的采购成本后者是农化的销售收入——它们本来就是同一笔交易的镜像如果数值对不上化工账上的采购成本与农化账上的销售收入的抵销分录配不平两家公司的账务核对就是一笔烂账。保证一致性的常规做法是销售订单里维护好 ZI01 条件记录开票时不要手工改价。如果公司间价格变了去 VK11 维护新的有效期间价格而不是直接在发票里改。手工改价格意味着系统里的单据历史和定价记录完全脱节事后审计或者对账根本说不清。4.4 输出配置RD00 与 RD04 的分工以及存储顺序 004输出配置的完整路径销售与分销 → 基本功能 → 输出控制 → 输出确定 → 使用条件技术的输出确认 → 维护开票单据的输出过程。这里有两层配置输出类型层RD00 和 RD04 是两个独立的输出类型。RD00 访问存储顺序 004只做打印RD04 也访问存储顺序 004但做 EDI 传输。存储顺序 004 里面仅且只有一个表通常是 A001 条件表系统按存储顺序依次读取条件记录找到第一个匹配的输出就停止。输出确定过程层V10000 分配给 ZF2对客户发票V40000 分配给 ZIV公司间发票。在“分配输出确定过程”里把发票类型和输出过程对应起来。配置对照如下发票类型用途输出过程输出类型是否 EDIZF2化工对客户V10000RD00否ZIV农化对化工V40000RD04是IDOC 的触发链路是ZIV 发票过账 → 输出类型 RD04 → 按存储顺序 004 找到条件记录 → 触发 IDOC 生成 → 由端口和伙伴参数发送。任何一环断了公司间发票就只能干瞪着不产生采购凭证。4.5 WE21 端口与 WE20 伙伴参数IDOC 送达的最后一公里IDOC 配置集中在 WE21 和 WE20 两个事务代码。WE21 设置端口文档中的端口名是 A000000001描述为“Inter company billing 公司间结算”版本选 SAP 4.x出站方向需要配置功能模块 EDI_PATH_CREATE_DATE_TIME出站触发器里指定 RFC 目标 FINBTRECPCLNT800。RFC 目标指向的就是目标系统——在这个例子里是化工系统也就是说农化的 IDOC 通过这条 RFC 直接打到化工那边执行过账。WE20 配置合作伙伴参数伙伴类型选 KU客户创建一个客户的伙伴配置文件把公司间客户化工在农化系统里的客户编码维护进去。消息类型要保持与输出类型 RD04 触发的 IDOC 类型一致并且把“出站处理”里的处理模式设为“立即传输”——如果设成“后台作业”或“手动”IDOC 不会自动触发采购凭证过账这就是不少项目上线后公司间发票挂在那里一直不结算的原因。最后用 FB03 查看那张自动过账的采购凭证。系统提示“凭证 0100000010 已经过账完成”这时候化工侧才真正完成了对公司间采购的确认——这一步是 IDOC 全链路生效的最终信号。5. 跨公司销售配置避坑指南五个常见翻车点与排查方法5.1 坑 1发货工厂带错交货单挂在化工名下现象VL01N 参照销售订单创建交货单时系统带出的工厂是化工不是农化。发货过账时报库存不足或者提示“物料在工厂中不存在”。原因销售订单行项目里没有正确维护“供应工厂”或者“装运工厂”。跨公司销售订单与普通销售订单的差异隐藏字段没被填上系统只能默认使用销售公司的工厂。解决回到 VA02 修改订单行项目确认“装运”页签里的工厂是农化2000。如果交货单已创建VL02N 里修改工厂后重新做可用性检查。此后检查物料主数据在 2000 农化的库存和视图状态确保物料主数据扩展到了 2000。5.2 坑 2公司间开票类型没配 EDI采购凭证始终不生成现象农化对化工开完公司间发票后等了很久化工侧依然没有自动生成采购凭证。WE02 查不到任何 IDOC 记录。原因ZIV 发票的输出确定过程配成了 V10000而 V10000 只包含 RD00 打印输出类型根本没有 EDI 触发逻辑。开票时系统压根没想过要生成 IDOC。解决检查分配输出确定过程的配置。ZIV 必须指向 V40000确保输出类型 RD04 在发票过账时被触发。改完配置后用 VF02 重新执行输出确定系统会重新生成 RD04 输出再手动触发一次 IDOC 发送即可。5.3 坑 3ZI01 金额两边对不上财务对账差一分都查半天现象月结对账时发现化工账上的采购金额和农化账上的销售金额差几条数据怎么调都不平。原因开票时手工修改了公司间价格或者 VK11 公司间定价条件记录维护时间比订单晚导致两张发票取到的 ZI01 不一致。解决先看两边的会计凭证行项目里的 ZI01 金额定位是哪一笔不一致。如果差异来自手工改价红冲重开如果来自定价记录时间问题补维护 VK11 后重新开票。从那以后我每次开公司间发票前都先查一遍 ZI01 的条件记录确认价格有效期间覆盖当前日期再开票这个习惯一直保持到现在。5.4 坑 4销售区域没分配到 Z006建单时订单类型不可用现象在 VA01 里输入销售区域后订单类型下拉框找不到 Z006甚至直接报“销售凭证类型 Z006 不可用”。原因定义完 Z006 之后漏掉了“分配销售区域到销售凭证类型”这一步。订单类型在系统里存在但没有对指定的销售区域开放。解决执行 OVZJ把 Z006 分配给对应的销售范围销售组织 分销渠道 产品组。这一步和定义凭证类型最好连续做成一个检查清单尤其在做系统复制或跨 client 传输时对象在、权限在、分配丢了是这个坑最常见的变体。5.5 坑 5IDOC 发出去了但化工收不到状态一直停着现象WE02 里能看到 IDOC 记录状态一直停在“等待传递”或者传输失败。化工侧业务说一直没看到采购凭证。原因三个环节逐一排查——一是 WE21 端口里的 RFC 目标不对或目标系统不可达二是 WE20 伙伴配置文件里的消息类型与 RD04 实际生成的 IDOC 类型不一致三是输出类型 RD04 的伙伴配置文件里没配到对应的客户编码。解决按顺序查。先 SM59 测试 RFC 目标连通性再 WE20 检查伙伴类型 KU 下是否维护了正确的客户编码和 IDOC 消息类型最后回 VF02 看该票据的输出行里 RD04 对应的合作伙伴编号是否正确。IDOC 这东西一旦配错不会报业务错误都是静默失败所以只能靠状态码一层层剥。6. 端到端验证清单一套事务代码把跨公司销售全流程跑通6.1 验证前检查清单配完一套 Z006与其相信“看起来没问题”不如用测试订单完整跑一遍。跑之前按下面这个清单把前置条件确认好检查项事务代码确认结果Z006 订单类型存在并分配销售区域VOV8 / OVZJ销售区域可选用项目类别 Z006 已分配VOV7 / VOV6行项目类别正常带入计划行 ZP11 已分配VOV4 / VOV5无“无计划行”报错交货类型 Z006 与移动类型 601OVL2发货过账正常开票类型 ZF2 / ZIV 输出过程正确VF01 / VF02RD00 与 RD04 各归其位公司间定价 ZI01 有效VK11条件记录覆盖测试日期端口与伙伴参数WE21 / WE20RFC 目标可用6.2 完整验证路径从 VA01 到 WE02 的一串事务代码测试数据建议用一套独立的客户 物料别污染正式数据。下面这条路径我在每次配置迁移后都会完整走一遍# 1. 创建跨公司销售订单 VA01 # 订单类型选 Z006售达方填测试客户工厂填 2000农化 # 维护 ZPR2销售价和 ZI01公司间价 # 2. 创建交货单并过账 VL01N # 参照销售订单确认交货工厂是 2000 农化保存后点“发货过账” # 查看物料凭证移动类型应为 601 # 3. 第一次开票化工对客户 VF01 # 开票类型 ZF2确认价格 ZPR2保存 # 检查会计凭证收入在化工 # 4. 第二次开票农化对化工 VF01 # 开票类型 ZIV确认价格 ZI01保存 # 注意观察系统是否提示已生成采购凭证 # 5. 检查 IDOC 状态 WE02 # 查公司间发票产生的 IDOC确认状态为“已过账” # 6. 验证化工侧采购凭证 FB03 # 查看 IDOC 自动过账产生的采购凭证示例 0100000010 # 确认数量等于 1000 KG金额等于 ZI01 * 数量几个重点验证位第 2 步的发货过账确认移动类型是 601不是 303第 4 步保存后立即去 WE02 查 IDOC别攒到最后一起查方便定位问题环节第 6 步对金额要和第 4 步的发票金额完全一致。如果第 4 步保存后没看到采购凭证生成提示优先怀疑 RD04 输出没触发用 VF02 进票据 → 表头 → 输出手动执行输出确定再回 WE02 看 IDOC。如果 RD04 触发了但 IDOC 状态是错误按第 5 章的排查顺序走。这套验证流程我每换一个 client、每做一次传输请求后都会强制跑一遍不跑不放心。跨公司销售的坑不在于配置有多难而在于单点断链——一张订单、两次开票、一段 IDOC任何一个环节配置漂移都会让业务和财务同时陷入僵局。希望这篇实战拆解能帮你在配置和排错时少走几段弯路。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门