在sappi中使用SFTP协议常常会遇到挑战,尤其是在我们没有标准解决方案的时候。那时,我们使用shell脚本或购买第三方适配器来解决问题。由于SP8.0和更高版本的API 7.11 service pack,sap本身已经为SFTP解决方案提供了标准适配器(此处),因此在sap PI中使用SFTP协议的需求变得更简单了。
但是,较旧的service pack仍然需要依赖自定义解决方案或第三方适配器,此博客将对较旧的service pack有所帮助。在本文中,我将解释如何使用适配器模块来完成SFTP。
为了简单起见,我创建了两个独立的模块,一个用于发送方(从SFTP服务器读取文件),另一个用于接收方(在SFTP服务器上创建文件)。这个博客将涵盖接收器模块,我将为发送者创建另一个博客(这里)。
为了构建这些模块并连接SFTP服务器,我使用了JSch jcraft jars,主要是因为它的各种方法以及在自定义类中使用它们的方便性。此外,我发现JSCH能够处理各种基于密码、公钥和基于主机的身份验证方法。上面有很多例子使用这些类。例如,云从,下面是我在接收模块中使用的一种方法(使用密码进行身份验证并连接到SFTP服务器)的片段。
同样,我们可以执行各种操作,例如在写入文件时创建临时名称的文件,零售大数据解决方案,并在完成文件写入后将其重命名为最终文件名等等。一旦模块代码完成了所需的操作并部署到sappi中,下一步就是使用它。我在标准文件适配器的module部分使用了它,现在我的接口将调用自定义适配器模块在sftp服务器上发布文件,数据分析和大数据,但另外它还将调用文件适配器的标准处理序列,在标准文件适配器的Parameters选项卡中提到的文件位置创建一个文件。单独运行这些附加文件,如果需要,由标准文件适配器创建的可以用作发送到sftp服务器的数据的存档存储库,或者如果没有,云计算与大数据,我们可以简单地将空负载传递到此附加文件,因此出于任何数据安全原因(必须相应地修改模块代码,以便将空负载传递到的标准文件适配器处理序列CallSapAdapter)模块部分)。
对于内容转换,我们可以使用标准bean StrictXml2PlainBean,并且可以在自定义sftp模块之前包含在文件适配器的模块部分中。
对于监控,那云,我们可以在模块代码中的每个步骤添加审计日志,并且在通信通道监控日志中也可以看到这些日志。
参考:
SFTP使用自定义适配器模块第2部分–发送器
?overridelayout=t…
JSch–Java安全频道–示例
嗨,阿莫尔,
不错的博客。甚至我也试着用我自己的方式去做,这对我们很有帮助。
SAP PI 7.0中的SFTP适配器模块