SAP IDOC和EDI应用(1) 基本原理介绍及实例操作

SAP系统之间、SAP系统与外部系统传输业务数据的方法有多种,IDOC、EDI是比较常见的方式。

IDOC(Intermediate Document)是一个数据载体,描述了一个完整的业务对象,用于在同一SAP系统的不同应用之间、不同SAP系统之间、SAP系统与非SAP系统之间交互数据,并触发相应的业务应用。

IDOC的应用场景很多,例如:

  1. 跨公司销售业务,公司间发票通过IDOC触发财务的发票录入;
  2. 跨公司采购业务,公司间发票通过IDOC触发采购订单的发票校验;
  3. 采购订单通过IDOC产生销售订单;

1 IDOC应用示例

IDOC的应用场景很多,不同应用的逻辑基本相同,采购订单通过IDOC自动触发产生销售订单为典型的示例,下面就此典型案例介绍业务场景以及IDOC的操作过程、系统实现。

1.1案例说明

以采购订单通过IDOC自动触发产生销售订单为例,其业务场景如下。

1.业务场景

A、B两公司在同一个SAP系统中,A公司向B公司下达采购订单购买商品,B公司根据A公司的采购订单产生“相同”的销售订单,后续如果该采购订单发生变更,销售订单也应该发生相应的变更。

2.需求分析

我们介绍采购方创建、生成采购订单后,通过IDOC生成销售方的销售订单。

通过公司间采购来实现,只需要采购方创建采购间采购订单,无需销售方创建销售订单。

3.处理流程

IDOC的处理可以分为外向处理和内向处理两个部分:

  1. 外向处理(Outbound Processing),采购订单创建保存后,通过消息类型(如ZNEU)的输出功能,产生IDOC文件。
  2. 内向处理(Inbound Processing),当收到关于采购订单的IDOC文件后,生成销售订单。

1.2业务操作过程

实例讲解IDOC的业务操作过程。

某集团有两个公司,公司SH02为销售中心,公司SH03为某区域性的销售公司,公司SH03向公司SH02采购商品,然后销售给客户。

在SAP中,采购组织SH03向集团内供应商SH02采购商品,采购组织SH03为购买方,因此采购组织SH03在系统中有对应的客户代码(SH03),供应商SH02为售货方,因此在系统中建立对应的销售组织(SH02)。

采购组织SH03向供应商SH02采购数量为10的某物料,触发销售组织SHO2产生对客户SH03的销售订单,数量也为10个,后续修改采购订单,如改变采购数量为20个以及增加一行,将再次触发IDOC,修改相应的销售订单。具体操作步骤如下。

1.采购订单维护

1采购订单维护(ME21N)


如图1所示,”事务代码ME21N在采购组织SH03下维护对供应商SH02的采购订单,采购数量为10个。

 

2.采购订单输出


如图2所示,保存采购订单,生成采购订单:4500000475,单击已经生成的采购订单中的按钮Mesages(消息),可以查看到该采购订单产生两个输出。

2采购订单的输出(ME23N)

 

其中输出类型NEU为打印输出(系统默认的输出类型),用于打印采购订单,输出类型ZNEU为EDI的输出,用于生成IDOC文件,两个输出的状态都为绿色,代表成功输出。

注意:如果采购订单设置为需要审批,则在采购订单审批后,才可以输出。

3.查看采购订单的IDOC文件

如图3、图4所示,单击采购订单界面中菜单中的“Relationships”,可以看到采购订单产生了两个IDOC,一个是出站的IDOC,将采购订单信息转换为IDOC;一个是入站的IDOC,用来产生销售订单。

提示:两个IDOC中,其业务相关的内容基本完全一致。


跨公司采购业务中的公司间销售发票通过IDOC触发采购订单的发票校验,只会产生一个入站(Inbound)的IDOC;这里产生两个IDOC的原因在于一般采购订单应该是发给外部供应商,外部供应商在另外一个不同的系统中。

 

4 采购订单的IDOC界面(ME23N)

 

 

如图4所示,采购订单4500000475产生了销售订单296,双击销售订单号码296,可转到销售订单界面中。

 

4.销售订单与IDOC

 


如图5所示,在销售订单中,同样可以追溯对应的采购订单,双击采购订单编号,则转到采购订单界面中。

5 销售订单与IDOC(VA03)


5.采购订单修改触发新的IDOC如图18-6所示,修改采购订单4500000475中的第一行的数量,从数量10个修改到数量20个,并增加新的一行,保存采购订单。

6 采购订单修改(ME22N)

 

对采购订单修改将触发新的消息输出,如图7所示,查看采购订单的消息输出,产生一组新的消息输出。

 

7 采购订单的输出(ME23N)

这一组消息输出中多出一个“Change”标记,代表本次的输出是修改原来的采购订单,相应的修改原来的销售订单。

再次查看采购订单对应的IDOC,可以看到系统产生一组新的IDOC(一个出站,一个入站),注意此时新产生的IDOC对应的销售订单仍然为原来的销售订单296,具体截图略。

双击销售订单,可以看到销售订单发生同步变更。

 

  • 8
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
SAP IDoc是一种在SAP系统中用于数据交换的标准格式。它是一种结构化的文件类型,用于在不同的SAP系统之间以及与外部系统之间进行数据交互。而Java是一种面向对象的编程语言,具有广泛的应用领域和丰富的开发工具。 在Java中处理SAP IDoc可以采用多种方式。首先,可以使用SAP提供的Java接口来与SAP系统进行通信和数据交换。SAP JCo(Java Connector)是SAP提供的一个Java开发工具包,用于连接和交换数据。通过使用JCo,开发人员可以使用Java编程语言直接与SAP系统通信,并且可以使用IDoc类库来处理IDoc数据。 另外,还可以使用第三方Java库来处理SAP IDoc。一些开源的Java框架,如Apache Camel和Spring Integration,提供了强大的集成能力,可以与SAP系统集成,并处理IDoc数据。这些框架提供了丰富的组件和API,使开发人员可以轻松地处理和转换IDoc数据。 通过Java处理SAP IDoc可以实现多种功能。例如,可以将外部系统的数据转换为IDoc格式并发送给SAP系统,或者从SAP系统接收IDoc数据并进行解析和处理。通过使用Java的强大编程能力,可以在处理IDoc数据时进行验证、转换、映射等操作,以满足特定的业务需求。 总之,SAP IDoc和Java是两个不同的概念,但可以通过使用SAP提供的Java接口或第三方Java框架来实现在Java中处理SAP IDoc的功能。这种结合可以实现SAP系统与外部系统之间的高效数据交换和集成,为企业提供更好的业务流程支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李威威wiwi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值