Created by Jerry Wang, last modified on May 29, 2014
输入product ID:
执行report 打印出引用该product的IBASE ID 和component ID:
在UI上验证结果是否正确:
REPORT zprod_used_in_ibase.
PARAMETERS: id type comm_product-product_id OBLIGATORY DEFAULT '1002029'.
DATA: lv_prod_guid TYPE comm_product-product_guid,
lv_handle TYPE ibxx_ref-handle,
ls_sel TYPE ibxx_sel_rec,
lt_obj TYPE ibco1_obj_tab,
lr_objnr TYPE RANGE OF ibxx_ref-objnr, "Guid 22 of the object
lr_objnr_line LIKE LINE OF lr_objnr.
START-OF-SELECTION.
SELECT SINGLE product_guid FROM comm_product INTO lv_prod_guid WHERE product_id = id.
IF sy-subrc <> 0.
WRITE: / 'Product: ' , id, ' does not exist!' COLOR COL_NEGATIVE.
RETURN.
ENDIF.
lr_objnr_line-sign = 'I'.
lr_objnr_line-option = 'EQ'.
lr_objnr_line-low = cl_ibase_service=>cl_convert_guid_16_22( lv_prod_guid ).
INSERT lr_objnr_line INTO TABLE ls_sel-s_objnr.
CALL FUNCTION 'IB_COM_NEW'
IMPORTING
e_ibco_handle = lv_handle.
CALL FUNCTION 'IB_COM1_READ_INSTANCES_OBJ_TAB'
EXPORTING
i_ibco_handle = lv_handle
i_sel_rec = ls_sel
CHANGING
e_obj_tab = lt_obj
EXCEPTIONS
ib_handle_not_defined = 1
ib_not_successful = 2
ib_criteria_incomplete = 3
OTHERS = 4.
ASSERT sy-subrc = 0.
LOOP AT lt_obj ASSIGNING FIELD-SYMBOL(<obj>).
WRITE: / 'IBASE ID: ', <obj>-ibase COLOR COL_NEGATIVE, ' Component ID:' , <obj>-instance COLOR COL_TOTAL.
ENDLOOP.