Andrew.Liu头像
关注
SAP GTS 主数据传输全解析:初始传输、ALE 更改指针与削减消息类型配置实战封面图

SAP GTS 主数据传输全解析:初始传输、ALE 更改指针与削减消息类型配置实战

关键词:/SAPSLL/MATMAS_DIRR3/SAPSLL/DEBMAS_DIRR3/SAPSLL/CREMAS_DIRR3BD53RBDMIDOCBD22

一、GTS 主数据传输的两条腿

SAP GTS 的所有合规与海关判断,都建立在 产品主数据(Product Master)业务伙伴(Business Partner) 之上。这两类数据来自 feeder system,传输方式分两条腿:

阶段方式典型事务/程序
初始传输(Initial Transfer)直接 RFC 批量下发/SAPSLL/MATMAS_DIRR3/SAPSLL/DEBMAS_DIRR3/SAPSLL/CREMAS_DIRR3/SAPSLL/BOMMAT_DIRR3
增量传输(Delta Transfer)ALE 更改指针(Change Pointers)驱动RBDMIDOC(作业调度)+ 削减消息类型

物料主数据进入 GTS 后会自动生成产品主数据;客户/供应商主数据则会被转换为 SAP 业务伙伴(BP),并带上地址数据。

产品主数据在 GTS 中包含多个视图:

  • General Basic Data:基本计量单位、GTS 内部产品标识号;
  • Classification(分类):关税税则中的商品编码(Commodity Code)——海关归类的核心;
  • Legal Control(法务控制):进出口管制用的清单号,供出口管制判断使用。

其中,商品编码与出口清单号一般不在 feeder 侧维护,而是在 GTS 中通过海关管理与合规管理的功能来做分类。这一点在项目蓝图阶段就要讲清楚,否则很容易出现"两边都维护、两边都不准"的局面。

二、初始传输:一次性把家底搬过去

在 feeder 系统的事务 /SAPSLL/MENU_LEGALR3(GTS Cockpit)中可以看到全部数据传输事务:

事务代码用途
/SAPSLL/MATMAS_DIRR3物料主数据初始传输到 GTS
/SAPSLL/DEBMAS_DIRR3客户主数据初始传输到 GTS
/SAPSLL/CREMAS_DIRR3供应商主数据初始传输到 GTS
/SAPSLL/BOMMAT_DIRR3BOM 初始传输(优惠确定与再出口控制需要)

说明:在 S/4HANA 环境下,BOM 的初始传输也可能使用 /BORAT_R3;此外 S/4HANA 提供 Fiori 应用 “计划用于后台处理的主数据传输”,可以把主数据传输纳入统一的作业调度。具体以你的系统版本与配置指南为准。

实施建议:

  1. 初始传输前,先在 feeder 侧把选择条件收敛好(工厂、采购组织、销售组织、账户组),避免把几十年历史的主数据全量灌进去;
  2. 分批执行 + 记录日志,GTS 侧用 /SAPSLL/PARTNER_APPL 等监控事务复核;
  3. 初始传输完成后,再启用更改指针,否则会在切换窗口期产生大量重复。

三、ALE 更改指针:增量传输的发动机

3.1 为什么用"削减的消息类型"

标准 ALE 消息类型:MATMAS(物料)、CREMAS(供应商)、DEBMAS(客户)。

但 GTS 只需要主记录中的一小部分字段。如果直接激活标准消息类型的更改指针,任何无关字段(比如某个销售视图的文本)的修改都会触发一次传输,白白消耗性能。

因此 SAP GTS 提供了削减的消息类型(Reduced Message Types)

削减消息类型内容
/SAPSLL/MATMAS_SLL物料主数据(GTS 相关字段)
/SAPSLL/CREMAS_SLL供应商主数据
/SAPSLL/DEBMAS_SLL客户主数据
/SAPSLL/BNKMAS_SLL银行主数据
/SAPSLL/BOMMAT_SLLBOM

只有这些被选中的字段发生变化时,才会写入更改指针。

3.2 配置五步走

Step 1 — 全局激活更改指针

/SAPSLL/MENU_LEGALR3 → Basic Settings → Activate Change Pointers Globally

勾选 Change pointers activated – generally,保存。

Step 2 — 用 BD53 创建削减消息类型

事务 BD53
  → 创建 /SAPSLL/DEBMAS_SLL(客户)
  → 创建 /SAPSLL/CREMAS_SLL(供应商)
  → 创建 /SAPSLL/MATMAS_SLL(物料)
  • 消息类型参考分别填:DEBMAS / CREMAS / MATMAS
  • 描述依次填:Customer master data / Vendor master data / Material master data;
  • 系统会提示 "is not in valid name range" 之类的警告,确认即可

Step 3 — 修改处理函数模块(V_TBDME)

SM30 → 视图 V_TBDME
  → /SAPSLL/DEBMAS_SLL  → 函数模块改为 /SAPSLL/DEBMAS_DISTRIBUTE_R3
  → /SAPSLL/CREMAS_SLL  → 函数模块改为 /SAPSLL/CREMAS_DISTRIBUTE_R3
  → /SAPSLL/MATMAS_SLL  → 函数模块改为 /SAPSLL/MATMAS_DISTRIBUTE_R3

这一步是削减消息类型能直接送进 GTS 的关键——把 ALE 出站处理函数换成 GTS 插件提供的分发函数。

Step 4 — 激活消息类型的更改指针

/SAPSLL/MENU_LEGALR3 → Basic Settings → Activate Change Pointers for Message Types
  → 新建条目:/SAPSLL/DEBMAS_SLL、/SAPSLL/CREMAS_SLL、/SAPSLL/MATMAS_SLL → 激活

Step 5 — 激活削减消息的更改指针

/SAPSLL/MENU_LEGALR3 → Basic Settings → Activate Change Pointers for Reduced Messages
  → 选中上述三个 → Activate change pointers

3.3 定期作业 RBDMIDOC

配置完成后,用后台作业定期跑 RBDMIDOC

程序:RBDMIDOC
变式:消息类型 = /SAPSLL/MATMAS_SLL(每个消息类型一个步骤)
频率:按业务需要,如每 15 分钟 / 每小时

RBDMIDOC 会读取该消息类型下所有尚未处理的更改指针,通过 RFC 把相关主记录送往 GTS。

四、经典故障:DBSQL_DUPLICATE_KEY_ERROR

升级到 GTS 11(SLL-LEG V1100)后,不少项目遇到过这样的现象:

  • 手工用 /SAPSLL/MENU_LEGALR3(Transfer Customers)传输成功
  • 但用 RBDMIDOC 后台作业传输失败
  • GTS 端 /SAPSLL/PARTNER_APPL 里没有错误日志(甚至还是绿灯);
  • ST22 里却是:
Category            ABAP programming error
Runtime Errors      DBSQL_DUPLICATE_KEY_ERROR
Except.             CX_SY_OPEN_SQL_DB
ABAP Program        /SAPSLL/SAPLPARMA_DB_UPDATE
Application Component SLL

根因:feeder 端的更改指针里堆积了历史遗留的、已经传过的伙伴主数据。作业一跑,GTS 收到一大批"已存在"的伙伴,触发主键重复。

解决方案

事务 BD22 → 重置客户(DEBMAS)与供应商(CREMAS)的更改指针

重置之后再跑作业,客户与供应商就都能正常传输了。

运维建议:把 BD22 重置 + 全量初始传输 + 重置后启用增量 固化成上线切换的标准 Runbook;每次大版本升级后,先小批量验证再放开作业。

五、主数据传输之后会发生什么

数据到 GTS 后并不是"存着"就完事:

主数据GTS 中的后续动作
物料 → 产品主数据需要维护商品编码(Classification 视图)、进出口清单号(Legal Control 视图)
客户/供应商 → 业务伙伴会进行制裁名单筛查(SPL Screening),命中则冻结
BOM用于**优惠确定(Preference Determination)**与再出口控制

对应的增强点:

  • BAdI PARTNER_UPDATE:业务伙伴过账数据时的增强,GTS 标准实现会填充 GTS 专用表 /SAPSLL/PNTBP/SAPSLL/ADRCON
  • BAdI /SAPSLL/BP:方法 /SAPSLL/IF_EX_BP~MAP_BUT0BK_TO_ADDRESS 可以把银行账户持有人字段解析/转换成地址结构,从而让账户持有人也参与 SPL 筛查。

这两个 BAdI 是主数据层面做客户化扩展的主要抓手。

六、运维监控清单

位置事务 / 程序看什么
feeder 端/SAPSLL/MENU_LEGALR3主数据传输、更改指针、系统通信
feeder 端SM58失败的 tRFC LUW,可手动重处理
feeder 端BD87 / WE05IDoc 状态
feeder 端BD22重置更改指针(故障处理)
GTS 端/SAPSLL/PARTNER_APPL业务伙伴传输日志
GTS 端/SAPSLL/MENU_LEGALGTS 侧 Cockpit、合规监控

七、小结

  1. 先初始、后增量:切换窗口期不要同时开;
  2. 削减消息类型是性能关键:只把 GTS 关心的字段纳入更改指针;
  3. V_TBDME 里把处理函数换成 /SAPSLL/*_DISTRIBUTE_R3,否则增量根本送不进 GTS;
  4. RBDMIDOC 定期作业 + BD22 应急重置,是 GTS 主数据运维的两把扳手;
  5. 主数据到位后,商品编码与 SPL 筛查才是合规检查真正生效的起点。

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/champaignwolf/article/details/165481127

文章来源转载

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--