下 面提到的场景非常常见,需要为此实现adapter module。下面的示例还将有助于使用 EJB 3.0 在 SAP PI 7.4 中构建adapter module。
场景:
业务要求是在 FTP 上将文件从一个文件夹传输到多个文件夹。文件以整合的方式存在于源端,需要根据文件名放在目标端的不同文件夹中。
对于此方案:仅在 Integration Directory 中完成配置,不构建 ESR 对象。
ESR 对象不是必需的,因为文件需要从一个目录传输到另一个目录。并且不需要消息映射或数据处理。因此,配置直接在 ID 中完成,涉及通信通道、接收方确定、接口确定、发送方协议和接收方协议。
该方案中涉及的两个主要组件是:
发件人通信渠道:
此通道需要从 source 目录中选择多个文件。为此,可以使用发送者通信通道中的“高级选择源文件”选项,或者我们可以在文件名中输入 *.* 以从源目录中选择所有文件。
“源文件的高级选择”选项如下所示:
接收器通信通道:
此通道需要将文件放在 FTP 上的不同文件夹中。为了使单个通信通道将
文件动态地放置在不同的文件夹中,需要开发一个适配器模块,该模块将在
运行时选择目标目录名称和文件名方案。
适配器模块 FileAdapModule 在下面突出显示。
SAP PI 7.4 的适配器模块创建过程:
下面详细介绍了构建适配器模块所需的配置和步骤:
- 安装最新版本的 NWDS 7.3 EHP 1。可用的最新版本的 NWDS 是 NWDS 7.3 EHP1 SP 12。
- 在 NWDS 中使用 JDK 1.6.0_07 或更高版本来构建项目。
- 需要从 SAP PI 系统导入以下 JAR 文件,以创建适配器模块。JAR 文件及其在 PI 系统上的位置如下所述:
- 在 NWDS 中创建 EJB 项目和会话 Bean:要构建适配器模块,需要创建 EJB 项目,并且需要在包含业务逻辑的 EJB 项目中创建无状态会话 Bean。
在 NWDS 中:转到File – New – EJB Project
如下所述输入 EJB 的详细信息,然后单击 Next:选择 EJB Module Version 作为 3.0 并将其添加到 EAR 项目中。
取消选中 client interfaces and classes 复选框。选中“Generate ejb-jar.xml”部署描述符复选框,然后单击 Finish。
将创建一个 EJB 和 EAR 项目,如下所示。EJB 项目包含业务逻辑,因为部署需要 EAR Poject。
5. JAR 添加到 EJB 项目的文件:由于 Adapter Module 需要标准的 SAP JAR 文件进行编译,因此需要将这些 JAR 文件添加到 EJB 项目中。
将步骤 3 中提到的所有 JAR 文件放在本地计算机的 Folder 中。
右键单击 EJB 项目,然后选择 Build Path – Configure Build Path。
选择 Library 选项卡,然后单击 Add Variable
从计算机中选择 JAR Files 文件夹,然后单击 Extend:
选择所有 JAR 文件,然后单击 OK。
6. 将无状态会话 bean 添加到 EJB 项目中:
右键单击 EJB 项目,然后选择 New – Session Bean (EJB 3.x)
输入会话 Bean 详细信息,如下所述:
- 输入 Java 软件包和类名称。
- 选择 State type (状态类型) 作为 “Stateless(无状态)”。
- 选中 Remote (远程) 和 Local Interfaces (本地接口) 复选框。
点击 下一步 和 完成。会话 bean 将添加到 EJB 项目的上述包中,如下所示:
打开 FileAdapModule.java 文件和逻辑以确定 Directory 和 File names 将添加到此 java 文件中。在 bean 中添加一个 Method ModuleData 进程(ModuleContext、ModuleData),如下所示。参考代码附在附件部分。
右键单击 EJB 并生成项目。
7. 在 EJB 项目中,如下所述维护 META-INF 文件,以便正确部署。附上 ejb-jar.xml 文件以供参考:
维护ejb-j2ee-engine.xml文件,如下所示:
8. 导出 EJB Jar 文件:EJB 的源代码和类文件存储在 JAR 文件中,该文件部署在 J2EE 服务器上。
右键单击 EJB 项目,然后选择 Export – SAP EJB JAR File。
选择 EJB 项目和目标,如下所述:
9. EAR 项目设置:
此项目包含 EJB 项目 JAR 文件,并具有 application-j2ee-engine.xml 文件形式的 SAP 标准 EAR 内容。
打开 application-j2ee-engine.xml 文件并输入下面附带的源代码。 像 EJB 项目一样构建 EAR 项目。
10. 导出 EAR 文件以进行部署:
- 右键单击 EJB 项目,然后选择 Export – SAP EJB JAR File。
- 选择 EAR 项目和目标,如下所示。
11. EAR 部署和设置:将 PI 系统设置为 NWDS 中的部署系统:
- 转到窗口 – 首选项 – SAP AS Java,然后单击添加。
- 提供 详细信息 ,系统将被添加,如下所示。
在 PI 系统上部署 EAR 项目,如下所示:
- 右键单击 EAR 项目,然后选择 Run As – Run on Server。
- 选择需要在其上进行部署的 PI System。
- 选择需要部署的 EAR 工程,然后单击 Finish。
步骤屏幕截图如下:
在 Deployment View Console 中,可以检查 deploymnet 状态。检查应无误进行。
这如下面的屏幕截图所示
12. 通信通道设置:
Sender Communication channel (发送方通信通道) – 作为源文件名,接收方适配器模块需要选择相应的目录。
在 发件人 渠道 中,需要选中 ASMA 属性 - 文件名 复选框。
接收器通信通道
适配器模块需要动态设置 Directory Name 和 File name,因此需要在 ASMA 属性复选框中选中 File Name 和 Directory。
- 自定义适配器模块(由 EJB 中提到的 JNDI 名称标识)需要添加到标准 SAP 模块上方的 Module 选项卡中。
- Directory path 作为参数传递给自定义适配器模块逻辑,因此需要将其添加到 Module Configuration 部分中,如下所示。
- 然后运行方案,可以在 Communication Channel monitoring 中检查审核日志,其中还将包含自定义适配器模块调用的跟踪。