SAP Process Integration (PI) 和最新版本称为 SAP Process Orchestration (PO),是 SAP 提供的应用程序集成中间件。SAP PI (PO) 是 SAP Netweaver 产品组的组件(中间件),可促进 SAP 与其他外部系统之间的系统集成。
SAP 集成应用程序的第一个版本称为 XI (Exchange Infrastructure)。系统的下一个重大变化是引入了 SAP Process Integration (PI),最新版本是 Process Orchestration (PO)。
在本文中,我们将讨论,
- SAP PI/PO 的功能
- SAP XI、PI 和 PO 的历史和演变
- NetWeaver 堆栈中的 SAP PI
- SAP PI 相对于其他中间件的优势
- SAP Process Orchestration (PO) 的架构
- 如何在 SAP PI/PO 中开发界面
- 用于界面开发 (IDE) 的工具
- 如何创建消息映射程序
- 运行时的 SAP PI 消息处理步骤
- SAP PI 的未来
- 如何学习 SAP PI
SAP PI (PO) 的功能
作为 SAP NetWeaver 堆栈的集成代理,SAP PI (PO) 能够将 SAP 与其他遗留系统和应用程序集成。
该系统允许您将 SAP 与其他 SAP 或非 SAP 系统集成,以及以同步和异步通信技术构建和执行 A2A 和 B2B 接口。
最重要的是,它为组织提供了一个中心位置,用于构建、集成和监控环境中异构系统之间的接口。此外,PI 还帮助您根据面向服务的架构 (SOA) 将服务暴露给外部世界。
SAP PI 的主要功能是:
- 使用 sFTP、AS2、SOAP、HTTP 等通信协议连接系统。
- 在系统之间路由消息。PI/PO 可以根据业务流程规则或技术路由规则,将消息从一个发送方系统路由到一个或多个接收方系统。
- 在发送方和目标系统之间转换或映射消息格式。
- 为在系统和接口监控功能之间交换消息提供运行时环境。
- 通过一系列步骤执行集成工作流,例如采购订单流程与审批操作的集成。
SAP XI、PI 和 PO 版本的历史/演变:
SAP PI 从 XI 到 CPI 的历史和演变
Exchange 基础架构 (XI)
SAP 集成平台于 2003 年首次向客户推出。该产品称为 SAP XI (Exchange Infrastructure)。第一个版本是 SAP XI 2.0。然后引入了 XI 3.0。XI 3.0 是我在 2008 年使用的第一个 SAP XI 版本。
当时,大约在 2008 年,SAP Process Integration (SAP PI) 的第一个版本已经可供普通客户使用。SAP 于 2006 年发布了它。
SAP XI 是一个具有 Java 堆栈和 SAP ABAP 堆栈的双堆栈系统。换句话说,系统的一些组件安装在 ABAP 堆栈中,而其他组件包含在 Java 堆栈中。例如,集成引擎和业务流程引擎 (BPM) 基于 AS ABAP 堆栈,而适配器引擎则驻留在 AS Java 堆栈中。
流程集成 (PI)
PI 从其 SAP PI 7.0 的第一个版本发展到 PI 7.30。与 SAP XI 类似,PI 的前几个版本由 ABAP 和 Java 双堆栈组成。第一个纯 Java 单堆栈集成平台 PI 7.30 于 2010 年推出。从双 SAP XI/PI 系统迁移到纯 Java 单堆栈版本是此 NetWeaver 产品的一个重要里程碑。
流程编排 (PO)
最后,SAP 于 2012 年推出了 SAP 流程编排 (PO)。简而言之,SAP PO 是 SAP PI 单堆栈与业务流程管理 (NW BPM) 和业务规则管理 (BRM) 的组合。但是 SAP PI 和 PO 之间还有其他几个区别。
云平台 (CPI) 和 HANA 云平台集成 (HCI)
SAP 集成平台的最新成员是 SAP Cloud Platform (CPI),其正式名称为 SAP HANA Cloud Platform Integration Service (HCI)。
请记住,SAP CPI 不能替代 SAP PI/PO。它是 SAP Integration Suite 的全新集成产品,允许组织将 SAP 云应用程序与其本地系统集成。较新版本的 SAP PO 与 CPI 集成,因此您可以协调本地和云集成。
您可以在链接的文章中阅读有关 PO 到 CPI 迁移的更多信息。
SAP PI (PO) 相对于其他非 SAP 中间件的优势
与 SAP 无缝集成
SAP PI 的主要优势之一是使用 SAP 集成技术无缝实现接口,例如中间文档 (ALE/iDoc) 框架、业务应用程序编程接口 (BAPI)、远程函数调用 (RFC) 和 ABAP 代理框架。
此外,SAP 还提供了一套工具,可以在 System Landscape 中轻松注册 SAP 后端系统。
全面的连接选项集(适配器)
SAP PI 提供了一套全面的适配器来集成整个环境中的异构系统,例如 RFC、超文本传输协议 (HTTP)、Java 数据库连接 (JDBC)、文件/FTP、邮件、iDoc、Java 消息服务 (JMS)、简单对象访问协议 (SOAP)、RosettaNet 实施框架 (RNIF) 是 SAP 随标准包提供的一些适配器。
此外,适用性声明 2 (AS2)、安全文件传输协议 (SFTP)、开放数据协议 (OData)、表述性状态传输 (REST)、Odette 文件传输协议 (OFTP)、EDI 分隔符和 X400 适配器可以作为附加组件安装。
构建界面的简单性
界面开发人员可以使用集成开发环境 (IDE) 轻松构建端到端集成场景,例如 SAP 提供的基于 Eclipse 的 NetWeaver Development Studio (NWDS) 或基于 Jawa-Swing 的 IDE。
端到端集成或集成流 (iFlow) 可以使用 Eclipse NWDS 的用户友好图形界面构建。此外,iFlows 采用标准的 NW BPM 表示法,这使得开发工作更加有效,开发界面更加用户友好。
与其他工具相比,这种使用用户友好的图形 IDE 构建界面且无需编码(或最少编码)的能力是 PI/PO 的主要优势之一。
中央接口监控功能
能够集中监控所有接口是 SAP PI 的主要优势之一。SAP PI 的消息监控器允许您监控接口运行时管道的每个步骤。
可以轻松监控消息的状态(从发件人系统传输到目标系统)。消息监视器可以配置为记录发送方适配器、路由确定、XML 验证、消息转换、接收方适配器等的接口运行时步骤的信息/警告/错误。
此外,PI 的基于组件的消息警报框架 (CBMA) 可用于在检测到界面问题时向系统管理员发送自动警报或电子邮件。
SAP Process Orchestration (PO) 的架构
SAP XI、PI、PO、HCI/CPI 的架构差异很大。这是因为软件从 ABAP 和 Java 双堆栈解决方案不断演变为纯 Java 单堆栈产品,再到支持云的产品。因此,我们需要分别检查每个产品的架构,并讨论 SAP PI、PO 和 XI 之间的区别。
什么是 SAP Process Orchestration (PO)?
SAP PO 是捆绑在一起的多个产品的组合。
PO 包括,
- 业务流程管理 (BPM)
- 业务规则管理 (BRM)
- 企业服务存储库 (ESR)
- 流程集成 (PI)
- B2B 协作
- 云集成
SAP Process Orchestration (PO) 的组件
SAP PI 可以进一步分为:
- 企业服务存储库 (ESR)
- 集成目录 (ID)
- 系统景观目录 (SLD)
- 高级适配器引擎 (AAE)
ESR、ID 和 AAE 的功能在 SAP PI/PO 单堆栈版本中作为高级适配器引擎 (AAX) 捆绑在一起。
纯 Java 单堆栈 PI 或 PO 版本的架构
系统景观目录 (SLD)
SLD 是用于注册和保存 landscape 中系统相关信息的中心组件。环境中系统的元数据及其软件组件存储在 SLD 中。
Enterprise Service Repository (ESR) 内容
ESR 是包含数据类型、消息类型、服务接口、消息映射程序和接口的其他对象定义的中央存储库。
ES 生成器
ES Builder 是用于定义 ESR 中的对象的工具。
配置内容:
配置内容 是包含在接口开发的配置时定义的对象的中央存储库。配置时的对象定义了 Adapter configuration 等接口的技术参数。
集成生成器
Integration Builder 是一组工具,允许集成专家使用在 ESR 和 SLD 中创建的对象配置端到端集成。
集成专家
集成专家是构建和部署界面的 SAP PI 开发人员和顾问。
适配器引擎
Adapter Engine 包含一组适配器,例如 SOAP、HTTP、FTP 等,这些适配器允许 SAP PI 连接到异构系统。
Eclipse PI 工具
Eclipse PI 工具也称为 NetWeaver Developer Studio (NWDS),它允许集成开发人员访问和创建 ESR 和 ID 对象。
中央消息监视器
Central Message Monitor 为用户提供了一组工具,用于检查 SAP PI 中接口的运行时。监视器允许系统管理员检查接口的所有消息处理步骤。用户可以使用中央消息监视器监控适配器引擎的通信相关日志、传入/传出消息内容、消息映射日志、消息拆分日志、路由规则的执行、内容转换的状态等。
这确实是可用于监控 PI 中内置的所有接口的一个中心组件。
NetWeaver 管理员 (NWA)
NWA 是 SAP PI 的管理员门户。用户授权、证书、密钥、性能相关参数、端口、目的地等由 SAP PI 系统管理员(BASIS 顾问)定义,并在 NWA 中配置。
如何在 SAP PI (PO) 中开发接口
如果我们举一个简单的 A2A 集成场景,作为接口开发者,你需要配置 3 个组件来构建完整的接口:
- 第 1 步 – 系统环境目录 (SLD)
- 第 2 步 – 企业服务存储库 (ESR)
- 第 3 步 – 集成目录 (ID)
所有三个组件都可以使用 URL
http://<host>:<port>/dir 从 SAP PI 主页访问
SAP PI/PO 主页
第 1 步 – 系统环境目录 (SLD)
集成环境中的系统在 SLD 中注册为产品、软件组件版本 (SWCV)、技术系统和业务系统的组合。
在 SLD 中使用特定方法注册不同类型的系统。例如,注册 SAP 后端系统与表示第三方或独立系统的方式不同。但是用户友好的向导可用于指导您完成系统注册过程。
例如,SLD 中的软件组件版本 (SWCV) 创建向导如下所示:
SLD 中的 SWCV 生成向导
当然,有一种方法可以跳过此步骤。如果集成系统不在组织环境中,并且技术细节未知,则可以在集成目录(步骤 3)中直接将系统表示为 Business Components 或 Parties。
第 2 步 – 企业服务存储库 (ESR)
ESR 是您开发/设计对象(如发送方/目标消息的数据类型和消息类型)的地方。此外,发送方(出站)和目标(入站)服务接口在 ESR 中定义。最后但并非最不重要的一点是,发件人消息和目标消息之间的消息映射程序也是在 ESR 中创建的。
第 3 步 – 集成目录 (ID)
ID 是您使用在 ESR 和 SLD 中创建的对象配置端到端集成方案的位置。
通信适配器(也称为发送方系统和目标系统的通信通道)在 ID 中配置。例如,如果发送系统是 sFTP 服务器,则此步骤会配置 sFTP 服务器主机名 (IP)、目录、文件名格式、身份验证方法、存档方法等。
发送方和目标系统之间的消息路由也在 ID 的配置时间中定义。
ID 中的配置时间回答了端到端集成场景的所有这些问题,
- 什么是消息发送系统?
- 是否有多个消息接收器?
- 消息接收系统是否应该从消息内容动态派生?
- 将发件人消息转换为目标消息格式的映射程序是什么?
- 应该如何定义适配器?
SAP PI/PO 的集成开发环境 (IDE)
有两个 IDE 可用于 SAP PI 接口开发和配置,
- Java Swing 客户端
- 基于 Eclipse 的 NetWeaver Development Studio (NWDS)
Java Swing 客户端
基于 Java Swing 的客户端无疑是 SAP PI 最古老的 IDE。它是在 SAP XI 期间推出的。ESR 和 ID 开发都可以使用 Swing Client 完成。
ESR 对象在 Enterprise Service Builder (ESB) 中构建,ID 配置在 Integration Builder (IB) 中完成。
Java 运行时环境 (JRE) 应该安装在开发人员的客户端计算机上,以运行 Swing 客户端。
企业服务构建器
用于 ESR 对象开发的 Swing 客户端
ESB 中的图形消息映射程序
swing ESR 工具中的 Graphical Message Mapping 程序
集成生成器
在 ID swing 客户端中创建的集成配置
Eclipse NetWeaver Developer Studio (NWDS)
相当新的 IDEInstaller Development Studio 是一个基于 Eclipse 的工具,可用于全面开发端到端的集成。与 Swing Client 类似,NWDS 能够创建 ESR 对象和 ID 配置。
使用 NWDS 需要 Java 开发人员工具包 (JDK) 和 Java 运行时环境 (JRE)。
使用 NWDS 的优势是:
- 与基于 swing 的工具相比,系统更加用户友好。
- 一个 IDE 适用于所有基于 SAP Java 的开发。例如,NWDS 能够创建 Web Dynpro 应用程序,而不仅仅是集成方案。
- 可以利用 Eclipse IDE 功能创建 Java 映射。
- Eclipse 中提供了大量用于开发的插件。
- 能够使用 NW BPM 表示法中的 iFlows 构建端到端集成。
SAP NetWeaver Developer Studio
NWDS 加载屏幕
Enterprise Services Browser of NWDS:
NWDS的ESR视图
NWDS 中的Message Mapping:
Graphical Message Mapping program in NWDS ESR 视图
NWDS 的 PI Explorer 中的 iFlow:
在 NWDS 中生成的 iFlow
如何在 SAP PI/PO 中创建消息映射程序:
发送方消息格式到目标消息格式的转换是中间件的主要功能之一。
使用 Swing Client 或 NWDS,您可以创建接口消息映射程序。
SAP PI 中有三种不同的Message Mapping技术:
- Graphical Mapping
- Java Mapping
- XSLT Mapping
每种技术都有自己的优点和缺点。让我们详细看看每种映射技术。
Graphical Mapping
这是最常用的映射技术。使用这种方法,可以使用 ES builder 或 NWDS 的图形用户界面构建映射程序。
对于集成专家来说,这种映射技术的主要优势是能够使用拖放选项构建映射程序,而无需编码。此外,开发人员可以重复使用 SAP 提供的标准映射功能。
SAP 为 String、Boolean、Arithmetic、Date、Node、Conversions 和 Transformations 提供了标准函数。例如,Substring 和 Concatenate 是一些 String 函数。If、Else 和 Or 等逻辑在布尔标准函数下可用。在 Date transformations(日期转换)下,我们有日期格式转换函数。
例如,如果要将 MM-DD-YYYY 的发送者消息日期格式转换为接收者消息日期格式 YYYY-MM-DD,则可以使用 DateTrans 函数完成,无需任何编码。这些函数可以使用简单的拖放功能应用于消息映射。
graphical-mapping-demo-SAP-PI
图形映射程序的维护和修改比其他技术更容易。这是因为 Map 可以使用图形函数构建,而无需任何编码。此外,您可以使用用户定义的函数 (UDF) 注入代码来构建复杂的逻辑。
Java Mapping
Java 映射使用文档对象模型 (DOM) 或简单 API for XML (SAX) 解析器技术。Java 映射可用于构建 Graphical mapping 选项无法处理的复杂逻辑。
XSLT Mapping
当您需要更改消息的命名空间或对消息内容进行排序/筛选/分组时,主要使用此方法。XSLT 映射比其他技术使用更多的内存,并且不容易维护。
SAP PI/PO 中的消息处理步骤
最终,在构建和部署接口后,PI Runtime 会根据定义的设计和配置负责消息的实际处理。消息根据 SLD 中内置的对象、ESR 和 ID 中的配置按特定顺序进行处理。
在单堆栈 SAP PI/PO 版本中,消息处理由 Advance Adapter Extended (AAX) 在运行时按以下顺序完成。
发送方适配器处理
- 入站 XML 验证
- 接收器确定
- 接口确定
- 消息映射
- 出站 XML 验证
- 接收器适配器处理
AAX 的消息处理管道概述:
SAP PI/PO AAX 的消息处理步骤
PI/PO 实际示例和场景
我已经讨论了一些利用 SAP PI/PO 和 CPI 功能的实际集成场景。您可以在这里找到它们。
- 销售点与 SAP S4 HANA 和 CAR 的集成
- 欧盟业务合作伙伴 VIES 增值税税号验证
- Electrocnic Bank 对账单 (EBS) 与 SAP 的集成
- 葡萄牙数字签名与 SAP 的集成S4 HANA
SAP PI/PO 的未来
正如我们在开头所讨论的,SAP PI 不断发展。SAP 定期向 PI 添加新的功能和能力。由于这些改进,PI 的架构发生了巨大变化,一些组件已经过时。
删除 ABAP 堆栈
从双堆栈 SAP XI/PI 版本迁移到纯 Java 单堆栈版本已经成为现实。截至目前,较新版本的 SAP PO 不包括双堆栈安装选项。
从 PO 7.31 开始,双堆栈安装不可用。因此,对于具有双堆栈安装的组织来说,迁移到较新的 Java 版本的 SAP PO 非常重要。
本地 SAP PO 中包含的 Cloud Integration Runtime
随着基于云的应用程序的最新趋势,SAP 为基于云的集成场景引入了 SAP HCI 和 CPI。HCI 和 CPI 只能用于设计和部署基于云的集成场景。本地 SAP PO 无法处理云集成。
但是,随着 SAP PO 的最新变化,我们能够将 SAP PO 用作本地和基于云的集成的混合解决方案。
您可以在本地 SAP PO 中启动 SAP CPI 内容。
云集成 与本地 PO 集成
SAP PO 和混合架构的这一功能仍在不断发展。将来,我们将能够拥有一个具有更多功能来部署本地和云集成的单一集成解决方案。
B2B EDI集成的B2B插件,而不是Seeburger适配器:
随着B2B集成驾驶舱的推出,Seeburger Adapter的功能已经过时了。您可以使用 B2B 附加组件有效地构建 B2B EDI 集成。
B2B 加载项与 SAP PI 或 PO 版本 7.1 或更高版本兼容。附加组件可以通过几个简单的步骤安装在 SAP PO 中。
在 SAP PI/PO B2B 主控室中配置的 EDI 消息类型
您可以配置 EDI 主控室以处理不同的 EDI 格式,例如 Edifact、ANSI X.12、Tradacoms、VDA 和 EANCOM。B2B Cockpit 还具有构建自定义模块的功能,以将文本文件格式(如 CSV 或纯文本)转换为 XML。
此外,包中还包括 B2B 适配器 AS2、OFTP、EDI Separator 和 X400。
总之,B2B Integration Cockpit 是 furure 的工具,而 Seeburger 适配器则已成为过去。
如何学习 SAP PI?
当谈到学习 SAP PI 的话题时,应该明白经验与技术知识一样重要。集成经验是定义 SAP PI Consultant 与 SAP PI Developer 角色的主要因素。
凭借在创建映射程序、构建 iFlow、配置适配器等方面的正确技术知识,您可以成为一名可靠的 SAP PI 开发人员。