ALE/IDocs是SAP公司为SAP R/3 R4.6C版本所提供的接口机制。
ALE简介
ALE 是Application Link and Enabling的缩写,是SAP专门为SAP与SAP之间所设计的整合中间件。ALE在SAP 3.0版本开始就作为SAP整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE的设计,原本作为两个SAP流程之间的一种消息传递服务(Messaging Service) ,使SAP与SAP的业务流程之间企业数据能够有效的交换,为两个独立的SAP之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs接口机制也已然成为与其它非SAP系统的标准的整合方式。
ALE结构
- ALE的设计结构可以分为三层:即应用层,数据/消息分配层和通讯层。
- 通讯层:是SAP整合机制的基础,它利用远程功能呼叫RFC(Remote Function Call) 调用SAP系统的功能模块。
- 数据/消息分配层:主要提供三个关键服务,按数据分配模型决定数据接收者;消息的过滤和转换;数据/消息的压缩,以提高传递效率。
- 应用层:直接与SAP系统接口,生成或从其它系统接收含有路由信息的消息文本IDocs,包括消息接收者的姓名,要求发送的类型以及对消息进行处理的规则。
ALE优点
ALE的机制代替了原来的SAP所提供的批数据通讯BDC(Batch Data Communication) 方式。顾名思义,BDC为系统之间提供了简单的数据批处理服务,还不能作为一种中间件技术,它没有提供系统之间进行无缝整合所要求的纠错功能、系统管理和其它安全措施。总得说来,应用SAP的ALE机制进行SAP与SAP或非SAP系统整合有以下几个好处:
- ALE技术不受SAP版本升级的影响,它提供了版本向后兼容性。ALE定义于SAP应用层,与SAP的逻辑层相对独立,整个ALE中间件独立于发送和接收系统。
- ALE消息设计逻辑保证消息的“一次且只有一次”的消息传递。ALE采用“存储-发送”技术确保消息即使系统发生故障或接收方没有准备接收时也可以达到目的地。这样就保证接收方不至于收到重复消息。
- ALE也提供了IDocs管理功能。主要有文本缩减、文本版本控制以及文本数据过滤。三种控制机制使得SAP开发人员可以根据实际需要对IDocs文本在运行中进行动态处理。
- ALE提供了系统管理功能,允许对ALE系统进行启动/复位/恢复等系统操作,为开发人员提供了进一步的管理控制。
ALE/IDocs的消息发送接收过程
- 发送过程(OUTBOUND)
一个发送过程由事件触发,文本生成,数据打包以及交由传输媒介传递这四个步骤组成,具体如下:
- 应用系统事件触发输出程序:系统目标(Objects) 的状态变化,用户自主活动或其它数据库特定变化等可以启动数据表的触发程序,从而进行数据传递的初始化工作,如数据准备
- ALE输出程序(Outbound ALE Program)抽出应用数据,生成Master IDoc,按标准格式生成主IDoc文件,包含所有可以传递数据(不分接收者)
- Master IDoc只是临时的存储在SAP内存中,它会调用ALE Distribution model,由ALE Service layer来决定要发送到哪些地方,然后针对每一个接收者都会创建一个Communication IDoc(通讯IDoc),这个IDoc会存在数据库的表当中;从主IDoc中生成只与特定接收者有关的通讯IDoc,通讯Idoc是主文本的子数据集(Subset)
- Communication IDoc通过Communication layer利用异步通讯方式传送给每个接收者
- 接收过程(INBOUND)
接收过程始于SAP系统从外部收到IDoc文本。接收过程的优点在于,接收方既可以是SAP系统,也可以是第三方系统,这也是SAP与第三方进行有效整合的基础。接收过程由以下三个步骤组成:
- 接收端的Communication IDoc通过ALE Service layer生成Application IDoc;将IDoc存储于数据库,并进行语法校验
- Application IDoc通过Inbound ALE Program调用邮件处理程序;邮件处理程序读取Idoc--一个专门设计的IDoc处理程序读取IDoc并产生SAP或其它系统所需的系统消息。多个程序可以同时运行。
- 处理程序进一步在Application Repository中生成业务数据对象或者是主数据;并将结果信息存于Idoc的状态纪录中。