【ABAP】MM02保存后数据传输至外围系统

【问题】MM02更改物料主数据之后,传递最新数据至外围系统。
【方案】找到MM02保存后所触发的增强点。
【执行】从第一代增强到第四代增强,前三代都没找到合适的增强点,只在第四代增强BTE里面找到一个触发点 00001250

  1. 运行事务码:FIBF,进入维护事务BTE,选择菜单“环境->信息系统(P/S)(I)->F8 运行程序在这里插入图片描述
    在这里插入图片描述

  2. 找到业务交易事件【00001250 物料主数据:过帐】,选中后点击模式函数模块在这里插入图片描述

  3. 跳转到函数构建器,将带出的功能模块复制一份(以Z开头),函数组不需要变动在这里插入图片描述

  4. 进入功能模块,写入你需要实现功能的代码在这里插入图片描述

      CHECK sy-tcode = 'MM02'.
    
      DATA: lt_mara  TYPE mara OCCURS 0 WITH HEADER LINE,
            lt_marc  TYPE marc OCCURS 0 WITH HEADER LINE,
            ls_makt  TYPE makt,
            lt_makt  TYPE makt OCCURS 0 WITH HEADER LINE,
            ls_marm  TYPE marm,
            lt_marm  TYPE marm OCCURS 0 WITH HEADER LINE,
            lt_zmara TYPE zmara OCCURS 0 WITH HEADER LINE.
    
      DATA: ls_msgr  TYPE zsha047_msgout.
    
      DATA:lt_material TYPE TABLE OF zmaterial_master,
           ls_material TYPE zmaterial_master.
    
      APPEND i_mara_new TO lt_mara.
      APPEND i_marc_new TO lt_marc.
    
      MOVE-CORRESPONDING t_makt_new TO ls_makt.
      ls_material-maktx = ls_makt-maktx.
      APPEND ls_makt TO lt_makt.
    
      MOVE-CORRESPONDING t_marm_new TO ls_marm.
      APPEND ls_marm TO lt_marm.
    
      ls_material-matnr = i_mara_new-matnr.
      ls_material-mtart = i_mara_new-mtart.
      ls_material-matkl = i_mara_new-matkl.
      ls_material-meins = i_mara_new-meins.
      ls_material-lvorm = i_mara_new-lvorm.
      ls_material-werks = i_marc_new-werks.
      ls_material-lvorm = i_mara_new-lvorm.
      APPEND ls_material to lt_material.
    
    *srm物料主数据接收
      CALL FUNCTION 'ZYHG02_IFX001'
        EXPORTING
          iv_comit = 'X'
        IMPORTING
          es_msgr  = ls_msgr
        TABLES
          it_mara  = lt_mara
          it_makt  = lt_makt
          it_marc  = lt_marc
          it_marm  = lt_marm
          it_zmara = lt_zmara.
    
    *wms物料主数据接收
      IF lt_marc IS NOT INITIAL.
        CALL FUNCTION 'ZYHG03_IFX001'
          EXPORTING
            iv_comit = 'X'
          IMPORTING
            es_msgr  = ls_msgr
          TABLES
            it_marc  = lt_marc.
      ENDIF.
    
    *bsp物料数据接收
      IF lt_material IS NOT INITIAL.
        CALL FUNCTION 'ZYHG05_IFX001'
          EXPORTING
            iv_comit    = 'X'
          IMPORTING
            es_msgr     = ls_msgr
          TABLES
            lt_material = lt_material.
      ENDIF.
    
      clear:ls_msgr,ls_material,ls_makt,ls_marm.
    
    
  5. 代码写完之后,还差最后一步,回到FIBF创建产品,设置——产品——一个客户的
    在这里插入图片描述

  6. 配置产品,事件及函数模块,设置——发布/订阅模块——一个客户的
    在这里插入图片描述
    在这里插入图片描述

  7. 最后测试一下,传递数据是否为最新数据。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程卓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值