前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP随笔-物料主数据界面增强-页签增强

ABAP随笔-物料主数据界面增强-页签增强

作者头像
Tab Zhu
发布2022-06-27 19:00:32
2.4K0
发布2022-06-27 19:00:32
举报
文章被收录于专栏:TAB的coding生活TAB的coding生活

物料主数据增强(2)

之前写了一一篇物料主数据增强的文档ABAP随笔-物料主数据界面增强,需要配置+增强代码,今天升级一下功能,对物料主数据页签进行增强

1. 对物料主数据表增强

append custom field in MARA

随便加一个你想要的字段

2. 物料主数据配置

  1. 配置1 路径为:SPRO->后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕程序

创建对应的函数组

对于屏幕0001 增加一个字段,增加PAI PBO的逻辑module

其中status_0001,set_ztab_mara_01中代码为

代码语言:javascript
复制
MODULE status_0001 OUTPUT.
  IF sy-tcode = 'MM02'
  OR sy-tcode = 'MM03'.
    CALL FUNCTION 'MARA_GET_SUB'
      IMPORTING
        wmara = mara
        xmara = *mara
        ymara = lmara.
  ENDIF.
  IF sy-tcode = 'MM03'.
    LOOP AT SCREEN.
      screen-input = '0'.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.
ENDMODULE.
MODULE set_ztab_mara_01 INPUT.
  DATA:ls_cust TYPE ztab_mara_01 .
  MOVE-CORRESPONDING mara TO ls_cust .
  CALL FUNCTION 'MARA_GET_SUB'
    IMPORTING
      wmara = mara
      xmara = *mara
      ymara = lmara.
  MOVE-CORRESPONDING ls_cust TO mara .
  CALL FUNCTION 'MARA_SET_SUB'
    EXPORTING
      wmara = mara.
ENDMODULE.

其中function MARA_GET_SUB 和 MARA_SET_SUB 分别是得到和更新MM02/MM01/MM03内存变量中MARA的值

  1. 配置2 接着我们继续选择spro->后勤-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构

目前我们使用的配置是21屏幕顺序

在数据屏幕界面我们新增一条数据

同时我们该数据下子屏幕进行配置,填入我们刚才创建好FUNCTION GROUOP里面的屏幕 其中SAPLMGD1->1002是显示物料号的表头

可以点击右侧的 视图数据屏幕 查看生成的屏幕

  1. 配置3 保存退出后,我们进入spro->后勤-常规->物料主数据->配置物料主记录->主屏幕和附加屏幕的维护订单中选择21序号屏幕双击回车 我们可以看到配置好的子屏幕,如果想要把Z1屏幕向上移动,则更改顺序编号即可

现在我们进入MM03界面输入物料点击回车就可以看到新增的视图以供选择了

其实我们现在已经可以对新增的字段进行修改和保存了

3. 数据更新

之前我们在物料主数据界面增强中已经讲过了,如何对物料主数据进行增强校验了,

这里我们简单做一个唯一性校验: 启用EXIT_SAPLMGMU_001出口 和 CI_MMH1

代码语言:javascript
复制
*&---------------------------------------------------------------------*
*& 包含               ZXMG0U02
*&---------------------------------------------------------------------*
IF sy-ucomm = 'BU' OR sy-ucomm = 'YES'.
  IF sy-tcode = 'MM01' OR sy-tcode = 'MM02'.
    CHECK wmara-custom_field1 IS NOT INITIAL.
    SELECT matnr INTO TABLE @DATA(lt_matnr)
      FROM mara WHERE custom_field1 = @wmara-custom_field1.
    IF sy-subrc EQ 0.
      DELETE lt_matnr WHERE matnr = wmara-matnr.
      IF lt_matnr[] IS NOT INITIAL.
        READ TABLE lt_matnr INDEX 1 INTO DATA(ls_matnr).
        MESSAGE e001(ztab) WITH wmara-custom_field1 ls_matnr-matnr.
      ENDIF.
    ENDIF.
  ENDIF.
ENDIF.

当我们双击CI_MMH1时,发现该结构不存在,我们直接SE11创建,然后把增强字段写进去

其实CI_MMH1在我们的增强中是做不到的,但是这个创建了CI_MMH1是在结构BMMH1中的,用于LSMW-如果这里不增强,LSMW就无法进行增强字段批导

激活保存后,我们找另一个物料SGPI002,在客户字段中输入1234567890 保存,这时会提示:

4.注意

上方代码中 sy-tcode = 'MM01' 对MM01也进行唯一性的校验是因为,MM01可以对已存在的物料进行扩展

更多其他的文章请点击历史记录

ABAP随笔-物料主数据界面增强

BP客户增强-保存时增加校验事件(DCHCK)

BP客户增强-详细-干货

S4 BP客户增强说明

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAP TAB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 物料主数据增强(2)
    • 1. 对物料主数据表增强
      • 2. 物料主数据配置
        • 3. 数据更新
          • 4.注意
          相关产品与服务
          图数据库 KonisGraph
          图数据库 KonisGraph(TencentDB for KonisGraph)是一种云端图数据库服务,基于腾讯在海量图数据上的实践经验,提供一站式海量图数据存储、管理、实时查询、计算、可视化分析能力;KonisGraph 支持属性图模型和 TinkerPop Gremlin 查询语言,能够帮助用户快速完成对图数据的建模、查询和可视化分析。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档