《IDOC培训教程.ppt》由会员分享,可在线阅读,更多相关《IDOC培训教程.ppt(50页珍藏版)》请在第壹文秘上搜索。
1、IDoc 概述概述IDoc 处理流程处理流程IDoc 连接配置连接配置IDoc 开发开发示例示例SAP IDoc 技术技术内容内容IDoc 归档归档IDoc 概述概述IDoc (Intermediate document)是一种系统间通用的数据交换媒介文件,通过IDoc可以方便的和外部系统进行数据交换,它可以内/外传送以实现系统的自动化,在SAP中IDOC主要应用到以下技术:ALE(Application Link Enabling):用于在同一集团中不同的SAP系统之间的数据交换EDI(electronic data exchange):实现不同企业间电子数据的交换,通过IDoc文件和业务伙
2、伴进行数据交换通过IDoc也可连接其它应用系统.左图展示的是以IDoc文件交换数据的逻辑示意图,由此可见以它做为通讯媒介构成了一个强大的分布且开放的系统IDoc概述概述 IDoc的结构的结构作为一种传输媒介, IDoc文件的结构包含有特定的格式,如下图所示:控制记录控制记录(Control Record)数据记录数据记录(Data Record)状态记录状态记录(Status Record)IDoc结构结构SAP中一个IDoc的文件结构IDoc概述概述控制记录控制记录(Control Record)每个IDoc的Control Record可以认为是文件头,它包含发送及接收端, IDoc ID
3、,发送日期等信息,当Idoc被触发时,SAP会首先检查这些信息是否正确.IDoc概述概述多个数据段(Segment)组成的一个层次结构,装载传输的数据且每个数据段不能超过1000个字符数据记录数据记录(Data Record)当发送或接收这些IDoc时,数据将会被解析到这些特定层级关系的数据段中IDoc概述概述状态记录状态记录(Status Record)用来记录IDOC从发送方到接受方的历史状态信息.IDOC状态示例状态示例系统状态列表系统状态列表(TCODEl:WE47)通常,如果是自行开发的IDoc,可以在处理IDoc逻辑的FM中加入自已定义的状态,以此满足不同的需求.IDoc概述概述
4、IDoc类型类型IDoc类型是IDoc文件的结构定义和说明,在SAP中,不同的业务对象有不同的IDoc类型,这些类型可以根据不同的传输格式或数据要求多个并存.查看IDoc类型(TCODE:WE30)PATH: Tools - ALE - ALE Development - IDoc - IDoc Type Development IDoc Types 输入输入:1,在” Obj. Name”栏位输入类型.右图的示例是自定义委外加工PO的IDoc类型定义.ZSUBH:委外PO的Header资料ZSUBL_H:委外PO的Item资料ZUBL:每个Item的装配组件资料.IDoc概述概述 消息类型消
5、息类型(Message Type)消息类型是指IDoc类型的视图,一个消息类型可以包含多个IDoc类型.T-CODE:WE81 定义消息类型T-CODE:WE82 IDoc 类型分配给消息类型,Release代表不同的版本IDoc概述概述 数据段数据段(Segment)(T-CODE:WE31)数据段是IDoc的结构组件,这些数据段包含特定的数据类型,每个字段可以参照SAP数据字典,也可以自定义字段,保存后系统自动创建版本号.可以自定字段,以满足特殊的需求.IDoc概述概述 IDoc处理流程处理流程如左图,按照系统间的数据流向,分为如下两种处理模式:1:出站处理(Outbound): SAP
6、到外部系统.2:入站处理(Inbound):外部系统到SAP系统.如右图演示一个IDOC处理的过程:IDoc概述概述 IDoc出站处理出站处理如上图如上图Outbound Processing部分部分:它的流程可以理解成以下几个步骤它的流程可以理解成以下几个步骤:1),应用层:生成应用数据2),ALE层:创建出站IDOC3),通讯层:寻找伙伴和端口4),发送 IDocIDoc概述概述 IDoc的出站触发机制的出站触发机制IDOC可以通过不同的机制发送IDOC:1),通过应用模块的消息控制间接的传送到IDOC接口.伙伴参数的消息控制应用模块的输出类型对应对应通过消息控制的发送处理注意:IDOC和
7、应用模块的消息类型有联系,但不是同一概念.IDoc概述概述 IDoc的触发机制的触发机制IDOC可以通过不同的机制发送IDOC:2),直接从应用发送到IDOC接口,这些处理主要是通过以下的FM控制:标准:MASTER_IDOC_DISTRIBUTE/COMMUNICATION_IDOC_CREATE自定义IDOC: L_IDOC_SEND /L_IDOC_SEGMENT_CREATE / L_IDOC_HEADER_CREATE 直接发送IDOC的模型IDoc概述概述 IDoc入站处理入站处理如上图如上图Inbound Processing部分部分:它的流程可以理解成以下几个步骤它的流程可以理
8、解成以下几个步骤:1),通讯层通讯层:接收入站端口传来的数据接收入站端口传来的数据.2),ALE 2),ALE 层层: :创建入站创建入站IDOCIDOC并通过伙伴参数文件查找并通过伙伴参数文件查找IDOCIDOC处理类型处理类型. .3),3),应用层应用层: :写入文档写入文档. .Inbound 应用处理1.直接处理:通过FM IDOC_INPUT_?处理.2.间接处理:通过SAP业务工作流处理.IDoc示例示例演示个示例帮助理解演示个示例帮助理解IDoc具体工作模式和设计具体工作模式和设计:1,配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例.通常在实际应用中,为了简化
9、系统过多的人为操作或更好的实现自动化,有时我们需要在同一集团内跨公司交易时传输相关的数据,例如:1).在SAP系统中同一集团A和B两个公司,A向B开PO并传出IDoc自动创建B公司的SO.2).在主数据中,可以方便的通过Idoc传输物料主档/BOM/Work Center/Routing/Vendor/Customer等资料.3).SAP也可轻易地做到跨Client交换数据.SAP R/3SenderSAP R/3ReceiverIDoc FilesPortRFC配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例T-CODE:SALE 用来配置IDoc逻辑命令集合-),配置发送和
10、接收的逻辑系统. 逻辑系统用来识别同一服务器上不同的Client唯一标识1-2),将逻辑系统指派给Client(T-CODE:SCC4)在PRD系统,逻辑系统设定后,如果有数据产生,不能被更改.配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-3),创建RFC连接图1-3-1图1-3-2定义RFC连接目标时,首先指定连接名称,连接类型(如图1-3-1),描述等信息.配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例在屏幕维护目标Client的登入参数请确认目标系统是否是Unicode,如果是请转到屏幕如果编码类型设定有误,对于中文字符的传输会有乱码或不能执行ID
11、oc等原因.测试RFC连接配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-4),定义端口IDoc通过端口和目标系统交换数据,它是接口中通信基础,请看以下逻辑示意图:端口类型RFC事务ALE分布式传输过程端口,外部系统也是R/3的解决方案.文件接口以文件形式输出,外部系统可以读取此IDoc 文件CPI-C连接到R/2系统ABAP-编程接口将IDoc文件发送到用户定义的FM,以实现特殊的逻辑.XML文件格式输出到XML文件HTTP格式的XML文件输出到MIME(Multipurpose Internet Mail Extensions)文件格式配置一个跨配置一个跨Client传
12、输主数据的示例传输主数据的示例定义端口T-CODE:WE21选中一个端口类型,点击按钮,在图1-4-2中输入端口号图1-4-1图1-4-2图1-4-3在图1-4-3中输入描述及RFC目标配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-5),定义分配模型T-CODE:BD64,用它可以完成在分布式逻辑中发送或接收的对象.传输过程序中筛选数据新建一个视图模型用BAPI处理IDoc逻辑添加一个消息类型1-5-1),点击”Create model view”.在此输入描述及技术名称,注意:技术名称在此必须是唯一的配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-5
13、-2),点击”Add message type”按钮增加Message type图1-5-2在图1-5-2中维护发送/接收者,消息类型,这三个参数是必须的,它们告诉SAP如何传输数据以及传输对象是什么.在Filter中可以定义或扩展筛选条件配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-5-3),自动建立伙伴参数选中一个消息类型,在菜单Environment-Generate partner profiles.点击执行,系统自动建立Partner profile相关参数,以下是系统返回结果:配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-6),手工建立和
14、检查伙伴参数,用此维护发送及接收端伙伴,进/出站,消息类型等参数, T-CODE:WE201-6-1),建立发送端参数维护进站参数Process code都关联一个FM,用此来处理IDoc逻辑,也可以自定义Process code,用自定义的FM配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-6-2),建立接收端参数维护出站参数设定端口(请参考端口的配转置及说明)立即执行必须设定Basic Type物料主数据没有Message Control,大部分IDoc一般用这个来触发.配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-7),测试IDoc(T-CODE
15、:WE19) SAP可以有以下几种测试方式,常用的是Existing IDOC和Basic Type两种数据结构:EDIDC: Control RecordsE1*:Data Records 配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-8)发送物料(T-CODE:BD10)当点击”执行”后,系统分别会提示以下两个信息以告诉用户有多少IDoc产生配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例1-9检查IDoc日志(T-CODE:WE02)通常用这个来查看或监视IDoc 的执行结果和状态,如果有问题,例如一修改一些测试数据可以放在WE19测试执行,以此找到
16、IDOC的错误原因.配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例可以按进/出站IDoc来查看结果进一步显示单个IDOC的结果,SAP按照以下方式显示:技术信息如前所述,每个IDoc包含有Control Record, Data Record以及Status Record三个必须内容配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例配置一个跨配置一个跨Client传输主数据的示例传输主数据的示例第一个示例演示完毕第一个示例演示完毕.小结小结:1,配置逻辑系统2,配置RFC连接3,配置端口4,配置分配模型5,配置伙伴参数6,如有必要可以在规则中设定转换规则(实际中也常用)通常SAP会和外部非SAP系统交换数据,或客户及供应商的SAP系统交换数据,除直接用编程的技术通过RFC和外部沟通外,IDOC也是一个很好的解决方案,以下示例演示如何从头定义一个全新结构的IDoc.2,自定义自定义IDoc传输传输SO资料到外部系统资料到外部系统.自定义自定义IDoc传输传输SO资料到外部系统示例资料到外部系统示例明细字段参照字段字段长度VBELNVBELN_VA10POS