MARC,mm02/01/03,MM17增强

张开发
2026/4/8 21:40:17 15 分钟阅读

分享文章

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_EAbapCatalog.sqlViewAppendName:ZSMARC_VEndUserText.label:Extension for MARCextend 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_130FAdd entries for MARA-ZZfieldAssign a selection groupIn the detail screen set the following:-Propose field cont XMaintenance status KALE field group GR_KCreate a new segment ZE1MARAM for ZZFIELD by Tcode WE311.为IDoc的MATMAS03段类型进行扩充增强注进行此增强的前提是在标准表中(如MARA、MARC等)已经附加了自定义的结构字段打开事务代码WE31创建一个新的段类 型。将自定义的字段添加到段类型中。打开事务代码WE30为IDoc MATMAS03创建新的扩展类型。输入对象名称选择[扩展]选项点击[创建]按钮。Create extension IDOC Type ZMM00001 and link with basic type “MATMAS02” by T-code WE30 and then insert the new segment under E1MARAM.因为我是MARC扩展所以插入到了E1MARCMActivate extension IDOC Type ZE1MARC and segment ZE1MARAM将段类型及扩展段进行发布。(先后顺序为WE31-WE30)设置后无法更改只有取消发布后才能进行更改。Link message type(MATMAS) , IDOC type MATMAS02 and new extension type ZMM00001 by tcode WE82.一个标准的IDoc类型只能创建一个扩展类型但是一个扩展类型里可以创建多个扩展类型段打开事务代码WE82将新创建的扩展分配给消息类型和IDoc类型。版本可以在 系统-》状态 详细信息里查看一般用SAP BASIS的版本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_NEWSEGIF_EX_MG_MASS_NEWSEG~RETURN_IDOC_TYPEMETHODif_ex_mg_mass_newseg~return_idoc_type.idoc_typeMATMAS03.message_typeMATMAS.ENDMETHOD.IF_EX_MG_MASS_NEWSEG~ADD_NEW_SEGMENTMETHODif_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_smarcTYPEmarc,ls_smarc1TYPEze1marc.CLEARlv_tabix1.MOVE-CORRESPONDINGt_e1marcmTOlt_e1marcm.MOVE-CORRESPONDINGt_e1maramTOlt_e1maram.LOOPATsmarcASSIGNINGls_smarc.CLEAR:ls_ze1maram,lv_tabix.MOVE-CORRESPONDINGls_smarcTOls_ze1maram.READTABLElt_e1maramWITHKEYmatnr_longls_smarc-matnrASSIGNINGFIELD-SYMBOL(fs_e1maram).IFsy-subrc0.CONTINUE.ENDIF. lv_tabix1lv_tabix11.*READTABLElt_e1marcmINDEXlv_tabix1*ASSIGNINGFIELD-SYMBOL(ls_e1marcm).MOVE-CORRESPONDINGls_e1marcm-dataTOls_smarc1.READTABLElt_e1marcmWITHKEYdocnumfs_e1maram-docnum werksls_smarc-werksASSIGNINGFIELD-SYMBOL(ls_e1marcm).IFsy-subrc0.CONTINUE.ENDIF.CALLFUNCTIONI_MASS_GET_INDEXEXPORTINGpointerls_e1marcm-pointerIMPORTINGtabixlv_tabix.IFlv_tabixISINITIAL.lv_tabix1.ELSE.lv_tabixlv_tabix1.ENDIF.ls_idoc_data-segnamZE1MARC.ls_idoc_data-sdatals_ze1maram-data.ls_idoc_data-docnumls_e1marcm-docnum.INSERTls_idoc_dataINTOt_idoc_dataINDEXlv_tabix.ENDLOOP.ENDMETHOD.CMOD and add enhancement MGV00001. Create programs ZXMGVU03 and ZXMGVU04 and activate them.实现函数出口MGV00001此步骤的目的是将BADI处理后的内表(参照EDIDD类型)中的自定义字段传入到相应结构字段中用于更新到标准表中。T-code SMODEXIT_SAPLMV02_002ZXMGVU04DATA:ls_ze1maraTYPEze1marc.IFf_cust_segment-segnamZE1MARC.ls_ze1maraf_cust_segment-sdata.IFls_ze1mara-zgrp_mrpc_nodata.CLEARls_ze1mara-zgrp_mrp.ELSE.IFls_ze1mara-zgrp_mrpISINITIAL.res_fields-feldnameMARC-ZGRP_MRP.APPENDres_fields.ENDIF.ENDIF.f_marc_ueb-zgrp_mrpls_ze1mara-zgrp_mrp.ENDIF.ZXMGVU03DATA:h_ze1maramLIKEze1marc.IFsegment_nameEQZE1MARC.MOVEf_marc-zgrp_mrpTOh_ze1maram-zgrp_mrp.CLEARidoc_data.idoc_data-segnamZE1MARC.idoc_data-sdatah_ze1maram.APPENDidoc_data.ENDIF.T-CODE CMOD激活 MGV00001MASS/MM17 屏幕增强(增加自定义字段)打开事务代码MASSOBJ选择BUS1001对象。然后双击[字段列表(可选)]文件夹5.给自定义字段分配选择组注若该步骤已完成可跳过打开事务代码OMSR点击新条目。将自定义字段数据新增并选择一个选择组。

更多文章