SAP工具箱 数据同步平台(九 与PO整合)
点击蓝字 关注我们
一
前言
数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接).
数据同步平台的底层通过调用ADBC类实现远程数据库的读取,写入.
在数据同步平台的开发过程中,有一个闪念: 怎么把数据同步平台同PO调用结合(PO是SAP的接口中间件产品).借助新项目的机会完成了这个闪念.
本文主要介绍数据同步平台与PO的结合(适用于从S4通过异步接口发出数据的场景)
二
开发接口的步骤
先看看整合后,通过数据同步平台开发下传接口(S4发出数据)的过程.以下配置的前提是PO配置完成. (PO配置部分没有包含在这个过程中)
01
创建一个视图
系统中需要包含以下三类字段
接口所需的字段
过滤条件所需的字段
时间戳字段
02
配置一个接口
数据同步平台的其它配置可以参考
详见链接
无峰,公众号:ABAP 技巧与实战SAP工具箱 数据同步平台( 七 创建一个接口)
03
配置接口控制
三
测试接口
测试接口的过程与数据同步平台的其它执行步骤一致,参阅前文可以看到更多细节介绍,本文只介绍和PO整合的相关信息
01
TCODE SYNC
执行ZSYNC 输入接口编号,选择初始化(全量),显示详细日志
02
输入过滤条件
所有视图字段都可以通过动态选择后作为过滤条件
03
查看执行结果
执行后,可以看到直接结果
结果中可以看到本次读取数据的条目数,及读取的SQL语句等信息,如果有报错,这里也会显示报错信息
04
查看接口日志
如果没有报错,会有一个程序调用ID号:点击程序调用ID,进入接口监控,
可以看到每个消息包的总单数, 总行数
05
查看消息
点击消息标识.可以查看XML内容
06
变化量执行
变化量基于时间戳的比较实现. 如果单据不存在时间戳, 可以通过增强给单据添加一个最后修改的时间戳, 或者通过CHANGE DOCUMENT(表CDHDR /CDPOS) 构造一个单据的时间戳视图,在接口视图中关联使用.
四
下传接口类型归纳
上述示例使用了最常见的主从结构.S4通过PO传递数据最常见的四种结构,前三种是最常见的接口结构,占项目中下传接口的大多数
单表结构
主从结构
主主结构
复杂结构
01
单表结构
BODY是数组(0..unbound)节点 (其中的HEAD是控制节点:记录接口编号,消息号,源系统,目标系统等信息) 单表结构主要用于传递主数据
02
主从结构
BODY 是数组节点,其中一个子节点 ITEM是数组节点 主从结构主要用于传递只包含抬头/行项目的单据,
03
主主结构
BODY 和ITEM 是并列的数组节点, 主主结构也是用于传递抬头/行项目的单据.适用于目标是中间库的接口. 分别写入两个表
04
复杂结构
主表带有多个从表, 或者从表带有从表的结构. 这种结构通过配置完成主从表的获取及复制,通过预留的出口函数完成其它部分的赋值.
五
配置
数据同步平台针对PO整合的特定配置
目标数据库配置为PO
指定PO的接口(SERVICE INTERFACE)
指定PO对象的节点
指定下传接口的类型
指定消息中的单数
PO相关的接口, 程序内部会抑制每个包的条目数(PACKAGE_NUM)的设置, 强制设置为0.
大数据量传递可以通过分组字段GROUP_FIELDS 来实现系统自动拆分数据, 详见链接
指定相应字段
分发的系统识别字段: 用来识别分发到不同的系统或服务器的内容
PO调用的分组字段
额外的排序字段
复杂结构的处理函数
对于复杂接口,或者一般结构中的特殊逻辑, 可以通过配置增强函数来补充完成接口数据的赋值(复杂结构,可以配置成主从结构, 数据同步平台取数逻辑完成主从部分的赋值,其它部分在增强函数中赋值)
六
总结
数据同步平台整合PO调用: 把数据同步平台与PO的调用完美整合在一起,在完成PO的配置的基础上, S4系统中把数据获取逻辑整合在CDS视图中,然后通过简单配置即可完成一个下传接口.
其中对PO的调用只需要在配置中指定关键指标即可. 数据同步平台通过对PO对象所在表(SPROXHDR/SEOSUBCODF/SPROXDAT)的解析,完成赋值和调用的过程.
THE
END
约定
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
(如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程. 越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.)
公众号 : syjf1976_abap
ABAP开发技巧
微信号 : 392077
请微信联系管理员:
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论
文章来自于网络,如果侵犯了您的权益,请联系站长删除!