SAP PI/PO Proxy2JDBC SQL_QUERY动态接口示例

[复制链接]
发表于 2025-12-22 12:59:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次
配景:
完备demo步调:
IR:
ID:
SPROXY:
测试代码:
留意点:

配景:

中途暂时帮客户项目做其他功能,项目上有部分开发项须要通过PO去第三方数据库取数,项目上的开发对PO不太熟,就资助抽闲看了下,客户前期配的PO都是用的SELECT的方式,每个接口都配了一个PO,这种实在不太方便,由于每次调解字段都须要更新PI相干的设置,去激活调解SPROXY,挺贫苦的,也没办法实现一些需求,查了下官网,发现实在有一种更方便的方式,SQL_QUERY,于是做了个Demo供其参考。
   感谢品评区朋侪提示,MM和OM的步调在此示例中并不须要,结构都是划一的,配的话多此一举了。
  
以下为官方阐明文档所在:
Configuring the Receiver JDBC Adapter | SAP Help Portal
项目中常见的用法是使用SELECT Statement,但是该方法现在我以为有一些毛病:


  • 查询字段须要指定,返回字段也须要指定,一旦发生字段需求变更时,须要更改PI设置,不敷机动; 
  • 由于key中只能使用如下比力远算符,以是当我们须要对某个字段按照区间查询时,只管可以使用多个key,但多个key之间是使用or举行关联,故无法实现区间查询;

 保举的做法,使用SQL_QUERY Statement举行查询,使用该方法的一些优点:


  • PI结构简单,无需指定详细查询字段,将查询信息作为sql传入即可;
  • 可以使用复杂的原生sql举行各种复杂操纵举行查询,可以共同$PARAMETERS$变量实现动态查询,也可以直接将动态查询条件在SAP端处理处罚好拼接在sql中;
  • 后续字段变更不受任何影响,只需改变sql即可;

完备demo步调:

IR:

   留意点:返回的结构名须要在哀求结构名原封不动的底子上,追加_response,留意下图黄色部分
  






   以下Message Mapping和Operation Mapping的步调不须要,除非SAP端的哀求结构和JDBC Receiver要求的结构不划一,但在此例中是多余的步调。
  

  

  

  

  
ID:









SPROXY:



测试代码:




留意点:

由于返回的字段取决于查询的字段,以是按照正常方式须要将返回的字段界说在返回结构中,那动态sql的返回结构就没法界说,以是接纳拼接的方式举行实现(差异数据库sql的拼接方式大概有所差异),思量到现实字段内容中大概会包罗分割符,以是接纳RPAD增补长度的方式举行实现,将全部字段拼接后同肯定名为RESULT,即可实现接口复用的结果,乃至可以一次性查询多张数据库表,拼接后的字符串在SAP端按照规则拆分即可,拆分的方式可以使用现成的标准函数举行分析,此处不在赘述。
以上。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表