商品和物料主数据增强

一、普通行业-物料主数据 - MM01/MM02/MM03

       零售行业-retail 商品主数据 - MM41/MM42/MM43

二、扩展表:

  • 自定义表
  • 扩展标准表

本文以扩展标准表的方式介绍,标准表相比自定义表,在更新上更加一致,存在标准变更记录功能。

三、步骤

1、append 结构

注:Data Element的 changed log一定要打上,这样字段变更的内容才会到变更日志中。

2、零售行业的商品主数据和工业分别复制标准函数组 MGD2和MGD1,屏幕只需要复制 0001 / 0002,其他屏幕无需复制,绘制的屏幕中需要保留下图的 module,下面的逻辑在零售和工业中都适用,用来执行一些通用逻辑,遗留会导致数据无法传递。

也可以通过IMG 路径:

SPRO->后勤 - 常规->物料主数据->配置物料主记录-创建定制子屏幕的程序 创建函数组 ZMM006

自动创建

PBO部分:

process before output.
* MODULE STATUS_9001.

  module init_sub.
  module get_daten_sub.
  module feldauswahl.
  module sonderfaus.
  module sonfausw_in_fgruppen.
  module fausw_bezeichnungen.
  module feldhistorie.                 "Aenderungsdienst
  module bildstatus.
  module zusref_vorschlagen_b.
  module refdaten_vorschlagen.
  module zusref_vorschlagen_a.
  module bezeichnungen_lesen.
  module anzeigen_taxim.               "Einkaufs-Steuerindikator
  module set_daten_sub.

 PAI部分,增强字段需要添加 field chain,

process after input.
* MODULE USER_COMMAND_9001.
  module get_daten_sub.

***** 自定义代码   begin
  chain.
    field : mara-zzswbm.
    module  zmod_field_check.
  endchain.
**** end

  module set_daten_sub.

3、配置屏幕:如下以工业物料( MM01 )为例, MM41类似

一般增强字段不多的情况,增强字段可以添加到基础数据屏幕,但是当增强字段过多的时候,基础数据屏幕可能在定义的时候添加了,在前台MM01显示不了。这时候可以通过定义新的标签 解决

 

或者使用事务 : OMT3E。

根据上图复制 01 到 Z1 使用事务: OMT3B 

 

定义屏幕:Tcode:OMT3R,分配新的标签的显示顺序。

(测试发现,这个配置内容有可能无法正常传输,需要到目标系统中手工配置一下).

效果图如下

4、字段状态组配置:

字段状态组控制了增强字段的复制/操作行为.必须配置, 如果不配置,会导致以下问题

  • 批量修改 MASS 无法修改增强字段

  • BAPI 无法传递增强字段内容

  • 一般商品特定字段的修改无法传递到对应的变式商品

  • 等等.

事务代码 OMSR

 

上面的复制必须勾上

5、BAPI函数传递增强字段

MM01 BAPI 增强

SMOD增强 :  MGA00001

 MARA 增强

*&---------------------------------------------------------------------*
*& Include          ZXMG0U02
*&---------------------------------------------------------------------*

DATA: ls_zsmm_nfc_mara TYPE zsmm_nfc_data.

  CHECK wmara IS NOT INITIAL.

  MOVE-CORRESPONDING wmara TO ls_zsmm_nfc_mara.
  MOVE-CORRESPONDING ls_zsmm_nfc_mara TO cmara.

增强结构 : BAPI_TE_MARA

如果是增强MARC的话上面的SMOD的出口就无法使用了,需要找一个隐式增强

BAPI_TE_MARC

BAPI_TE_MARCX

 我这里测试好像MARC不需要再做增强,他和MARA在赋值的时候逻辑不一样。


          CLEAR: ls_bapi_te_mara,lt_extensionin.
          ls_bapi_te_mara-material  = wa_header-material_external. "物料号
          ls_bapi_te_mara-zzbcplx     = ls_mara_extend-zzbcplx.
          ls_bapi_te_mara-zzblxdm     = ls_mara_extend-zzblxdm.
          ls_bapi_te_mara-zzblxms     = ls_mara_extend-zzblxms.
          ls_bapi_te_mara-zzblxz     = ls_mara_extend-zzblxz.
          ls_bapi_te_mara-zzbfstbm     = ls_mara_extend-zzbfstbm.

          CLEAR: ls_extensionin.
          ls_extensionin-structure = 'BAPI_TE_MARA'.
          ls_extensionin-valuepart1 = ls_bapi_te_mara.
          APPEND ls_extensionin TO lt_extensionin.

          CLEAR: ls_bapi_te_marax.
          ls_bapi_te_marax-material = wa_header-material_external. "物料号
          ls_bapi_te_marax-zzbcplx    = 'X'.
          ls_bapi_te_marax-zzblxdm    = 'X'.
          ls_bapi_te_marax-zzblxms    = 'X'.
          ls_bapi_te_marax-zzblxz    = 'X'.
          ls_bapi_te_marax-zzbfstbm    = 'X'.

          CLEAR: ls_extensioninx,lt_extensioninx.
          ls_extensioninx-structure = 'BAPI_TE_MARAX'.
          ls_extensioninx-valuepart1 = ls_bapi_te_marax.
          APPEND ls_extensioninx TO lt_extensioninx.

          "marc

          CLEAR: ls_bapi_te_marc.
          ls_bapi_te_marc-plant  = wa_marc-plant.
          ls_bapi_te_marc-zzpfstwlz   = ls_marc_extend-zzpfstwlz.
          ls_bapi_te_marc-zzpclph     = ls_marc_extend-zzpclph.
          ls_bapi_te_marc-zzpjcm      = ls_marc_extend-zzpjcm.
          ls_bapi_te_marc-zzpmqs      = ls_marc_extend-zzpmqs.
          ls_bapi_te_marc-zzpgg       = ls_marc_extend-zzpgg.
          ls_bapi_te_marc-zzpmj       = ls_marc_extend-zzpmj.
          ls_bapi_te_marc-zzpmjyj     = ls_marc_extend-zzpmjyj.
          ls_bapi_te_marc-zzpmjsl     = ls_marc_extend-zzpmjsl.
          ls_bapi_te_marc-zzphpxm     = ls_marc_extend-zzphpxm.
          ls_bapi_te_marc-zzpsop      = ls_marc_extend-zzpsop.
          ls_bapi_te_marc-zzpmpj      = ls_marc_extend-zzpmpj.
          ls_bapi_te_marc-zzppjsl     = ls_marc_extend-zzppjsl.
          ls_bapi_te_marc-zzpkc       = ls_marc_extend-zzpkc.
          ls_bapi_te_marc-zzhydy      = ls_marc_extend-zzhydy.
          CLEAR: ls_extensionin,lv_marc_value.
          lv_marc_value = ls_bapi_te_marc.
          ls_extensionin-structure = 'BAPI_TE_MARC'.
          ls_extensionin-valuepart1 = lv_marc_value(240).
          ls_extensionin-valuepart2 = lv_marc_value+240(240).
          ls_extensionin-valuepart3 = lv_marc_value+480(240).
          ls_extensionin-valuepart4 = lv_marc_value+720(240).
          APPEND ls_extensionin TO lt_extensionin.

          CLEAR: ls_bapi_te_marcx.
          ls_bapi_te_marcx-plant = wa_marc-plant.
          ls_bapi_te_marcx-zzpfstwlz    = 'X'.
          ls_bapi_te_marcx-zzpclph    = 'X'.
          ls_bapi_te_marcx-zzpjcm    = 'X'.
          ls_bapi_te_marcx-zzpmqs    = 'X'.
          ls_bapi_te_marcx-zzpgg    = 'X'.
          ls_bapi_te_marcx-zzpmj    = 'X'.
          ls_bapi_te_marcx-zzpmjyj    = 'X'.
          ls_bapi_te_marcx-zzpmjsl    = 'X'.
          ls_bapi_te_marcx-zzphpxm    = 'X'.
          ls_bapi_te_marcx-zzpsop    = 'X'.
          ls_bapi_te_marcx-zzpmpj    = 'X'.
          ls_bapi_te_marcx-zzppjsl    = 'X'.
          ls_bapi_te_marcx-zzpkc    = 'X'.
          ls_bapi_te_marcx-zzhydy    = 'X'.

          CLEAR: ls_extensioninx.
          ls_extensioninx-structure = 'BAPI_TE_MARCX'.
          ls_extensioninx-valuepart1 = ls_bapi_te_marcx.
          APPEND ls_extensioninx TO lt_extensioninx.

****operate bapi
          DATA:returnmessages LIKE  bapi_matreturn2 OCCURS 0 WITH HEADER LINE.
          CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
            EXPORTING
              headdata             = wa_header
              clientdata           = wa_mara
              clientdatax          = wa_marax
              plantdata            = wa_marc
              plantdatax           = wa_marcx
*             FORECASTPARAMETERS   =
*             FORECASTPARAMETERSX  =
*             PLANNINGDATA         =
*             PLANNINGDATAX        =
              storagelocationdata  = wa_mard
              storagelocationdatax = wa_mardx
              valuationdata        = wa_mbew
              valuationdatax       = wa_mbewx
              warehousenumberdata  = wa_mlgn
              warehousenumberdatax = wa_mlgnx
              salesdata            = wa_mvke
              salesdatax           = wa_mvkex
              storagetypedata      = wa_mlgt
              storagetypedatax     = wa_mlgtx
*             FLAG_ONLINE          = ' '
*             FLAG_CAD_CALL        = ' '
*             NO_DEQUEUE           = ' '
*             NO_ROLLBACK_WORK     = ' '
              marc_aps_extdata     = marc_aps_extdata
              marc_aps_extdatax    = marc_aps_extdatax
            IMPORTING
              return               = wa_return
            TABLES
              materialdescription  = it_makt
              unitsofmeasure       = it_marm
              unitsofmeasurex      = it_marmx
*             INTERNATIONALARTNOS  =
              materiallongtext     = it_mltx
              taxclassifications   = it_mlan
              returnmessages       = returnmessages
              prtdata              = lt_mfhm
              prtdatax             = lt_mfhm_x
              extensionin          = lt_extensionin
              extensioninx         = lt_extensioninx
*             EXTENSIONIN          =
*             EXTENSIONINX         =
            .

ALE增强

  • MGV00003 零售商品

  • MGV00001 工业物料

这里需要读取相应增强段中的增强字段内容赋值到 函数的返回参数中

比如 MARA-ZZSWBM

从 传入参数 F_CLIENTEXT F_CLIENTEXTX 中解析出增强字段内容

复制到 F_MARA_UEB-ZZSWBM 即可.

6、屏幕按钮功能

商品主数据中增强屏幕中添加了按钮功能后

执行按钮系统会报错:

记录 Z1 ZCORT  不存在于表T133E中

消息号 M3748

或者类似的错误: T133D

可以在子屏幕的PAI中添加如下逻辑,给系统重置一个OKCODE. 

重置的OKCODE= 'SP02'.是因为增强屏幕的标签按钮功能: SP02

这样可以避免自定义按钮的报错.

 BAPI函数增强

 

零售行业例子:微信:SAP操作手册之 商品/物料主数据增强 

总结:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(HRM): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。HRM系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。CRM系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值