FavoriteLoading
0

SAP IDOC 开发入门

[隐藏]

1, 基本概念

IDOC技术在早起版本的R/3系统就已经集成了,不过国内真正用起来还是05年以后了,其实IDOC是很强大的,在主数据和一些业务数据同步方面,几乎不需要做任何开发就可以配置完成,例如BD11,BD13这些事务就是已经做好的。

但是IDOC的整个配置,涉及了远程连接、ALE、消息控制、tRFC等技术的集成,所以要从整体架构上理解IDOC还是需要一些时间的。

IDOC支持异步、同步,可以收集一定数量的包后再发送,最重要的是,IDOC有完整的一套监控系统和错误处理机制。

IDOC支持SAP 系统集团之间,SAP-CRM/SRM/PI等之间,SAP-第三方系统之间的集成

通过系统预定义的IDOC类型,我们可以配置自动收集IDOC,挂JOB定时发送;也可以配置消息控制,例如采购订单,可以在创建后立即通过IDOC发送出去。

基于IDoc的应用技术有:

ALE(Application Link and Enabling)是SAP专门为SAP与SAP之间所设计的整合中间件,多用于同一个企业中不同SAP系统之间的数据交换,通过IDoc格式的数据创建分布式系统 。ALE从SAP 3.0版本开始就作为SAP整个应用体系的一部分,分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务,使SAP与SAP的业务流程之间数据能够有效的交换,为两个独立的SAP系统提供整合服务。不过随着应用的发展,ALE接口机制也成为了其它非SAP系统的标准整合方式。

EDI(Electronic Document Interchange,电子数据交换)其实就是采用标准格式的电子数据,用于在通讯网络中在业务伙伴间交换业务文档所用。你可这样理解EDI,就是大家都按相同的排列放置数据到一个数据文档中,并按相同的排列解析此文档以得到所需的内容。 EDI又被叫做无纸化交换。

IDoc(Intermediate Document,中转文档)是SAP提供的系统整合专用的数据/消息格式,它通过ALE方式来进行交换,而SAP就是IDoc提供了EDI的支持,你也可以把IDoc认为是EDI的一个实现。

IDoc的事务码比较多,不常用的话记不住,但SAP提供了一个事务码列出的基本上所有的IDoc相关的事务码,即wedi,运行结果如下:

2016-08-26_10-19-46

2, 交换流程

EDI的交换有两个流程:

外发(Outbound process或简称OP)

接收(Inbound process或简称IP)

SAP也是完全遵循着EDI的这两个流程,并做了相应的实现。在外发过程中:

  1. 应用文档被创建
  2. IDoc生成
  3. IDoc从SAP传送到操作系统
  4. IDoc被转换成EDI标准格式
  5. EDI文件被传送到业务伙伴处(所以业务伙伴可以没有SAP,因为EDI是个标准)
  6. EDI子系统将传送的状态回报给SAP

在接收过程中:

  1. EDI文档被接收
  2. EDI文档被转换成IDoc
  3. IDoc传送到SAP层
  4. 应用文档在SAP中创建
  5. 应用文档现在可供浏览了

3, Process code

Process code处理代码设定(WE41、WE42、WE40、WE64)

处理代码用于确定数据写入IDoc或从IDoc读取的处理方式,处理代码对应具体的功能模块或者工作流。入站和出站处理的伙伴参数中都可以指定处理代码

142100254646826

142100283396581

4, IDoc的特性

每个IDoc都被分派了唯一的号码,用于跟踪及其后参考所用

IDoc包含多个段(segment),而段内包含有多个字段

IDoc包含有三种类型的记录:一条控制记录,一个或多个数据记录,一个或多个状态记录

142100537765976

IDoc type:IDoc结构,不同的SAP业务对象对应不同的IDoc类型(一个或多个)。IDoc类型中定义了数据段以及数据段的层级和次序

142100567619932

标准SAP系统提供的IDoc类型称为基本类型(Basic type),该类型可以通过IDoc扩展(Extention)进行调整,即在SAP IDoc类型结构的基础上增加新的数据段或者在数据段中增加新字段

IDoc定义及扩展(WE30)

2016-08-26_10-42-33

如下面的FIDCCP01 IDoc类型对应于业务对象:账务凭证(FI Document):

2016-08-26_10-43-36

5, 端口(Port)

端口用于外发流程,它判断EDI子系统程序名称、IDoc文件传送到操作系统的目录,IDoc文件名和RFC目的地

Tcode:WE21

2016-08-26_10-39-44

6, RFC目的地

用于定义到远程系统通讯连接的特性以及需要调用何种功能

TCode:SM59

2016-08-26_10-46-43

7, Partner Profile

Partner Profile指定在外发过程中所用的各类组件(业务伙伴号、IDoc类型、信息类型、端口、处理码等),通讯方式(异步或同步)以及当错误时通知何人

Tcode:WE20

2016-08-26_10-37-20

8, message type

相关Tcode we81, 创建消息类型

2016-08-26_11-14-12

 

WE82,连接message 类型和IDOC类型

2016-08-26_11-13-00

9, IDoc类型定义相关函数

除IDoc类型定义工具外,SAP还提供了一系列与IDoc类型和数据段开发相关的功能模块

函数组EDIM中的SAP内部功能模块用于操作IDoc基本类型和扩展:

142101178233830

SE80:function group EDIM

2016-08-26_10-49-57

10, IDoc其他工具

WE02:IDoc显示工具

WE09:在不知道IDoc类型、伙伴参数等技术细节情况下,有时不能通过IDoc控制记录中的信息来确定一个IDoc,如在需要通过其中所包含的应用数据来确定一个IDoc的情况下。如,需要查找包含物料A001的采购订单,此时就需要通过IDoc查找工具,该工具可以查找数据库及已经归档文件中的IDoc

142101298863979

以上。