比较2个XML,仅发送两者之间的差异

2020-08-23 12:16发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好大师, 有一个新的要求,P...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好大师,

有一个新的要求,PI将每天对数据库进行一次调用(通过SP通过JDBC)并获取数据。 这些数据需要与上一次调用进行比较,并且仅将差异发送到Web服务。

是否可以仅使用PI执行此操作? 我正在使用7.31版单堆栈。

我当时正在考虑将数据保存在NFS上的文件中并进行比较,但这超出了PI的限制(也许我需要使用脚本之类的东西)。 有什么办法可以使用PI映射来操纵2个文件并生成一个新文件? 我还有什么其他选择?

感谢进阶!

3条回答
Violet凡
2020-08-23 12:29

如果要这样做 普通PI(不使用BPM),您可以构建如下内容:

  • 构建一个接口(IF01),该接口通过JDBC从db读取数据并将结果写入名称为" temp"的文件中。 文本"。
  • 配置脚本以通过"运行OS命令"功能在IF01的文件接收器通道中运行
  • 该脚本应执行以下操作。 检查文件夹中是否只有" temp.txt"文件。 如果temp.txt是唯一文件,则将其重命名为" input.txt1"。 如果除" temp.txt"之外还有第二个文件,请将" temp.txt"重命名为" input.txt2"
  • 使用文件发送者通道创建第二个接口(IF02)。 设置发送者通道以触发" input.txt2",以便仅在两个文件都存在时才触发。 还配置通道以通过文件发送方通道"其他文件"部分选择" input.txt1"。
  • 在IF02中添加Java映射,并将主有效负载(= input.txt2)与邮件的附件进行比较 (= input.txt1)以及类似" java-diff-utils"( https://github .com/java-diff-utils/java-diff-utils )将diff操作的结果设置为主要有效载荷。
  • 配置文件接收器通道以写入差异结果(主要有效载荷) )到磁盘上。

一周热门 更多>