IDoc

[转] 自http://www.erpsas.org/home/space.php?uid=143&do=blog&id=138

IDOC技术

IDoc接口应用于SAP系统与其他系统的业务数据交换过程,包含数据结构的定义以及数据的处理逻辑,其中的数据结构即为IDoc(intermediate document)。IDoc是一种系统间通用的数据交换格式,通过IDOC,SAP系统可以和多种外部系统进行数据交换,包括SAP R2/R3/ECC、EDI子系统等外部系统等。
IDOC概述

IDOC是SAP系统之间或SAP系统与外部系统之间电子数据交换的标准数据格式。在事务处理过程中,随时会产生IDOC,例如,在SAP系统中,用户执行了一个运货交易后,可能会产生打印货运清单所需数据的主IDOC,并经过通信层进行数据传送,从主IDOC中会生成一个或多个通信IDOC。通信层执行远程功能调用,通过端口和伙伴参数(RFC链接)设定,与对方心痛进行链接。IDOC的接收者可能为ECC、R/3、R/2或者一些外部系统。

IDOC不是SAP系统的应用文档(APPLICATION DOCUMET),而是系统间数据交换过程中的媒介,其中的INTERMEDIATE包括下列两层含义。

1. 面向消息(message-oriented):IDOC中的数据隶属于具体的应用,可是事务数据、主数据或控制数据,但是其格式与具体应用中的数据格式不同,而是一种通用的标准格式,这样SAP和第三方软件都可以方便地处理IDOC。

2. 异步(asynchronous):在创建SAP应用文件之前,数据已经存在与IDOC之中了。如数据出现错误,就不会创建应用文件,直到IDOC中的错误被修正为止,即IDOC的出错处理(通常通过工作流系统实现)可以在其转换为系统应用文档之前进行修改。

通过IDOC接口可以实现SAP系统之间以及SAP系统与其他系统之间的数据交换。使用IDOC的应用必须能够写入或读取IDOC格式的数据,典型的IDOC应用如下所示。

1. ALE:用于同一个企业中不同SAP系统之间的数据交换,通过IDOC格式的数据创建分布式的系统。

2. EDI(electronic data exchange,电子数据交换):用于实现不同企业间的电子数据交换,是各应用系统间的结构化电子交换标准。EDI中的IDOC符合EDI标准,SAP格式的数据通过EDI子系统转换为EDI标准,然后与业务伙伴进行数据交换。

3. 通过业务连接器(business connector),可以将业务文档以IDOC的形式发送至INTERNET。

4. 通过IDOC也可以链接其他业务应用系统,如PC应用、外部工作流工具等。


IDCO的结构和类型

在SAP系统中,数据交换过程中的IDOC需要依照特定的规则创建。所有的IDOC都遵循被称为记录类型(record type)的通用结构。除遵循通用结构外,不同的应用文档对应不同的IDOC类型,每个IDOC类型有特定的格式和规则。


IDOC通讯结构

所有IDOC都包含技术处理过程中的管理信息以及实际的应用数据,这些应用数据存储于不同的数据段(segment)中,数据段是IDOC的最小结构单元。

在SAP系统中,还通过IDOC的“状态”存放IDOC处理过程中的历史信息(至当前位置IDOC所经历的全部状态)以及出错信息。

上数记录类型所描述的IDOC结构在SAP中对应三个具体的数据库分析表,分别用于存储含管理信息的控制记录、一段或多段含应用文档信息数据记录,一段或多段状态记录。

[img] 我的电脑桌面/IDoc.jpg [/img]


✿ 控制记录也称为IDOC头,用于惟一确定一个Idoc,其中包括IDOC的内容、结构、发送者、接收者等信息,此外还包含当前IDOC最新的状态信息。

✿ 数据记录(data record),包括多个数据段,其中包含应用数据字段(segment field).每个数据段中都包含一个标准头结构,其中包含数据段序列号、类型、说明和不超过100个字符的数据段文本。各个数据段可以独立的,也可能相互依赖,形成层级结构(父数据段及子数据段)。一个IDOC的数据记录中同名的数据段可以重复出现。

✿ 状态记录(status record),用于记录IDOC从应用到其送达方的当前以及历史状态信息,即IDOC所经过的状态日志,如“以创建”或“准备发送”等,是对IDOC进行监控的重要信息。只有SAP系统内部的IDOC才存在状态记录信息。IDOC的状态信息并不随IDOC本身进行发送,而是通过状态处理过程独立监控的。

下图为IDOC接口中的IDOC,体现了记录结构与传输过程的关系,其中状态记录独立于IDOC本身单独传输。要提醒读者注意之处是,从应用中生成的IDOC、系统传输过程中的IDOC以及存储与SAP系统中的IDOC,其具体格式和内容大小是存在差异的。
IDOC类型

IDOC类型(IDOC TYPE)是应用文档相关的IDOC结构定义,不同的SAP业务对象对应不同的IDOC类型(一个或多个)。IDOC类型中定义了数据段以及数据段的层级和次序。

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

在事务WE30中,可以显示IDOC类型的定义结构,下图为IDOC基本类型FIDCCP01的层次结构,该IDOC类型对应于业务对象财务凭证(FI DOCUMENT)。
数据段

数据段是IDOC的结构组建,其明明部分包括SAP版本无关的数据段类型以及至少一个版本相关的数据段名称(或称数据段定义),如下图所示,外部系统(EDI系统)需要通过数据段名称来确定当前数据段的版本。

IDOC中的数据段类型均为定义在数据字典中的ABAP结构。SAP标准数据段类型以E1作为前缀;数据段名称则以E2开头,后面参照数据段类型名并增加版本号;用户自定义的数据段类型则以Z1开头,数据段名称以Z2开头,SAP的合作伙伴定义的数据段也可以使用其他特定的前缀作为开头。上述命名规则均通过IDOC定义工具进行控制。



创建于 20100322 为了帮助大家先理解概念以及作用,概念部分参考SAP高级应用开发一书。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值