SAP R/3 接口技术剖析

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

作为目前 ERP 市场上最为领先的应用系统之一,一直以来,SAP R/3 在提供 API 应用编程接口和接口工具方面也同样领先于其它ERP厂商。ALE/IDocs 是 SAP 公司为 SAP R/3 R4.6C 版本所提供的接口机制,目前应用最为广泛。在 R4.0 以后的版本中,又添加了技术上先进的 BAPI。本文作为系列介绍之一,对 ALE/IDocs, BAPI 以及其它可用的整合方式进行介绍。

 

1.1    ALE/IDocs 是什么?

ALE是 Application Link and Enabling 的缩写,是 SAP 专门为 SAP 与 SAP 之间所设计的整合中间件。IDocs 是中介文本 (Intermediate Document)  的缩写,是 SAP 提供的系统整合专用的数据/消息格式。ALE 在 SAP 3.0 版本开始就作为 SAP 整个应用体系的一部分,为分布式数据交换提供了可靠安全的通讯机制。ALE 的设计,原本作为两个SAP 流程之间的一种消息传递服务(Messaging Service),使 SAP 与 SAP 的业务流程之间企业数据能够有效的交换,为两个独立的 SAP 之间提供了的系统整合服务。不过,随着应用的发展,ALE/IDocs 接口机制也已然成为与其它非 SAP 系统的标准的整合方式。

1.2    ALE/IDocs 的消息发送接收过程

ALE 的设计结构可以分为三层,即应用层,数据/消息分配层和通讯层。通讯层是 SAP 整合机制的基础,它利用远程功能呼叫 RFC(Remote Function Call)  调用SAP系统的功能模块。

 

数据/消息分配层,主要提供三个关键服务:

 按数据分配模型决定数据接收者。

 消息的过滤和转换。

 数据/消息的压缩,以提高传递效率。

应用层直接与 SAP 系统接口,生成或从其它系统接收含有路由信息的消息文本 IDocs,包括消息接收者的姓名,要求发送的类型以及对消息进行处理的规则。

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 系统进行启动/复位/恢复等系统操作,为开发人员提供了进一步的管理控制。

IDoc几乎可以传带任何 SAP 应用的数据,是一种“外围”定义格式,与 SAP 的应用数据定义不直接相关。IDocs 已经广泛应用于早期的 SAP-EDI 的数据交换,因而它的设计有点类似于 EDI的标准,即 EDIFACT 标准。

IDocs 是以字符基础的,因而是可读的。它有三种纪录类型,即:

控制纪录-含文本信息,如 IDoc 类型,发送/接收方信息以及文本标识。

数据纪录-含管理和实际数据部分。

状态纪录-用来追踪文本传递各点的状态,如状态码,系统时间,错误标识等。

 

下面对 ALE/IDocs 在系统整合过程中消息的实际传递进行介绍。

让我们首先看发送过程。一个发送过程由事件触发,文本生成,数据打包以及交由传输媒介传递这四个步骤组成,具体如下:

应用系统事件触发

系统目标(Objects)    的状态变化,用户自主活动或其它数据库特定变化等可以启动数据表的触发程序,从而进行数据传递的初始化工作,如数据准备。

生成主 IDoc 文本(Master) 

按标准格式生成主 IDoc 文件,包含所有可以传递数据(不分接收者)

生成通讯 Idoc

从主 IDoc 中生成只与特定接收者有关的文本,通讯文本是主文本的子数据集(Subset)

Idoc 发送

利用异步通讯方式将一定版本的 IDoc 传递到接收方

 

下面,让我们看接收过程。                                                                                  

接收过程始于 SAP 系统从外部收到 IDoc 文本。接收过程的优点在于,接收方既可以是 SAP系统,也可以是第三方系统,这也是 SAP 与第三方进行有效整合的基础。接收过程由以下三个步骤组成:

存储 Idoc-将文本存储于数据库,并进行语法校验

邮件处理程序读取 Idoc--一个专门设计的 IDoc 处理程序读取 IDoc 并产生 SAP 或其它系统所需的系统消息。多个程序可以同时运行。

生成系统文本--处理程序进一步生成系统文本供系统使用,并将结果信息存于 Idoc d 的状态纪录中。

 

1.3    BAPI 简介

BAPI 是 Business Application Programming Interface 的缩写,是 SAP 为 3.0 版本以上提供的基于业务对象(Business Object)技术的接口应用界面。SAP 在 3.0 版本以上采用了 Object-oriented技术,逻辑定义了 SAP R/3 系统的所有功能目标,并且将所有的对象(Objects)和 BAPIs 存储于业务对象库 BOR(Business Objects Repository)。SAP R/3  业务对象的对象类型(Object Type) 相当于对象设计语言中类(Class)   的概念,其定义结构由以下几部分组成:

l  基本数据--所有对象类的通用属性,如目标标识和默认方法(Method) 。

l  接口界面—对象的方法(Method),事件(Event),  特征(Attributes) 。

l  关键域(Key Fields)--供 BOR中目标检索使用

l  方法(Methods)--对对象进行所要求的各种操作。

l  特征(Attibutes)--描述对象特征。

l  事件(Events)--触发以改变对象状态。

利用 BAPI,开发人员可以实现对 BOR 进行实时访问,从而实现应用系统(SAP-SAP)之间在数据/逻辑层上的有效整合。

1.4    应用 SAP-DCOM 接口

SAP 于 1998 首次提供 SAP-DCOM 接口,以满足各种桌面应用开发的要求。利用 DCOM 连接端口,开发人员可以利用 VB, C++,以 DCOM 对象方式访问 SAP 数据。在 Web 应用上,可以用 VBScript,JavaScript  以 DHTML 方式页面访问,也可以用 ASP 访问数据。

另外,利用 DCOM 也可以间接访问 SAP 的业务对象库 BOR。上面提到的 BAPI 是 SAP 系统上专用的,在实际应用上不如 DCOM 来得广泛。DCOM 端口主要有两个技术模块组成,一个是管理模块,另一个模块生成 SAP BO 的 DCOM    代理组件(Proxy Components),生成的 DCOM 组件存放于 C++。代理组件有以下属性:

l   Client-要访问的 R/3 客户系统

l   UserID-R/3 用户

l   Password-用户密码

l   Language-系统语言

l   Destination-预先定义的目标名称

l  另外,每个组件具有以下方法:

l   PutSeesionInfo()—设定系统一次调用的目标参数

l   AdviceRfcGuiSink()—用于需要 SAPGUI 或 dubugging 的场合。

l   CommitWork()-用于数据更新,无 implicit commit 的场合。

l   InitKeys()-DCOM 目标键初始化

l   DimAs()-返回 Microsoft ADO(Advanced Data Object)    纪录集(支持游标控制)。

l   其它从 R/3 BO 定义中继承的方法。

总起说来,SAP R/3作为一个相对灵活的 ERP 系统,利用上述的各种整合技术能够实现SAP系统之间以及SAP与其它系统之间的数据/过程的整合。当然,一个应用系统的高度客户化导致了系统整合的难度。随着系统功能的增加,多种可供采用的整合技术也就显得很有必要。对于SAP R/3 用户来说,正确选择适用的整合技术是实现成功系统整合的关键。

ABAP传输自定义IDOC实例 首先确定出站方和入站方,本例中我使用150作为发送方将200作为接收方。 发送端系统配置 进入tcode-SALE,点击定义逻辑系统,这里我定义D01CLNT150为发送端, D01CLNT200为接收端 2,将逻辑系统分配给对应的client 3,进入tcode-WE31,创建IDOC开发段(segment)这里可以按照实际需求创建想要传输的结构,为求简单我创建了ZKNA1并选取了几个客户主数据的字段作为示例 4,进入tcode-WE30,创建Idoc Ty... 阅读详情

相关推荐

SM59配置详解:SAP RFC连接类型2/3/I的差异与适用场景

本文深入解析SAP SM59中RFC连接类型2、3和I的核心差异与适用场景。重点剖析类型3(ABAP连接)作为现代SAP系统间通信主干道的高可用配置,类型I在同一数据库内的极速通信优势,以及类型2的历史兼容性角色,并探讨了异步RFC(aRFC/tRFC)在资源调度和高可用架构中的关键作用。

gpt4scribbler的博客 402

SAP ABAP IDOC 基本配置

SAP ABAP IDOC 开发 配置。中文版的,图解法。

SAP-ABAP-IDOC定义、用法及查看报错

IDOC(Intermediate Document)是SAP系统中用于不同应用系统之间进行数据交换的标准接口格式。它是一种系统间通用的数据交换媒介文件,通过IDOC可以方便地和外部系统进行数据交换,它可以内/外传送以实现系统的自动化。IDOC本质上是一个数据容器,用于在任意两个能够理解数据语法和语义的进程之间交换信息。它广泛应用于不同SAP系统之间或SAP系统与非SAP系统之间的数据传输。IDOC的核心理念是利用标准化的消息格式来实现系统之间的通信,从而支持企业级的集成和自动化流程。

baidu_35680696的博客 2680

ECC系统发送供应商主数据(IDoc)到SAP_PI系统的配置步骤

ECC系统发送供应商主数据(IDoc) 到SAP_PI系统的配置步骤

SAP-ABAP:SAP IDOC 全面学习指南

SAP-ABAP:SAP IDOC 全面学习指南

baidu_35680696的博客 1551

SAP ABAP开发由入门到精通

本套课程共12章108节课,课程内容设计由浅入深,知识点全面,每个知识点都采用理论结合代码演示的方式,老师适时在线解答问题,提供学习环境(SAP练习系统、帐号、密码),并提供教材资料。

ABAP IDOC

IDoc(intermediate(媒介)document)是一种系统间通用的数据交换格式,通过IDoc接口可以实现SAP系统之间以及SAP系统与其他系统之间的数据交换。 IDoc(Intermediate Document,中转文档)是SAP提供的系统整合专用的数据/消息格式,它通过ALE方式来进行交换,而SAP就是IDoc提供了EDI的支持,你也可以把IDoc认为是EDI的一个实现。   ...

weixin_42396921的博客 8057

SAP NOTES

SAP R/3 接口技术剖析   2006-09-20   作为目前ERP市场上最为领先的应用系统之一,一直以来,SAP R/3在提供API应用编程接口和接口工具方面也同样领先于其它ERP厂商。ALE/IDocs是SAP公司为SAP R/3 R4.6C版本所提供的接口机制,目前应用最为广泛。在 R4.0以后的版本中,又添加了技术上先进的BAPI。本文作为系列介绍之一,对ALE/IDocs, B

po908的专栏 3657

SAP R3 主流系统EAI接口技术剖析

作为目前ERP市场上最为领先的应用系统之一,一直以来,SAP R/3在提供API应用编程接口和接口工具方面也同样领先于其它ERP厂商。ALE/IDocs是SAP公司为SAP R/3 R4.6C版本所提供的接口机制,目前应用最为广泛。在 R4.0以后的版本中,又添加了技术上先进的BAPI。本文作为系列介绍之一,对ALE/IDocs, BAPI以及其它可用的整合方式进行介绍。 1、ALE/IDocs

天亿的管理软件开发家园 1299

SAP R3业务蓝图设计与实施全流程解析

SAP R3SAP 公司推出的企业资源计划(ERP)系统的核心版本,广泛应用于全球各类大型企业的信息化管理中。其系统架构采用三层结构:表示层(用户界面)、应用层(业务逻辑处理)和数据库层(数据存储),确保系统具备良好的可扩展性与稳定性。业务蓝图(Business Blueprint)是ERP实施项目中至关重要的文档,它详细描述了企业当前的业务流程、系统需求、组织结构以及关键业务规则。

weixin_35706255的博客 1261

从 R/3 走向 SAP S/4HANA:数据库底座、开发范式与性能规则的系统性变化

SAP S/4HANA升级核心要点解析 升级到SAP S/4HANA不仅是版本更新,更是数据处理方式的变革。关键差异体现在: 数据库架构:从AnyDB行存磁盘数据库转向SAP HANA内存列存数据库,大幅提升聚合查询性能 应用架构:Suite on HANA仅更换数据库引擎,而S/4HANA重构了应用数据模型 开发范式:ABAP 7.40+引入现代语法,CDS视图实现计算下推(code pushdown) 性能优化:从"少取少算"转向"尽量下推",让数据库完成复杂计算

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 985

掌握SAP JCo3:Java与SAP系统交互的核心组件

SAP JCo(Java Connector)是SAP公司提供的一个Java库,它允许Java应用程序通过远程函数调用(RFC)来调用SAP系统的函数。JCo3是该库的第三个主要版本,它引入了新的功能以及性能改进。通过使用SAP JCo3.jar,开发者可以构建和维护高性能的SAP与Java应用程序之间的接口。远程函数调用(Remote Function Call,RFC)是SAP系统中的一种技术,允许从一个SAP系统或非SAP系统中远程调用SAP系统内的函数。

weixin_33506815的博客 446

27、NIBCO的SAP“大爆炸”式实施案例剖析

本文深入剖析了NIBCO公司实施SAP R/3系统的‘大爆炸’式项目,涵盖其战略规划、ERP选型、团队组建、实施过程及变革管理等关键环节。通过明确目标、高效协作与全面风险管理,NIBCO成功实现了信息系统的升级与业务流程整合。文章总结了该项目的经验教训,为其他企业实施ERP系统提供了有价值的参考,并展望了系统扩展、数据分析与数字化转型的未来方向。

transformer2023的博客 55

SAP/ORACLE 组织架构及建议

SAP / ORACLE 组织架构解读及建议

dequan2020的博客 2193

SAP ABAP传输请求持久化:CL_R3STANDARD_PERSISTENCE类深度解析与实战指南

SAP ABAP开发中,持久化是数据存储与管理的核心技术,它通过封装数据库操作确保业务数据的可靠存取。其原理在于将对象状态映射到数据库表,实现数据的状态保存与恢复,这对于系统稳定性和数据一致性至关重要。在SAP传输管理系统(TMS)这一特定应用场景中,持久化技术被用于管理传输请求和任务的元数据,确保开发对象的跨系统迁移流程可控、可追溯。本文将聚焦于一个常被误解的底层实现类——CL_R3STANDARD_PERSISTENCE,它并非通用ORM框架,而是TMS中专用于处理标准传输请求(Transport R

weixin_30781433的博客 279

SAP CRM 遇到 R1231 错误:Form of address 0001 not designated for organizations 的根因剖析与修复指引

SAP 项目里,地址主数据这个看似不起眼的小角落,常常埋着能让跨系统集成栽跟头的大坑。(消息类 R1,编号 231,简称 R1231)就是其中一个高频“绊脚石”。本文结合 SAP 官方文档、KBA、社区案例与实战经验,系统梳理该错误产生的底层机制、排查路径、配置要点、自动化检测思路,以及如何在 Customer/Vendor Integration(CVI)、ERP→CRM 复制、向 TM/EWM 传递业务伙伴时避免踩雷。希望能帮你在下次遇到 R1231 时,少走弯路。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 301

SAP S/4 QM模块剖析及常用事务代码

QM与PP、MM等模块高度集成,覆盖从采购检验、生产检验到销售检验的全流程质量管理。符合ISO 9001、GMP、FDA等各类行业规范要求.

因为热爱所以专注,以初心守岁月,以匠心致远达。 656
上一篇: 简单的介绍abap的一些知识
下一篇: 【转】 Spring对DAO的支持
vvtigervv
博客等级 码龄17年 2粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值