我是靠谱客的博主 包容黑夜,最近开发中收集的这篇文章主要介绍SAP PO上传异步接口(PO从对方中间表读取数据),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

导语:最近的项目上出现了一个奇奇怪怪的需求,上传接口居然不是外围系统给我传输,而是他数据丢到他的中间表,然后PO去取过来,真就他不动,我自己动。
下面说一下需要怎么来实现吧,其实跟PO下传接口写入中间表一样,只不过方向变了,还有一些小变动,这里只说一下区别,不做过多的赘述,不会PO下传接口写入中间表的,戳后面的链接【SAP PO下传异步接口(写入对方中间表)】。

区别一:发送方和接收方对调

写中间表的话,是下传接口,SAP是发送方,是DTO的概念,要在MAPPING中的左边。
而上传SAP就是接收方,是DTI的概念,要在MAPPING中的右边,而外围系统作为发出方(这里的发送方是一个假意的发送方,因为需要我们去取数,暂且当作发送方理解吧),是DTO的概念,要在MAPPING的左侧。
在这里插入图片描述

区别二:发出方的节点名称

一般来说我们习惯用SHEET作为第一节点的名字,ITEMS作为次级节点的名称,但是这里的节点名称需要用【row】命名,至于为什么我也不知道,用就好了。
在这里插入图片描述

区别三:接收方地址配置

这里是最关键的地方了,前面只是一个简单的方向对调,这里涉及到很多参数了。

1、Connection配置

配置对方数据库信息,且方向为sender
在这里插入图片描述

2、Processing配置

配置点名称解释
Quality of ServicesExactly Once (不知道是干啥的)
Poll Interval(secs)取数时间间隔,多久一次,以秒为单位
Query SQL Statement数据读取语句
Document Name这里选择Message Types的组件
Document Namespace这里选择对应的发出方的namespace
Update SQL Statement取数以后对对方表的处理

我这个接口的逻辑是,让对面在表中放一个FLAG字段,我每次去取FLAG为空的数据,取过来给他FALG字段update一个X,这样下次就不会再取了
在这里插入图片描述

3.Advanced配置

Status :决定接口是否启用,Active–启用 Inactive不启用
Advanced Mode :勾选上
Transaction lsolation level:这里要选可序列化(serializable)
在这里插入图片描述
结语:上面的配置中可以发现,取数语句只能写一个,也就是说只能用单表接口去取,所以对于一套有抬头有行项目的表来说,不是很友好,但也有解决办法。

但是在这过程中会有一个东西问题,就是当数据量太大的时候,PO发给SAP会出错,就需要把包缩小,研究了好久最后解决方案是在SQL语句和UPDATE语句后面加上ROWNUM的限制,ROWNUM <= 10000即可

1、拆分多个接口取,每个表里一个Flag字段
2、在取数语句中写join语句,把主从表的数据组合成多组单条的数据,先去过来,再用Group by语句根据主键拆分。具体拆分语句后面会分享出来。
在这里插入图片描述
作者:小飞猪猪猪猪猪猪猪–CSDN
注意:转发请注明作者

最后

以上就是包容黑夜为你收集整理的SAP PO上传异步接口(PO从对方中间表读取数据)的全部内容,希望文章能够帮你解决SAP PO上传异步接口(PO从对方中间表读取数据)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部