背景
编写 UDF 总是比在 ESR 之外编写 Java 代码并将其作为导入的存档带回要容易得多。
您可以在此博客中找到有关直接在 ESR 中实施 Java 映射的所有详细信息:
在不同的 Java IDE(如 Eclipse、SAP NWDS 等)中添加外部 Jar 文件总是很简单的。
用于开发 Java 映射。但是,除了您使用 NWDS 作为 Service Repository 之外,您始终拥有
在 Java 映射与 UDF(用户定义的函数)相比时执行几个额外的步骤。
此博客将对 Swing 客户端有所帮助。
此外,我们将这些 Jar 文件添加到本地以编译我们的 Java 代码,下次我们必须使用它以备将来使用
代码的增强功能。但是使用函数库功能,此 Jar 将在整个 SWCV 中可用。
现在,随着不同的开源 API 和 Java 库的推出,您总是希望将它们添加到
您的代码以减少开发工作或实现特定功能。
示例 API
在 PI 中,我们通常使用 String 相关函数。org.apache.commons.lang.StringUtils 是一个非常强大的 API
可用,它提供了很好的实用程序来处理字符串,例如检查数字/字母数字、查找差异
或者反转普通字符串功能以外的功能,我就以这个为例。
您可以从以下网站下载 Jar 文件:
Lang – Download Apache Commons Lang
现在,您需要根据您的 PI 服务器 JDK 版本(不是 JRE)下载正确的 API。Commons Lang 2 for
Java 1.2+ 和 Commons Lang 3 适用于 Java 6.0+。我将使用 Lang 2。
现在,文件 'commons-lang-2.6-bin.zip' 文件已下载。现在解压缩,您可以看到如下:
注意,我们需要在 PI ESR 中上传“.jar”文件,而不是“.zip”文件。
现在打开 ESR,创建导入的档案(图片中的“Apache_StringUtils”)和
上传 'commons-lang-2.6.jar',您可以在库中看到如下所示的类文件:
在函数库 UDF 中使用 Jar
按照博客中的描述创建函数库:
PI 7.1 流程集成中函数库的概念 - 流程集成 - SCN Wiki
转到 'Archives Used (使用的档案)':
选择您在上面创建的存档。
现在,在 'Import Instructions' 选项卡中,添加 Package name(包名称),就像在 Java 代码中使用的那样。
它已准备好在 UDF 下使用。我将使用 “equals” 函数进行测试。
现在,所有 StringUtils 函数都是 NULL 安全的。
示例 UDF 代码
public String StringManipulation(String firstStr, String secondStr, Container container) throws StreamTransformationException{
if(StringUtils.equals(firstStr,secondStr))
return "YES";
else
return "NO";
在 Message Mapping 中访问代码
您可以在整个 SWCV 中的任何消息映射中使用函数库。它如下所示:
通过使用开源 API,您可以找到针对不同困难要求的简单解决方案,有时很少有超出基本 Java 功能能力的解决方案。