介绍
SAP NetWeaver PI 安装包括一个示例适配器,该适配器可用作开发任何自定义适配器的模板。因为,我找不到任何博客文章建议逐步详细配置以开发相同的配置。我写了这篇博文来描述开发自定义适配器的步骤。希望这对 SAP PI/PO 开发人员有所帮助。这篇博文介绍了如何在 NWDS (SAP NetWeaver Development Studio) 中完成此操作。
开发自定义适配器的步骤如下:
步骤1: 收集开发自定义适配器所需的所有必要文件。
- 示例适配器的源代码 -源代码在以下 SAP 注释中作为附件提供: - 1004000 – SAP NetWeaver PI 适配器/模块开发:API 更改
如上所述下载 .rar 文件。现在,将其解压缩到本地目录并从 src 文件夹中提取所有 java 代码。我们还可以从以下位置的操作系统级别获取代码:“/usr/sap/POD/J12/j2ee/cluster/apps/sap.com/com.sap.aii.adapter.sample.ra/connector/connectors/com.sap.aii.adapter.sample.ra.rar”。 在这里,我们将得到 .CLASS 文件。要访问 java 代码,请拖放 .java 反编译器工具(即 jd-gui)中的 CLASS 文件。它不需要安装,可以从以下位置下载:“Java Decompiler” 下载适用于 Windows 的压缩版本,然后提取并运行它。
- PI adapter jar files -
- com~tc~sec~ssf.jar
- com~tc~bl~txmanagerimpl~plb~impl.jar
- com~tc~bl~guidgenerator~impl.jar
- com~tc~je~appcontext_api~API.jar
要从 PI 系统检索上述四个 jar 文件,请分别使用地址在操作系统级别直接访问它们:
/usr/sap/<SID>/J<nr>/j2ee/cluster/bin/ext/security.class/lib/com~tc~sec~ssf.jar
/usr/sap/<SID>/J<nr>/j2ee/cluster/bin/ext/tc~bl~txmanager~plb/lib/private/com~tc~bl~txmanagerimpl~plb~impl.jar
/usr/sap/<SID>/J<nr>/j2ee/cluster/bin/core_lib/com~tc~bl~guidgenerator~impl.jar
/usr/sap/<SID>/J<nr>/j2ee/cluster/bin/interfaces/appcontext_api/lib/private/com~tc~je~appcontext_api~API.jar
步骤 2现在,要使用步骤 1 中收集的自定义适配器开发所需的所有必要文件来设置 SAP NetWeaver Developer Studio (NWDS),请按照以下步骤操作:
- 在 NWDS 中创建新的 Java 项目。
- 在此工程中创建 package。包名称必须与之前下载的包名称完全相同:“com.sap.aii.af.sample.adapter.ra” *稍后将重命名。
- 将步骤 1 中的所有 java 文件复制到项目目录中。
- 现在,重命名包。重命名后,所有文件都将根据其新的包名称进行修改。是时候更改一些代码了。打开 SPIManagedConnectionFactory.java 文件并给出 adapterType 和 adapterNamespace 的值
通过添加下面提到的 jar 来配置项目的 CLASSPATH,我们在第 1 步到第 2 步中从应用程序服务器下载了这些 jar 文件。
将以下两个内置库添加到项目中。
Java EE5 Library # XPI Adapter Library
Java 项目流程将如下所示:
a.)接下来,我们必须创建 RAR 项目。为此,请在 NWDS 中创建一个连接器项目。
b.)RAR 通常包含以下内容:
# META-INF\connector-j2ee-engine.xml # META-INF\log-configuration.xml #META-INF\Manifest.mf #META-INF\ra.xml
在 META-INF 文件夹中创建这些文件。这些文件的代码可通过以下链接获得
https://help.sap.com/doc/saphelp_nw73/7.3.16/en-US/3d/0f9f405660f418e10000000a1550b0/content.htm?no_... 现在,在 META-INF 文件夹中再创建三个文件:
# META-INF\buildinfo.xml # META-INF\SAP_MANIFEST.MF # META-INF\single-module-dd.xml
这些文件的 MF # META-INF\single-module-dd.xml 代码将在步骤 1-1 中下载的 rar 文件中提供。现在,上述文件的一些代码必须更新为:
log-configuration.xml:
name="test_ra.trc" pattern="./log/applications/com.samishti.test.adapter.ra/default.trc" <log-controller name="com.samishti.test.adapter.ra" effective-severity="ERROR">
ra.xml:
<display-name>test_ra</display-name>
<vendor-name>samishti.com</vendor-name>
<managedconnectionfactory-class> com.samishti.test.adapter.ra.SPIManagedConnectionFactory</managedconnectionfactory-class>
<connectionfactory-impl-class> com.samishti.test.adapter.ra.CCIConnectionFactory</connectionfactory-impl-class>
<connection-impl-class>com.samishti.test.adapter.ra.CCIConnection</connection-impl-class>
更改适配器类型和适配器命名空间的配置属性值:
<config-property-value>STA</config-property-value>
<config-property-value>http://samishti.com/test/adapter</config-property-value>
SAP_MANIFEST.MF:
keyvendor: samishti.com
keyname: com.samishti.test.adapter.ra
name="com.samishti.test.adapter.ra" vendor="samishti.com"
根据具体的要求更改这些值。
步骤 3
- 现在,必须在 ESR 中创建适配器元数据。SampleRA.xml 是从步骤 1 中下载的 rar 文件中提取的适配器元数据文件。现在更改 SampleRA.xml文件中的JNDI 名称
<Name>JNDIName</Name>
<Value>deployedAdapters/com.samishti.test.adapter/shareable/com.samishti.test.adapter</Value>
在 ESR 中创建新的命名空间,然后创建新的适配器元数据对象。适配器名称和 namespace 的组合必须与 SPIManagedConnectionFactory.java 中使用的值完全匹配。
成功创建对象后,它将提供默认元数据。通过在 Step3-i1中导入修改后的 SampleRA.xml 来覆盖此元数据。现在,保存并激活这个新的 metadata 对象。
第 4 步:创建和部署适配器
导出 RAR 工程的 connectorModule 文件夹中的 Java 工程的 JAR 文件。
将 RAR 文件导出到 RAR 项目根文件夹中
在部署透视图中将 RAR 文件部署到 AS Java。部署前,请配置 SAP AS Java Server。
- 在此之后,开始部署
验证适配器 转到NWA > Troubleshooting > Java > JNDI Browser。导航到 deployedAdapters 文件夹,并验证 JNDI 对象名称是否已正确注册。适配器元数据中指定的 JNDI 名称必须与此值匹配。
测试适配器为了进行测试,您需要使用适配器创建服务、发送方和接收方通信通道以及发送方和接收方协议。
结论
上面就是创建和部署自定义适配器的方法。此适配器将作为 SAP 标准适配器执行。可以根据要求对代码进行更改。