当前位置: 首页 > news >正文

MARC,mm02/01/03,MM17增强

1. MM01/MM02/MM03 MARC 物料主数据增强

1.屏幕增强
-在主表中附加结构(判断数据的主表,如MARA,MARC)

增强字段数据元素勾选更改文档以后,会记录字段变更历史

-SPRO–>物流-常规–>物料主数据–>配置物料主记录–>创建定制子屏幕的程序

MARC字段增强后,要做DDL视图做扩展
不然会报错: MARC 和代理对象 NSDM_V_MARC 具有不同的列数

增加nsdm_e_marc的扩展(extend view) ZSMARC_E

@AbapCatalog.sqlViewAppendName:'ZSMARC_V'@EndUserText.label:'Extension for MARC'extend view nsdm_e_marcwithZSMARC_E{zgroup,zsjcz,zgrp_mrp}

MM17增强

1.SM30, table: MASSFLDLST- Add custom fields here:BUS1001, MARC, ZGRP_MRP.

2.SPRO->Logistics General->Material Master ->Field Selection -> Assign Fields to Field Selection Groups
或者直接SM30 更改表V_130F

Add entries for MARA-ZZfield
Assign a selection group
In the detail screen set the following:-
Propose field cont = X
Maintenance status = K
ALE field group = GR_K

  1. Create a new segment ZE1MARAM for ZZFIELD by Tcode WE31

1.为IDoc的MATMAS03段类型进行扩充增强
注:进行此增强的前提是在标准表中(如MARA、MARC等)已经附加了自定义的结构字段
打开事务代码WE31,创建一个新的段类 型。

将自定义的字段添加到段类型中。
打开事务代码WE30,为IDoc MATMAS03创建新的扩展类型。输入对象名称,选择[扩展]选项,点击[创建]按钮。

  1. Create extension IDOC Type ZMM00001 and link with basic type “MATMAS02” by T-code WE30 and then insert the new segment under E1MARAM.
    因为我是MARC扩展所以插入到了E1MARCM

  2. Activate extension IDOC Type ZE1MARC and segment ZE1MARAM

将段类型及扩展段进行发布。(先后顺序为:WE31->WE30)


设置后无法更改,只有取消发布后才能进行更改。

  1. Link message type(MATMAS) , IDOC type MATMAS02 and new extension type ZMM00001 by tcode WE82.
    一个标准的IDoc类型只能创建一个扩展类型,但是一个扩展类型里可以创建多个扩展类型段
    打开事务代码WE82,将新创建的扩展分配给消息类型和IDoc类型。


版本可以在 系统-》状态 详细信息里查看,一般用SAP BASIS的版本

  1. Create Implementation ZMM17_add_fields by T-code SE19 with BADI name MG_MASS_NEWSEG.

    Copy IF_EX_MG_MASS_NEWSEG~ADD_NEW_SEGMENT from sample code and comment all codes except for mara.

    no modification for IF_EX_MG_MASS_NEWSEG~RETURN_IDOC_TYPE.

创建增强实施ZIMP_MG_MASS_NEWSEG


IF_EX_MG_MASS_NEWSEG~RETURN_IDOC_TYPE

METHODif_ex_mg_mass_newseg~return_idoc_type.idoc_type='MATMAS03'.message_type='MATMAS'.ENDMETHOD.

IF_EX_MG_MASS_NEWSEG~ADD_NEW_SEGMENT

METHODif_ex_mg_mass_newseg~add_new_segment.*/\_/\n*(o.o)猫咪保佑:此代码无BUG侵扰,逻辑通顺如猫毛顺滑*>^<若遇异常,必是猫咪打盹,轻唤三声"喵~"即可唤醒程序灵性*&---------------------------------------------------------------------*TYPES:BEGINOFlty_ze1maram,docnumTYPEedidc-docnum,pointerTYPEsy-tabix,matnrTYPEmatnr,werksTYPEwerks_d.INCLUDETYPEze1marcASdata.TYPES:ENDOFlty_ze1maram.TYPES:lty_ze1maram_tabTYPESTANDARDTABLEOFlty_ze1maram.DATA:lv_tabixTYPEsytabix," lv_tabix1TYPEsytabix,ls_idoc_dataTYPEedidd,lt_e1maramTYPEmgmc_e1maram_tab,lt_e1marcmTYPEmgmc_e1marcm_tab,ls_ze1maramTYPElty_ze1maram,lt_ze1maramTYPElty_ze1maram_tab.FIELD-SYMBOLS:<ls_smarc>TYPEmarc,<ls_smarc1>TYPEze1marc."CLEARlv_tabix1.MOVE-CORRESPONDINGt_e1marcmTOlt_e1marcm.MOVE-CORRESPONDINGt_e1maramTOlt_e1maram.LOOPATsmarcASSIGNING<ls_smarc>.CLEAR:ls_ze1maram,lv_tabix.MOVE-CORRESPONDING<ls_smarc>TOls_ze1maram.READTABLElt_e1maramWITHKEYmatnr_long=<ls_smarc>-matnrASSIGNINGFIELD-SYMBOL(<fs_e1maram>).IFsy-subrc<>0.CONTINUE.ENDIF." lv_tabix1=lv_tabix1+1.*READTABLElt_e1marcmINDEXlv_tabix1*ASSIGNINGFIELD-SYMBOL(<ls_e1marcm>)."MOVE-CORRESPONDING<ls_e1marcm>-dataTO<ls_smarc1>.READTABLElt_e1marcmWITHKEYdocnum=<fs_e1maram>-docnum werks=<ls_smarc>-werksASSIGNINGFIELD-SYMBOL(<ls_e1marcm>).IFsy-subrc<>0.CONTINUE.ENDIF.CALLFUNCTION'I_MASS_GET_INDEX'EXPORTINGpointer=<ls_e1marcm>-pointerIMPORTINGtabix=lv_tabix.IFlv_tabixISINITIAL.lv_tabix=1.ELSE.lv_tabix=lv_tabix+1.ENDIF.ls_idoc_data-segnam='ZE1MARC'.ls_idoc_data-sdata=ls_ze1maram-data.ls_idoc_data-docnum=<ls_e1marcm>-docnum.INSERTls_idoc_dataINTOt_idoc_dataINDEXlv_tabix.ENDLOOP.ENDMETHOD.
  1. CMOD and add enhancement MGV00001. Create programs ZXMGVU03 and ZXMGVU04 and activate them.
    实现函数出口MGV00001
    此步骤的目的是将BADI处理后的内表(参照EDIDD类型)中的自定义字段传入到相应结构字段中,用于更新到标准表中。

T-code SMOD



EXIT_SAPLMV02_002
ZXMGVU04

DATA:ls_ze1maraTYPEze1marc.IFf_cust_segment-segnam='ZE1MARC'.ls_ze1mara=f_cust_segment-sdata.IFls_ze1mara-zgrp_mrp=c_nodata.CLEARls_ze1mara-zgrp_mrp.ELSE.IFls_ze1mara-zgrp_mrpISINITIAL.res_fields-feldname='MARC-ZGRP_MRP'."APPENDres_fields.ENDIF.ENDIF.f_marc_ueb-zgrp_mrp=ls_ze1mara-zgrp_mrp.ENDIF.

ZXMGVU03

DATA:h_ze1maramLIKEze1marc.IFsegment_nameEQ'ZE1MARC'.MOVEf_marc-zgrp_mrpTOh_ze1maram-zgrp_mrp.CLEARidoc_data.idoc_data-segnam='ZE1MARC'.idoc_data-sdata=h_ze1maram.APPENDidoc_data.ENDIF.

T-CODE CMOD
激活 MGV00001


MASS/MM17 屏幕增强(增加自定义字段)
打开事务代码MASSOBJ,选择BUS1001对象。然后双击[字段列表(可选)]文件夹


5.给自定义字段分配选择组
注:若该步骤已完成可跳过
打开事务代码OMSR,点击新条目。将自定义字段数据新增并选择一个选择组。

http://www.jsqmd.com/news/609494/

相关文章:

  • 全能图像工具ImageGlass:免费开源的图像浏览颠覆体验
  • 别再只用train/val了!用K折交叉验证给你的YOLOv8自定义数据集做个‘全面体检’
  • Git 二分法精准定位 Bug:git bisect 手把手实战教程,极速锁定缺陷提交,调试效率翻倍
  • 主构造函数到底该不该用?C# 13新语法落地避坑清单,含6个生产环境崩溃案例与修复补丁
  • 行人重识别(ReID)实战:从零搭建多摄像头追踪系统(附Python代码)
  • ZYNQ+OV5640+VDMA+HDMI视频链路搭建实录:从摄像头采集到实时显示
  • 别再死磕实物了!用Proteus 8.13仿真STM32矩阵按键,5分钟搞定硬件验证
  • 58:Agentic在金融风控中的应用实战
  • 英雄联盟智能助手:革新游戏体验的全方位工具集
  • 测试基本功之刷写ecu版本实操指导-ECU测试实践记录
  • Agent如何帮助企业提升客户满意度?2026年企业智能自动化的范式转移与落地实践
  • 幂等矩阵:从投影算子到机器学习中的隐藏应用
  • 基于mpc(最优控制)的车辆自适应巡航控制(acc),模型预测控制,通过carsim与matl...
  • 6 个开合跳的好处,第 3 个很多人不知道
  • 避坑指南:VGA电路设计中那些教科书没讲的细节(以440MHz案例为例)
  • 民办二本的未来规划
  • 论文与代码轻松搞定:8款AI毕业设计工具推荐
  • Blazor WebAssembly性能突破真相:2026新AOT编译器实测对比(冷启动提速3.8倍源码剖析)
  • SDD基于规范编程-OpenSpec及SuperPowers沙
  • PHP 8.9联合类型与泛型增强深度解析(2024唯一全链路适配手册)
  • 告别OpenNI:在Ubuntu 24.04上为树莓派5配置Astra SDK(以乐视体感摄像头为例)
  • 【K8s】【解决问题】---- 错误 DRV_AS_ROOT: The “docker“ driver should not be used with root privileges.
  • 从 Apache SeaTunnel 走向 ASF Member:一位开发者的长期主义样本攀
  • C#的[DoesNotReturn]和[DoesNotReturnIf]:帮助流分析的特性
  • 女程序员/测试员/AI研究员:在技术世界的破局与绽放
  • 学习笔记:最小生成树(2)
  • 轻流 AI 如何让库存管理从被动变主动
  • VisualCppRedist AIO终极指南:一键解决Windows运行库问题
  • AI Agent从0构建基础教程(非常详细),收藏这一篇就够了!
  • 深入解析MIPI RFFE接口:从寄存器操作到实战技巧