SAP MDG 获取实体数据

SAP MDG取实体数据
发布时间:2024/08/09

今天分享两种获取MDG实习数据的方法。
案例:/1MD/MD______03L 表通过物料取到技术代码,用技术代码关联/1MD/MD______09P表,取物料成熟度。

1.通过关键字段和实体类型取值。
通过事务码MDG_DATA_MODEL查看表对应的实体类型ZMM007
在这里插入图片描述

/1MD/MD______09P表的key字段为物料对应的技术代码和工厂。直接用key字段取实体数据。这种方法我们不需要再单独取技术代码。但是批量获取时慎用,可能获取不到全部的数据。

完整代码:

REPORT zmm_rpt_538_wu.
DATA: ls_zmm007     TYPE zsmdg_s_mm_pp_zmm007,
      lt_zmm007     TYPE TABLE OF zsmdg_s_mm_pp_zmm007,
      lt_zmm007_key TYPE TABLE OF zsmdg_s_mm_kf_zmm007.
DATA: lo_read_api TYPE REF TO if_usmd_read_api.

APPEND VALUE #( material = 'LZ161782050121' werks = '' ) TO lt_zmm007_key.

IF lo_read_api IS NOT BOUND.
  lo_read_api = cl_usmd_read_api=>get_instance( iv_model_name = 'MM' ).
ENDIF.
lo_read_api->read_active_data( EXPORTING iv_entity_type = 'ZMM007'
                                         it_entity_key  = lt_zmm007_key
                               IMPORTING et_data = lt_zmm007 ).
READ TABLE lt_zmm007 INTO ls_zmm007 INDEX 1.
IF sy-subrc = 0.
  WRITE:ls_zmm007-material, / ,ls_zmm007-zmaturity.
ENDIF.

看一下输出结果:
在这里插入图片描述

2.通过逻辑名取数据。
通过事务码MDG_DATA_MODEL查看表对应的逻辑名TMX_MM_MATERIAL,TOA_MM_MATERIAL_ZMM007
在这里插入图片描述

完整代码:

REPORT zmm_rpt_538_wu.
TYPES: BEGIN OF s_log_phys_name,
         kind        TYPE  char4,
         sub_kind    TYPE usmd_subkind,
         log_name    TYPE fieldname,
         phys_name   TYPE fieldname,
         version     TYPE char4,
         entity      TYPE usmd_entity,
         entity_cont TYPE usmd_entity,
         attribute   TYPE usmd_attribute,
       END OF s_log_phys_name .
TYPES: BEGIN OF ts_material,
         usmdkmmmaterial TYPE usmd_tech_key,
         /1md/mmmaterial TYPE matnr,
       END OF ts_material.
TYPES: BEGIN OF ts_mm007,
         usmdkmmmaterial  TYPE usmd_tech_key,
         /1md/mmzmaturity TYPE zde_zmaturity,
       END OF ts_mm007.
DATA: ls_material TYPE ts_material,
      ls_mm007    TYPE ts_mm007.
DATA: lt_message       TYPE usmd_t_message,
      lt_log_phys_name TYPE STANDARD TABLE OF s_log_phys_name.

CALL METHOD cl_usmd_mdf_model_generator=>get_generated_objects
  EXPORTING
    i_model          = 'MM'
  IMPORTING
    et_message       = lt_message
    et_log_phys_name = lt_log_phys_name.
SORT lt_log_phys_name BY kind log_name .
READ TABLE lt_log_phys_name INTO DATA(ls_phys01_table) WITH KEY kind = 'TABL' log_name = 'TMX_MM_MATERIAL' BINARY SEARCH.
READ TABLE lt_log_phys_name INTO DATA(ls_phys02_table) WITH KEY kind = 'TABL' log_name = 'TOA_MM_MATERIAL_ZMM007' BINARY SEARCH .

SELECT SINGLE * INTO CORRESPONDING FIELDS OF @ls_material FROM (ls_phys01_table-phys_name) WHERE /1md/mmmaterial = 'LZ161782050121'.
IF sy-subrc = 0.
  SELECT SINGLE usmdkmmmaterial,/1md/mmzmaturity
         INTO CORRESPONDING FIELDS OF @ls_mm007 FROM (ls_phys02_table-phys_name)
         WHERE usmdkmmmaterial = @ls_material-usmdkmmmaterial AND usmd_active = '1'.
ENDIF.
WRITE:ls_mm007-usmdkmmmaterial, / ,ls_mm007-/1md/mmzmaturity.

最后来看一下输出结果:
在这里插入图片描述

分别输出了物料和对料对应的技术代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值