原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)
**点击蓝字** 关注我们
一
前言
数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接).
数据同步平台的底层通过调用ADBC类实现远程数据库的读取,写入.
**本文主要介绍数据同步平台的数据过滤机制**
二
数据过滤
数据同步平台可以通过如下三种方式实现从源数据库读取数据的过滤
• 方式一: 源系统创建的视图中使用条件过滤
• 方式二: 配置读取源数据的过滤条件
• 方式三: 选择屏幕针对特定接口动态设置过滤条件
三
方式一
源系统创建视图中使用条件过滤
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 数据同步平台( 七 创建一个接口)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487649&idx=1&sn=b168625c899f41c8c4e773104a1a9fee&chksm=cf5dcd97f82a4481740550b14cf90c4c0e1c6cd44021120f6125b0a9d9bea328d14942669c6a&token=470085930&lang=zh_CN#rd)
数据同步平台支持从源系统的视图中获取数据,开发可以在视图中通过where 语句给获取的数据添加过滤条件
四
方式二
配置读取源数据的过滤条件
> 配置详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 数据同步平台( 二 配置 )
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487036&idx=1&sn=109d7a86c102ebd8f89e75c94df918dd&chksm=cf5dd30af82a5a1c9e911c98eeec606e5c6f7a81bd95142d8122bf7fa03f56dfce641e94d571&token=470085930&lang=zh_CN#rd)
> 改进部分详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 数据同步平台(三 改进)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487366&idx=1&sn=90918dd19e07bae2eb80ba51123a8999&chksm=cf5dd2b0f82a5ba6ad60a8d2a41d0e16292ece86db7689b4da1221798110ec75c45306358d07&token=470085930&lang=zh_CN#rd)
配置中可以针对主表设置过滤条件, 主表过滤条件会带入从表数据的获取逻辑.
也可以对从表设置单独的过滤条件.(比如,如果传输订单, 通过设置删除标记为空, 过滤掉存在删除表的明细数据)
五
方式三
选择屏幕针对单一接口动态设置过滤条件
考虑到实际同步数据时, 用户可能手工指定特定条件的数据同步, 因此对数据同步平台做了如下改进
在接口模式下添加了动态设置主表过滤条件的功能
当仅限定一个接口编号时, 可以点击过滤条件按钮进入动态选择条件设定屏幕
在动态选择条件屏幕展开特定的表,双击字段后,可以为字段输入选择条件.
点击执行按钮,条件被保存
最终执行的结果中 , 可以看到补充的过滤条件
选择屏幕中可以通过输入特定接口后回车方式获取预存的过滤条件
临时 复选框 用于确定该过滤条件仅对当前用户生效,如果去除临时复选框创建的过滤条件将对正式执行接口生效.
六
三种方式比较
上述三个方式均可以给通过数据同步平台同步的接口添加过滤条件.
• 方式一和方式二 适用于开发人员配置接口时,实现按业务指定接口逻辑实现数据过滤
• 方式三的临时模式适用于用户在实际接口传输时手工指定要传输的数据(同时受限于方式一与方式二中的数据过滤).
• 方式三中的非临时模式会参与接口后台执行时的过滤条件. 作为方式一,方式二业务逻辑的补充,需要谨慎使用.
方式三的动态设置过滤条件暂时不支持表模式, 后续考虑补充该功能.
七
动态过滤补充说明
对于动态选择字段不显示的补充处理
在CDS视图中通过函数,计算,常量等方式定义的字段, 通过参数给字段添加的名称在ABAP中无效
@EndUserText.label: '字段描述'
可以通过CAST语句把字段定义为一个数据字典中存在的数据元素,解决这个标签问题(这种方式支持多语言,同时会附加数据元素的其它特性,比如前置0转换,有时会带来负面的影响,同时这样会增加CDS视图的复杂度)
也可以使用下面的方法
增强了配置表ZTBC_ALV ,可以为这些字段补充字段描述(该表未考虑多语言,只能输入一种语言的描述,可以考虑改进).
八
总结
数据同步平台是对项目低代码的一种尝试,尽量通过配置或者CDS视图开发完成项目中接口类程序的开发(目前只支持写入中间库的接口).
动态报表则是对项目中报表类程序开发的低代码化的应用.
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ 动态报表D-Query简介
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486429&idx=1&sn=8cbab08040255baa4c7495e6e106230d&chksm=cf5dd6ebf82a5ffdf6cd2cca5ef3b3a298dcb7e3aac2b4cae5073af9c6720bf57b5544c57a49&token=470085930&lang=zh_CN#rd)
通过在项目的正式应用,会逐渐补充更多的功能.
目标数据库扩展为FTP服务器,HTTP调用或PO调用 .
通过配置把源系统的数据(通过CDS视图实现数据的获取逻辑)转换成CSV文件,XML文件或JSON文件,或PO调用的嵌套内表.
写入目标FTP服务器或者调用目标http服务地址传递XML或JSON文件,或调用PO生成的类.
想想还有点激动: 如果这个改进功能实现了.
数据同步平台基本上就能完成一多半的接口开发(数据从S4系统发出,外围系统接收或者数据从中间库同步到S4系统的自定义表).
通过PO的下传接口程序生成
> 详见链接 无峰,公众号:ABAP 技巧与实战 [ SAP工具箱 自动生成发出接口程序(一)
> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247486814&idx=1&sn=776ec5144823fd226b64caf7bad4b477&chksm=cf5dd068f82a597ee469a84d23b4c009720402203f05fe2b072e26496f6b699514e2f26404fb&token=470085930&lang=zh_CN#rd)
**约定**
如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.
( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.
越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )
**公众号 : syjf1976_abap**
**ABAP开发技巧**
**微信号 : 392077**
syjf1976
sharry_xlp
Yannick_Duan
申请进入公众号讨论群提问或者参与话题讨论