iDoc 资料.docx_第1页
iDoc 资料.docx_第2页
iDoc 资料.docx_第3页
iDoc 资料.docx_第4页
iDoc 资料.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

iDoc - IDoc Idoc是SAP用于传输业务数据的一种数据格式。 Idoc的目的与XML类似,都是用于数据交换以及计算机系统的自动化,但语法不同,IDoc要做的更好。 XML允许文档设置其自己的元数据(metadata),而Idoc在创建时就必须在头部录入其信息。XML使用类似标签的树状结构来包含数据和元数据,IDoc则使用表来包含数据和元数据。IDoc同时使用时域(session)来解释所有凭证已处理或将处理的进程,并允许调试和追踪凭证状态。 不同的IDoc类型(IDoc type)用于处理不同类型的信息。比如IDoc格式ORDERS01可用于采购订单(Purchase Order)和订单确认(Order Confirmation)。 IDoc技术在自动化、监控和错误处理方面提供很多工具。举例来说,我们在一个特定的服务器配置了IDoc之后,当一个SAP用户创建一张采购订单,其信息会自动通过IDoc传输给供应商的系统,并且同时在供应商系统创建一张销售订单。 由于IDoc具备极大的的灵活性与透明性(transparency),所以很多非SAP的技术也在使用IDoc。 iDoc - IDoc的结构 一个IDoc包含 控制记录(Control Record):包含了IDoc类型、伙伴端口、SAP R/3的版本等信息。 状态记录(Status Record):包含对用户的输出消息,诸如“IDoc已创建(IDoc created)”、“IDoc已成功传输至端口(IDoc was successfully passed to the port)”等。 数据记录(Data Record):对于某一IDoc类型,段(Segment)的编码和类型都是确定的,但也有其灵活性,比如一张销售订单可以拥有任意多的行项目。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定义工具进行控制。创建IDOC 分类: ABAP 2009-02-11 15:02 925人阅读 评论(0) 收藏 举报 第一步:WE31 创建IDOC所包含的字段. 第二步:WE30 创建IDOC 把Segment分配给IDOC 第三步:WE81创建信息类型 第四步:WE82 把IDOC类型与信息类型对应. 第五步:WE57 Assign Message & Idoc Type to a Function Module for Data Process 第六步:SM59 Define a RFC connection for Idoc transfer 第七步:WE21 Define a Port ( Assign a RFC destination which created in SM59 ) 第八步:WE41/42 Creat Process Code 第九步:WE20 Define a Partner Profiles( Also creat a Outbound parameters with Port, or Inbound parameters with Process code )管理IDOC: WE02 显示IDOC,可以根据时间,IDOC类型查找IDOC,查看成功,出错信息。 WE46 IDOC管理(出/入) WE60 IDOC类型文档(可以查看IDOC结构,和每个字段的描述. WE19根据IDOC号进行IDOC处理,可以修改IDOC值进行补发动作,处理分为内向和外向。消息配置:WE20 配置伙伴消息进和出IDOC类型WE21 配置伙伴DATA: g_idoc_ctl LIKE edidc,g_e1maram LIKE e1maram,g_e1maktm LIKE e1maktm.DATA: gi_ret_ctl LIKE edidc OCCURS 0,gi_idoc_data LIKE edidd OCCURS 0 WITH HEADER LINE.* BUILD IDOC_CTL RECORDPERFORM build_idoc_ctl.* BUILD ICOC_SEGMENT DATAPERFORM build_idoc_seg.* CALL FUNCTION AND CREATE IDOCPERFORM create_idoc.*&-*& form BUILD_IDOC_CTL*&-*FORM build_idoc_ctl.* TYPEg_idoc_ctl-idoctp = ZMMIDOC. IDOC TYPEg_idoc_ctl-mestyp = ZMMCRT. MESSAGE TYPE* RECEIVERg_idoc_ctl-rcvprt = LS. PARTNER TYPEg_idoc_ctl-rcvprn = MMRECV800. PARTNER NO* SENDERg_idoc_ctl-sndprt = LS. PARTNER TYPEg_idoc_ctl-sndprn = T90CLNT090. PARTNER NOg_idoc_ctl-sndpor = SAPC11. PORTENDFORM. BUILD_IDOC_CTL*&-*& form BUILD_IDOC_SEG*&-*FORM build_idoc_seg.* HEAD DATAgi_idoc_data-segnam = E1MARAM. SEGMENT NAMEgi_idoc_data-segnum = 1. SEGMENT NOg_e1maram-matnr = IDOCTEST15. MM NOg_e1maram-meins = 10. BASE UOMg_e1maram-mbrsh = M. INDUSTRYg_e1maram-mtart = DIEN. MM TYPEMOVE g_e1maram TO gi_idoc_data-sdata.APPEND gi_idoc_data.* DESCRIPTIONgi_idoc_data-segnam = E1MAKTM. SEGMENT NAMEgi_idoc_data-segnum = 2. SEGMENT NOg_e1maktm-spras = sy-langu. LANGUAGEg_e1maktm-maktx = IDOC TEST. DESCRIPTIONMOVE g_e1maktm TO gi_idoc_data-sdata.APPEND gi_idoc_data.ENDFORM. BUILD_IDOC_SEG*&-*& form CREATE_IDOC*&-*FORM create_idoc.CALL FUNCTION MASTER_IDOC_DISTRIBUTEEXPORTINGmaster_idoc_control= g_idoc_ctlTABLEScommunication_idoc_control = gi_ret_ctlmaster_idoc_data = gi_idoc_dataEXCEPTIONSerror_in_idoc_control= 1error_writing_idoc_status= 2error_in_idoc_data = 3sending_logical_system_unknown = 4OTHERS = 5.IF sy-subrc 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ELSE.COMMIT WORK.ENDIF.ENDFORM. CREATE_IDOC什么是IDOC,以及IDOC的步骤 创建IDOC:第一步:WE31 创建IDOC所包含的字段.第二步:WE30 创建IDOC 把Segment分配给IDOC第三步:WE81创建信息类型第四步:WE82把IDOC类型与信息类型对应.第五步:WE57 Assign Message & Idoc Type to a Function Module for Data Process第六步:SM59 Define a RFC connection for Idoc transfer 第七步:WE21 Define a Port ( Assign a RFC destination which created in SM59 ) 第八步:WE41/42 Creat Process Code第九步:WE20 Define a Partner Profiles( Also creat a Outbound parameters with Port, or Inbound parameters with Process code )管理IDOC:WE02显示IDOC,可以根据时间,IDOC类型查找IDOC,查看成功,出错信息。WE46IDOC管理(出入)WE60IDOC类型文档(可以查看IDOC结构,和每个字段的描述. WE19 根据IDOC号进行IDOC处理,可以修改IDOC值进行补发动作,处理分为内向和外向。消息配置:WE20 配置伙伴消息进和出IDOC类型WE21 配置伙伴。官方介绍:What is a IDOC?An IDoc is simply a data container that is used to exchange information between any two processes that can understand the syntax and semantics of the data. IDoc is not a process.- IDocs are stored in the database.- In the SAP system, IDocs are stored in database tables.- IDocs are independent of the sending and receiving systems.- IDocs are independent of the direction of data exchange.An IDoc Type is SAPs format for data being moved between applications. Essentially, SAP has defined what a sales order, financial statement, invoice, etc will look like electronically. This includes how fields are grouped together (segments), the order and hierarchy of these groupings, and the format of each individual field.If youre familiar with EDI at all, then an IDoc will look very familiar to you. Nearly everything youre used to is there: from segment name to allowable codes to min/max occurs.It is important to note that an IDoc Type is really just a structure defined on the system and given a name (i.e., ORDERS04). An actual IDoc, however, consists of data, which fits within the defined structure of the IDoc Type. This IDoc is identified by a number rather than by a type.Creation of IDOCsTransaction code: WE 30Steps of Defining SegmentCreating Segment : Tcode - WE31Creating Message Type : Tcode - we81Assigning Message type to Idoc type: Tcode - we82ProcessThe two processes for IDoc are Outbound Process and Inbound Process.Outbound ProcessWhen the data is sent out from the system, the process is called Outbound Process and the IDoc is known as Outbound IDoc.Inbound ProcessWhen the data is coming in, the process is called Inbound Process and the IDoc is known as Inbound IDoc.Outbound Process (Sending System) Steps :1) Goto Tcode SALE:Creating the logical systemClick on Sending & Receiving Systems Select Logical Systems-Here Define the Logical Systems Click on Execute ButtonGo for New Entries1)System Name : LOG1:Description: Sending System2)System Name : LOG2:Description: Receiving SystemPress Enter & Save it will ask for Request if you want new request create new request or press continue for transferring the objects.Assigning Client to the Logical System:Select Assign Client to Logical Systems -Client : Sending SystemLogical System : LOG1and alsoClient: Receiving SystemLogical System : LOG2Save this Data.Step 2) For RFC Creation:Goto Tcode SM59 and Select R/3 ConnectsClick on create ButtonRFC Destination Name should be same as partners logical system name and case sensitive to create the ports automatically while generating the partner profilesGive the information for required fields:RFC Destination : LOG2Connection type : 3Target Host : System No : 00Client : 210User : Login user namePassword :Save this & Test it and Remote LoginStep 3) Goto Tcode BD64:Click on the change buttonClick on the create model viewShort Text: model viewTechnical Name: LMODSave this & press okSelect just created model viewName: LMODGoto add message typeModel Name : LMODSender : LOG1Receiver: LOG2Message type: ZAZHARMESSSave and press Enter.4) Goto Tcode BD82:Give Model View : LMODPartner system: LOG2Execute this by pressing F8It will gives you sending system port No: A00000000089 (Like)5) Goto Tcode BD64:Select the model viewGoto Editmodel view DistributePress ok & Press Enter.Run your ZprogramREPORT ZIDOC1 .DATA: Begin of imara occurs 0,matnr like mara-matnr,mtart like mara-mtart,end of imara.DATA: wamas_con LIKE edidc,imas_data LIKE edidd OCCURS 0 WITH HEADER LINE,icom_con LIKE edidc OCCURS 0 WITH HEADER LINE.PARAMETERS: e_matnr LIKE mara-matnr,e_msgtyp LIKE edidc-mestyp,e_rcvprn LIKE edidc-rcvprn.* retrive app. data from DBSELECT matnr mtart FROM mara INTO TABLE imara WHEREmatnr = e_matnr.*Master idoc control recordwamas_con-rcvprt = LS.wamas_con-rcvprn = e_rcvprn.wamas_con-idoctp = ZAZHARIDOC.wamas_con-me

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论