一、 概述
很多项目中,特别是集团型公司,生产总部在某地,但是在各个省会城市,乃至国外都有相应的贸易公司,特别是国外,此时贸易公司接到客户采购订单,但是贸易公司没有库存,甚至没有生产能力,因此需要生产公司进行生产和发货,对于此业务SAP有两种方案:
- 使用STO公司间采购,该业务为外部客户给贸易公司下采购需求,贸易公司给生产公司下采购订单,该采购订单直接通过IDoc转出来生产公司给贸易公司的销售订单,并发货给贸易公司,贸易公司给外部客户再下销售订单,并发货给外部客户。该模式的有点为凭证齐全,每一笔凭证都有单据支持,审计时无需过多纠结。
- 使用公司间销售,外部客户给贸易公司下采购需求,贸易公司下销售订单给外部客户,此时订单行项目【交货工厂】选择同一个集团的生产公司工厂,由生产公司跑MRP进行生产,并直接发货给外部客户,然后跟贸易公司结算,贸易公司跟外部客户结算。一张销售凭证对应两张发票。
本文为模式2,公司间销售的简介
该模式,当销售公司和生产公司不在同一集团时,就是第三方销售的模式。
上述方案1和方案2的具体区别
注意:公司间销售,对于销售公司,不会产生对交货公司的付款凭证,可以手工录入,也可以通过配置 EDI 自动生成付款凭证。
曾经面试的时候有被问到过这个问题。
二、配置
1. 分配销售组织-分销渠道-工厂
【IMG】SPRO-企业结构-分配-销售与分销-分配销售组织 - 分销渠道 - 工厂
因为 5521 销售组织需要直接销售 5510 工厂的货,所以需要在这里进行分配。否则在销售凭证中,5521销售组织无法选择到5510交货工厂。
2. 分配销售区域到销售凭证类型
【IMG】SPRO-销售与分销-销售-销售凭证-销售凭证抬头-将销售范围分配到销售凭证类型
先进行【组合销售组织】、【组合分销渠道】、【组合产品组】;最后再【分配销售范围允许的销售订单类型】。
该配置限定那些销售范围能下那种订单,避免用户下错订单类型。
3. 定义并分配定价过程
公司间销售使用默认的定价过程 RVAA01,在此仍然使用默认的定价过程。
【IMG】SPRO-销售与分销-基本功能-定价-定价控制-定义并分配定价过程
4. 创建外部客户
为销售公司代码 5520 创建外部客户,销售范围是 5520/10/01,BP/XD01 创建客户。
可以录入一个交货工厂,也可以不录。
5. 物料主数据
需要针对销售公司及交货公司分别创建物料主数据。
销售公司
销售公司需要维护销售、成本、MRP 视图。
交货公司
交货公司需要维护成本、MRP 等视图。在这里,统一进行维护销售视图。
6. 定义公司间开票的订单类型
6.1 定义公司间开票的订单类型
【IMG】SPRO-销售与分销-开票-公司间出具发票-定义公司间开票的订单类型
在这里设置每个销售订单类型对应的公司间开票发票类型,同时也可以在【销售凭证类型定义】中设置。
6.2 按工厂分配组织单位
【IMG】SPRO-销售与分销-开票-公司间出具发票-按工厂分配组织单位
在这里,设置每个工厂在内部交易时,所使用的销售组织和分销渠道。
6.3 按销售组织定义内部客户号
【IMG】SPRO-销售与分销-开票-公司间出具发票-按销售组织定义内部客户号
定义每个销售组织在内部交易中,所对应的客户编号。
7. 应付发票 IDOC 配置
公司间销售 VF01 会产生两张发票:
1、销售公司对最终客户的发票;
2、生产公司对销售公司的应收发票。
但欠一张销售公司对生产工公司的应付(MIRO)发票。这个发票可以通过配置 IDOC 自动生成。
7.1 输出确定配置
【IMG】SPRO-销售与分销-基本功能-输出控制-输出确定-使用条件技术的输出确认-维护开票单据的输出确定
7.1.1维护输出类型
默认使用 RD04 输出类型。
使用事务:NACE也可以进入配置页
如上上图,选择 RD04,双击【处理程序】
7.1.2 为合作伙伴功能分配输出类型
7.2 维护输出确实过程
使用默认 V40000 过程
选择后点击左侧【控制数据】
7.3 分配输出确定过程
7.4 VV31 维护输出记录
8. 创建 RFC 连接-SM59
8.1 建立RFC连接
【IMG】SAP 菜单-后勤-后勤执行-内部仓库处理-和外部系统通讯-ALE 管理-运行时设置-维护 RFC 目标(SM59)
一般BASSIS会设置好
创建一个 ABAP 连接
如下图:
连接类型:3
目标主机:电脑名称
系统编号:SAP 系统编号,这里是 00。
IP 地址:输入【目标主机】系统自动带出。
输入【语言】、【客户端】、【用户名】、【密码状态】,这里选择【当前用户】。
输入完成后,保存,点上方的【连接测试】可以看到配置是否成功。
8.2 建立 IDC 端口
【IMG】SAP 菜单-后勤-后勤执行-内部仓库处理-和外部系统通讯-ALE 管理-运行时设置-端口维护(WE21)
版本:SAP 4.x 版本的 IDoc 记录类型
RFC 目标:Z02。SM59 创建的 ABAP 连接。
8.3 创建合作伙伴 KU
【IMG】SAP 菜单-工具-ALE-ALE 管理-运行时-设置-通讯伙伴参数文件(WE20)
合作伙伴编号:这个客户表示收票方(销售公司在生产公司中所对应的客户代码,卖方开票,买方收票),也就是咱们在配置消息类型输出的时候合作伙伴的类型的一个具体的客户编码,这个是站在发货工厂的角度去看的,也就是EDI 输出的 BP 合作伙伴的编号;如果站在收票方的角度,要根据这个收票方找到具体记账的公司代码才行,也就是一定会有一个对照关系转换表;同理,收票方要根据发票的出具方找到供应商编码才行,也就是开票方才行,这样的对照关系一定要有,并且在产生的 IDOC 文件里面有字段来标记;收票方会自动从 IDOC 文件的相关字段里面获取。
代理人:这里可以是 SM59 中设置登录的用户名。
还需建立出站参数
消息类型:这个可以自己开发,也可以使用标准的。比如 INVOIC 表示开票行为。
接收方端口:就是 WE21 建立的端口号,idoc 文件就存在此端口内
输出模式:立即转换 IDoc
IDoc 基本类型:
这个 RD04 就是我们建立的输出类型,处理代码就是产生 idoc 的代码。
8.4 创建合作伙伴 LI
【IMG】SAP 菜单-工具-ALE-ALE 管理-运行时设置-通讯伙伴参数文件(WE20)
合作伙伴编号:批的是生产工厂做为销售公司的供应商代码
8.5 自动过账到供应商科目(WEL1)
【IMG】SPRO-销售与分销-开票-公司间出具发票-自动过帐到供应商科目(SAP—EDI)
TCode:WEL1
逻辑地址为生产公司+内部客户,中间补零,若客户编号较长,则补零较少
9. 定义自动过账参数 OBCE
【IMG】SPRO-财务会计(新)-应收账款和应付账款-业务交易-收进发票/贷项凭证-电子数据传输-输入程序参数给 EDI 发票收据(OBCE)
10. 为 EDI 接收发票分配公司代码 OBCA
【IMG】SPRO-财务会计(新)-应收帐款和应付帐款-业务交易-收进发票/贷项凭证-电子数据传输-为 EDI 收进发票分配公司代码(OBCA)
11. 为 EDI 程序分配总帐科目 OBCB
【IMG】SPRO-财务会计(新)-应收帐款和应付帐款-业务交易-收进发票/贷项凭证-电子数据传输-为 EDI 程序分配总帐科目(OBCB)
主营业务成本的税务类型必需为*,否则会出现如下错误:“字段 BSEG-MWSKZ . 在屏幕 SAPMF05A 0300 上不存在。”
下面这一步不是必须的。实际上 IDOC 生成的凭证,调用了供应商档案中对应的统驭科目。
12. 为 EDI 程序分配税码
【IMG】SPRO-财务会计-应收帐款和应付帐款-业务交易-收进发票/贷项凭证-电子数据传输-为 EDI 程序分配税码(OBCD)
注: 税率要保留小数后 3 位小数,否则 IDoc 会包 51 错,报错内容为"对 X1 和增值税 17.000 指定一个新的税务代码是不可能的"。
13. 主数据维护 VV31
补充说明
1、跨公司销售和发票拆分
当 VOV7 设置销售订单行项目类别的开票相关为 K,则对客户的开票能部分开票,但是公司间的开票不支持行项目拆分开票。
2、跨公司销售中的开票顺序
开票时系统默认优先开对客户的发票,然后再开公司间发票,如果需要先开公司间发票需要如下操作:
① VF04 设置默认的发票类型为 IV
② VF01 手动选择发票类型为 IV
3、跨公司销售与财务
采用跨公司业务时,理论上对客户的系统发票和对内部客户的公司间发票应当在同月,这样符合成本和收入匹配的原则。
14. 重新发送错误 IDOC
如果出现 IDOC 错误,可以用如下方式进行处理。
首先用 WE02 查看错误的 IDOC 号码。如下 WE02 界面,红灯代表错误。可以双击该 IDOC 编号,查看错误提示。
进行 TCode:BD87,如下图,输入要处理的 IDoc 号码。
如下图可以看到错误的提示,点【处理】按钮。
处理成功后,系统提示过帐信息。
15. 删除错误 IDOC
执行事务代码 BD87。输入需要删除的 IDOC 号进行查询。
如下所示,选择错误的提示,点击菜单【编辑】-【限制和处理】。
如下所示,取消【后面处理】的勾选(这一步很重要,一定要取消)。
弹出如下界面,点【删除标记】。
系统提示是否删除,点是。IDoc 将被删除。
WE02 查看 Idoc 单据状态。状态已经变成 68。
16. IDOC 异常处理
产生的 IDOC 可能会失败
状态 02: 处理 T-CODE:BD83
状态 30: 处理 T-CODE:WE14
或者使用 BD87, 查看 IDOC 状态, 对有问题的 IDOC 可以点击处理来再次发送。
假如发送成 功状态会更新为黄灯或绿灯,黄灯(为准备好发送)也可以在次处理变为绿灯。
三、 前台操作
1. 配置条件记录
公司间销售的销售凭证有两个价钱,一个是对应外部客户的销售价钱,另一个是对应内部的销售价钱。
外部客户价钱使用 PR00,内部销售价钱是 PI01。
在这里必须创建 PI01 价钱,默认的 LF 交货到 IV 发票的复制控制,是不会带手工输入的 PI01 价钱的,除非更改复制控制配置。
VK11 创建条件记录。
如下图,外部销售价钱为 2.0。
如下图,内部的交易价钱是 1.5。
2. 创建销售凭证
VA01 创建销售凭证,直接使用销售公司的【销售范围】如下图。
如下图,输入交货工厂(如果客户档案或物料主数据中配置了,这里会自动带出)
查看《条件》页签,可以看到系统带出来 PR00、PI01 两个价钱。PI01 用于公司间销售开票使用。
3. 物料需求计算
使用 MD04 进行物料需求计算。
可以看到,需求产生在 5510 交货工厂中。销售公司 5520 没有需求。
4. 创建交货
利用 VL01N 创建交货,在《财务处理》中,有两个出具发票相关,上一个是外部销售的发票,下一个是指公司间开票。
5. 开具发票
使用 VF01 开具发票(也可以用 VF04 进行开票)。
默认开具外部发票,然后开具公司间发票。
开具外部发票:输入发货单号,回车。
如下图所示,显示的为 PR00 价格,付款方是 A00263 为外部客户。
开具公司间结算发票:
VF01,如下图,在【开票类型】中,选择“IV 公司间出具发票”。
如下图所示,使用的价格是 PI01 的内部价,【付款方】为 5520,为内部公司代码所对应的客户。
使用 VF02 查询这张公司间发票时,可以看到发货工厂所使用的销售范围。
6. 查询开票状态
VL02N 查看发货单的开票状态,可以看到两个发票都开了。
7. IDOC 产生应付发票
VF02 选择 IV 公司间发票。点击【转到】-【表头】–【输出】,弹出如下界面
选择 RD04,点【处理日志】
8. 查询 IDOC
后续可以用 WE02 查询分析 IDOC 号。对传输不成功的可以用 BD87 重新传输 IDOC。
如下为 WE02 查询 IDOC 记录,绿灯代表已产生会计凭证,并且过帐,双击后,下方可以看到会计凭证。可在总帐中查询。
9. 查询会计凭证 – FB03
系统产生凭证的会计分录为:
借:主营业务成本
贷:应付帐款
贷:进项税
点击【 抬头】可以看到对应的公司间发票号码。
10. 冲销发票
对于 VF09 冲销的发票,也需要输出 RD04,会产生一张冲销的应付发票。
如下图就是整个业务的凭证流