find out the service list changed with given user which have item category group

91 阅读1分钟

Created by Jerry Wang, last modified on Apr 02, 2015

Requirement: find out the service list changed with given user which have item category group assigned.
执行如下report,返回结果:
clipboard1

可以和UI上看到的service相比较:
clipboard2

report source code:
  
REPORT ztest2jerry.
  
PARAMETERS: user TYPE sy-uname OBLIGATORY DEFAULT sy-uname.
  
DATA: lt_crmm_pr_btr     TYPE STANDARD TABLE OF crmm_pr_btr,
 
      lt_comm_pr_frg_rel TYPE STANDARD TABLE OF comm_pr_frg_rel,
 
      lt_comm_product    TYPE STANDARD TABLE OF comm_product.
  
START-OF-SELECTION.
 
  SELECT * INTO TABLE lt_crmm_pr_btr FROM crmm_pr_btr WHERE upname = user.
  
  IF sy-subrc <> 0.
 
    WRITE: / 'no service assigned with item category group existed for user: ' COLOR COL_NEGATIVE,
 
       user COLOR COL_POSITIVE.
 
    RETURN.
 
  ENDIF.
  
  SELECT * INTO TABLE lt_comm_pr_frg_rel FROM comm_pr_frg_rel FOR ALL ENTRIES IN lt_crmm_pr_btr
 
      WHERE fragment_guid = lt_crmm_pr_btr-frg_guid.
 
  ASSERT sy-subrc = 0.
  
  SELECT * INTO TABLE lt_comm_product FROM comm_product FOR ALL ENTRIES IN lt_comm_pr_frg_rel
 
      WHERE product_guid = lt_comm_pr_frg_rel-product_guid.
 
  ASSERT sy-subrc = 0.
  
  LOOP AT lt_crmm_pr_btr ASSIGNING FIELD-SYMBOL(<pr_btr>).
 
    WRITE:/ 'Valid from: ' COLOR COL_NEGATIVE, <pr_btr>-valid_from COLOR COL_GROUP,
 
    'category group name: ' COLOR COL_TOTAL, <pr_btr>-item_cat_group COLOR COL_KEY.
  
    READ TABLE lt_comm_pr_frg_rel ASSIGNING FIELD-SYMBOL(<frg>) WITH KEY fragment_guid = <pr_btr>-frg_guid.
 
    ASSERT sy-subrc = 0.
  
    READ TABLE lt_comm_product ASSIGNING FIELD-SYMBOL(<product>) WITH KEY product_guid = <frg>-product_guid.
 
    ASSERT sy-subrc = 0.
  
    WRITE: / 'Service id: ' COLOR COL_HEADING, <product>-product_id COLOR COL_GROUP.
  
  ENDLOOP.