如何快速找到settype被assign的product category

98 阅读1分钟

Created by Jerry Wang, last modified on Sep 04, 2014

在试图修改category OBJ_0401时,保存报错,因为OBJ_0401包含的settype COM_TA_R3_ID已经被assign到另一个product category里。
clipboard1
执行如下report,输入要查询的settype id:
clipboard2

REPORT ZPROD_SETTYPE_WHERE_USED.
PARAMETERS: id TYPE comc_settype-frgtype_id OBLIGATORY DEFAULT 'COM_TA_R3_ID'.
START-OF-SELECTION.
DATA: lv_guid TYPE comc_settype-frgtype_guid,
     lt_cat TYPE STANDARD TABLE OF COMM_CATFRGR-category_guid,
     lt_catt TYPE STANDARD TABLE OF comm_category-category_id.
  SELECT SINGLE frgtype_guid INTO lv_guid FROM comc_settype WHERE frgtype_id = id.
  IF sy-subrc <> 0.
     WRITE: / 'settype id invalid. '.
     RETURN.
  ENDIF.
  SELECT category_guid INTO TABLE lt_cat FROM COMM_CATFRGR WHERE frgtype_guid = lv_guid.
  IF sy-subrc <> 0.
    WRITE: / 'no category has contained this settype.'.
    RETURN.
  ENDIF.
  SORT lt_cat.
  DELETE ADJACENT DUPLICATES FROM lt_cat.
  SELECT category_id INTO TABLE lt_catt FROM comm_category FOR ALL ENTRIES IN lt_cat
    WHERE category_guid = lt_cat-table_line.
  LOOP AT lt_catt ASSIGNING FIELD-SYMBOL(<ID>).
     WRITE: / <id> COLOR COL_NEGATIVE.
  ENDLOOP.

输出所有包含该settype的product category:
clipboard3