SAP 工具箱通过查询服务同步主数据

作者:ABAP技巧与实战 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, WM, 仓库管理, 开发, 数据工程
SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

前言

用查询服务同步数据,写入自定义表是一种常用的接口模式.

此时数据的发起方是数据的同步目标方,

请求内容是查询条件

同步响应内容是需要同步的数据集

数据集写入相应的表中

** 本文主要介绍一个调用查询服务同步数据的工具 **

使用效果

执行程序ZIFMDGCALL, 输入指定的接口编号.也可以通过特定接口的事务代码进入程序(自动带出对应接口编号)

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

默认变化量处理.

此时自动设置查询从时间及查询到时间

查询开始时间向前偏移秒数 用来修正数据更新延迟导致的时间戳问题 . 默认值2

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

限定每包的记录数 默认值10000

勾选显示详细日志

执行获取接口调用的结果

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

全量处理

勾选全量处理后, 选择屏幕放开时间戳的限制. 同时放开业务字段的动态选择.

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

分包执行效果

指定4条记录查询. 分包数2.

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

调用三次接口, 最后一次查询记录为0(用来结束循环,极端情况 记录数=每个包的记录数的整数倍,才会如此).总共获取4条记录.

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

接口日志查询 ZIFLOG可以查询出接口调用信息及传递的报文信息.报文的解析ALV显示等.

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

新接口的配置

新接口的开发比较简单, 仅需要维护两个配置表, 再创建一个事务代码即可(可能还需要创建数据要存入的表)

接口需要符合如下规范,接口的查询信息除了业务字段, 还需要包含一个通用结构 ZSMDG_COMMREQ

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

接口的返回 , 返回的结果集放在 RESULTS中.

TYPE 返回查询是否成功执行.

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

_** 01 ** _

** ZTIF002 **

相比其它接口, 需要特殊配置的两个字段

BICALL_TABNAME 通用BI(MDG)调用程序接口写入数据的表名

BICALL_DATATYPE 使用写入表名作为行类型创建的表类型

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

_** 02 ** _

** ZTIFMDGCALL **

配置字段映射ZTIFMDGCALL

把接口字段映射到表字段上, 同时指定业务选择字段

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

_** 03 ** _

** 创建事务代码 **

创建事务代码ZTS0100,调用事务ZIFMDGCALL . 指定接口编号. TS0100

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

复杂结构支持

上述配置仅基于单表结构, 如果是复杂结构.

通过配置 ZTIF002-FUNCNAME 通过特殊函数完成复杂结构的处理

考虑把函数做成一个通用的多表支持的函数Z_IF_MDG_MUL_TAB

这个配置也可以作为一个出口, 为特定接口设置处理函数. 函数界面如下

SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图
SAP 工具箱通过查询服务同步主数据 - 封面图

变化量的时间戳处理

> 详见链接

>

> 无峰,公众号:ABAP 技巧与实战 [ SAP小技巧 查询接口的分页查询处理 ](https://mp.weixin.qq.com/s/ttOWP-

> ylhRwc2_iAB19TjQ?token=865287164&lang=zh_CN)

总结

归纳通过查询接口从其它系统同步数据的接口程序,整合出通用程序 ZIFMDGCALL的相关功能.

• 动态指定选择条件

• 加锁/解锁接口编号

• 全量/变化量调用

• 可配置的字段映射

• 接口日志记录

• 分页调用获取数据

• 写入目标表,区分创建和修改

• 记录执行时间戳

• ......

核心功能通过类ZCL_MDGCALL_BASE实现.

把此类接口统一在这个通用程序下. 简化并规范此类接口的开发方式.

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP工具箱通过查询服务同步主数据.md」整理生成,仅用于内部技术分享与学习交流。