IDOC配置手册_第1页
IDOC配置手册_第2页
IDOC配置手册_第3页
IDOC配置手册_第4页
IDOC配置手册_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、作为目前ERP市场上最为领先的应用系统之一,一直以来,SAP R/3在提供API应用编程接口和接口工具方面也同样领先于其它ERP厂商。ALE/IDocs是SAP公司为版本所提供的接口机制,目前应用最为广泛。在以后的版本中,又添加了技术上先进的BAPI。本文作为系列介绍之一,对ALE/IDocs, BAPI以及其它可用的整合方式进行介绍。1、ALE/IDocs是什么? ALE 是Application Link and Enabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。IDocs是中介文本 (Intermediate DOCument) 的缩写,是SAP提供的系统整合专

2、用的数据/消息格式。ALE在版本开始就作为SAP整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务(Messaging Service) ,使SAP与SAP的业务流程之间企业数据能够有效的交换,为两个独立的SAP之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs接口机制也已然成为与其它非SAP系统的标准的整合方式。 ALE的设计结构可以分为三层,即应用层,数据/消息分配层和通讯层。通讯层是SAP整合机制的基础,它利用远程功能呼叫RFC(Remote Function Call) 调用SAP系统的功能模块。数

3、据/消息分配层,主要提供三个关键服务:按数据分配模型决定数据接收者。消息的过滤和转换。数据/消息的压缩,以提高传递效率。应用层直接与SAP系统接口,生成或从其它系统接收含有路由信息的消息文本IDocs,包括消息接收者的姓名,要求发送的类型以及对消息进行处理的规则。ALE的机制代替了原来的SAP所提供的批数据通讯BDC(Batch Data Communication) 方式。顾名思义,BDC为系统之间提供了简单的数据批处理服务,还不能作为一种中间件技术,它没有提供系统之间进行无缝整合所要求的纠错功能、系统管理和其它安全措施。总得说来,应用SAP的ALE机制进行SAP与SAP或非SAP系统整合有

4、以下几个好处:ALE技术不受SAP版本升级的影响,它提供了版本向后兼容性。ALE定义于SAP应用层,与SAP的逻辑层相对独立,整个ALE中间件独立于发送和接收系统。ALE消息设计逻辑保证消息的“一次且只有一次”的消息传递。ALE采用“存储-发送”技术确保消息即使系统发生故障或接收方没有准备接收时也可以达到目的地。这样就保证接收方不至于收到重复消息。ALE也提供了IDocs管理功能。主要有文本缩减、文本版本控制以及文本数据过滤。三种控制机制使得SAP开发人员可以根据实际需要对IDocs文本在运行中进行动态处理。ALE提供了系统管理功能,允许对ALE系统进行启动/复位/恢复等系统操作,为开发人员提

5、供了进一步的管理控制。 IDoc 几乎可以传带任何SAP应用的数据,是一种“外围”定义格式,与SAP的应用数据定义不直接相关。IDocs已经广泛应用于早期的SAP-EDI的数据交换,因而它的设计有点类似于EDI的标准,即EDIFACT标准。 IDocs是以字符基础的,因而是可读的。它有三种纪录类型,即:控制纪录-含文本信息,如IDoc类型,发送/接收方信息以及文本标识。数据纪录-含管理和实际数据部分。状态纪录-用来追踪文本传递各点的状态,如状态码,系统时间,错误标识等。3. WE21,选择端口类型后点新建按钮154. 配置分布模型和伙伴参数19RBDMIDOC 增量发送程序231.自建IDOC

6、类型首先创建用来记录增量发送时间戮的自建表ZIDOC_LOG,结构如下图:通过自建表来记录IDOC发送的时间戳,有一定的漏单危险,推荐每次取值设置的时间为当前时间往前一段时间来避免因为 多次IDOC发送过程中遗漏的记录。假如想统计或查询已发记录,可以通过自建表来保存已发送信息。WE31定义自定义段ZMKAL(用于自定义IDOC类型发布生产版本),开发完成后可设置批准,表示开发完成,如需修改则需要取消批准ZMKAL_IDOC,将刚才定义的段ZMKAL挂在此类型下,开发完成后可设置版本,表示开发完成,如需修改则需要取消发布。1.4 WE81定义消息类型MKAL_IDOC。1.5WE82 把基本类型

7、ZMKAL_IDOC分配给消息类型MKAL_IDOC。1.6定义自定义IDOC类型所需的结构ZMKAL_LINE。表结构,ZMKAL_TYP,对应行类型结构为ZMKAL_LINE1.7创建发送生产版本IDOC用的函数:ZMKAL_IDOC_SEND,源代码如下,参数、异常定义见函数开头说明FUNCTION zmkal_idoc_send .*"-*"*"Local interface:*"  TABLES*"      ZMKAL

8、60;TYPE  ZMKAL_TYP*"  EXCEPTIONS*"      NO_IDOC*"      NO_MODEL*"-*variables of general interest  DATA:*control record for the IDoc  idoc_control

9、 LIKE edidc,*data records for the IDoc  t_idoc_data LIKE edidd OCCURS 0 WITH HEADER LINE,*table for the IDocs created by MASTER_IDOC_CONTROL  t_comm_control LIKE edidc OC

10、CURS 0 WITH HEADER LINE,*partner type for logical system  c_partner_type_logical_system LIKE edidc-rcvprt,*help variable for the check if an IDoc has to be created  h_create_i

11、doc.* variables specific for this example  DATA:*       field strings with IDoc segment structure        e1xmkal TYPE zmkal_line,*    &

12、#160;  data to be put to the control record        c_message_type LIKE edidc-mestyp VALUE 'ZMKAL_IDOC',        c_base_idoc_type LIKE edid

13、c-idoctp VALUE 'ZMKAL_IDOC',*       segment types to be put to the data record table        c_header_segtyp LIKE edidd-segnam VALUE 'ZMKAL

14、'.* check if an IDoc has to be created, read the distribution model  CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND'       EXPORTING       

15、     message_type           = c_message_type*         SENDING_SYSTEM         = ' '*    

16、     RECEIVING_SYSTEM       = ' '*         VALIDDATE              = SY-DATUM    &#

17、160;  IMPORTING            idoc_must_be_sent      = h_create_idoc.*    exceptions*         own_system_not_defined = 1*&#

18、160;        others                 = 2.  IF h_create_idoc IS INITIAL.    raise no_model.*   no messa

19、ge flow maintained in the model, nothing to do    EXIT.  ENDIF.* put the application header record to the IDoc  LOOP AT zmkal.    MOVE-CORRESPONDING&#

20、160;zmkal TO e1xmkal.* append record to IDoc data table    t_idoc_data-segnam = c_header_segtyp.    t_idoc_data-sdata = e1xmkal.    APPEND t_idoc_data.  ENDLOOP.

21、0; idoc_control-mestyp = c_message_type.  idoc_control-idoctp = c_base_idoc_type.  CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'* in update task   "if application document is posted in

22、 update task       EXPORTING            master_idoc_control            = idoc_control       TAB

23、LES            communication_idoc_control     = t_comm_control            master_idoc_data          

24、     = t_idoc_data       EXCEPTIONS            error_in_idoc_control          = 1      

25、60;     error_writing_idoc_status      = 2            error_in_idoc_data             = 3   

26、0;        sending_logical_system_unknown = 4            OTHERS                     &#

27、160;   = 5.* A commit work has to be done. It could also be done in the calling* application.  COMMIT WORK.  READ TABLE t_comm_control INDEX 1.  

28、IF sy-subrc <> 0.    raise no_idoc.* no IDoc was created, you can react here, if neccessary  ENDIF.ENDFUNCTION.1.8程序中通过自建时间戳表来抓取增量数据,并调用函数zmkal_idoc_send。传递数据表,生成IDOC。ZE1PLPOL_TEXT(用于扩展工艺路线IDOC基本类型,增加描述文本)创建扩展类型ZLOIROU02衔接扩展到基本类型LOIROU02选中段E1PLPOL,点击新建,将之前创建的段类型扩展至该段下。2.3 WE8

温馨提示

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

评论

0/150

提交评论