Created by Jerry Wang, last modified on Aug 27, 2015 Go to start of metadata
该report可以批量删除由指定user创建的基于指定process type的business document:
执行report:
会打印成功删除和失败删除的order id及其description:
source code:
REPORT zorder_delete.
PARAMETERS: user TYPE sy-uname OBLIGATORY DEFAULT 'WANGJER',
type TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPPT'.
DATA: lt_order TYPE STANDARD TABLE OF crmd_orderadm_h,
lt_guid TYPE crmt_object_guid_tab.
START-OF-SELECTION.
SELECT guid object_id description INTO CORRESPONDING FIELDS OF TABLE lt_order FROM crmd_orderadm_h WHERE process_type = type AND created_by = user.
WRITE: 'the following order will be deleted'.
LOOP AT lt_order ASSIGNING FIELD-SYMBOL(<order>).
WRITE: / 'id: ' , <order>-object_id COLOR COL_GROUP, ' description: ' , <order>-description COLOR COL_TOTAL.
CLEAR: lt_guid.
INSERT <order>-guid INTO TABLE lt_guid.
CALL FUNCTION 'CRM_ORDER_DELETE'
EXPORTING
it_objects_to_delete = lt_guid
iv_update_task_local = abap_true
* IV_NO_CHECK = FALSE
* IV_NO_BDOC_SEND = FALSE
* IV_CHECK_ONLY = FALSE
EXCEPTIONS
single_deletion_error = 1
deletion_error = 2
no_authority = 3
document_not_found = 4
OTHERS = 5.
IF sy-subrc <> 0.
WRITE: / 'order: ' , <order>-object_id, ' deletion failed: ', sy-subrc.
ENDIF.
ENDLOOP.
COMMIT WORK AND WAIT.