前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >One order deletion tool

One order deletion tool

作者头像
Jerry Wang
发布2019-07-10 17:17:40
4640
发布2019-07-10 17:17:40
举报
知识共享许可协议
知识共享许可协议

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

Created by Jerry Wang, last modified on Dec 13, 2014

wiki末尾的report能够删除指定id的one order document,例如希望删除ui上的Opportunity 1616:

clipboard1
clipboard1

执行report,指定id和Opportunity type OPPT:

clipboard2
clipboard2

CRM_ORDER_DELETE执行context会自动调用CRM_ORDER_SAVE保存save动作:

clipboard3
clipboard3

importing parameter lt_exception内的entry可以忽略:

clipboard4
clipboard4
clipboard5
clipboard5

report执行完毕后,该Opportunity已经成功被删除,UI上无法再搜索到。

clipboard6
clipboard6
代码语言:javascript
复制
REPORT zorder_delete.
PARAMETERS: id   TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '1616',
 
            type TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPPT'.
DATA: lv_guid      TYPE crmt_object_guid,
 
      lt_delete    TYPE crmt_object_guid_tab,
 
      lt_deleted   TYPE crmt_return_objects,
 
      lt_saved     LIKE lt_deleted,
 
      lt_exception TYPE crmt_exception_t,
 
      lv_type      TYPE crmd_orderadm_h-process_type,
 
      lv_id        TYPE crmd_orderadm_h-object_id.
 
 
START-OF-SELECTION.
 
  lv_id = id.
 
  lv_type = type.
 
  SELECT SINGLE guid FROM crmd_orderadm_h INTO lv_guid WHERE object_id = lv_id AND process_type = lv_type.
 
  IF sy-subrc <> 0.
 
    WRITE: / 'No order found' COLOR COL_NEGATIVE.
 
    RETURN.
 
  ENDIF.
 
 
  APPEND lv_guid TO lt_delete.
 
 
  CALL FUNCTION 'CRM_ORDER_DELETE'
 
    EXPORTING
 
      it_objects_to_delete  = lt_delete
 
      iv_update_task_local  = abap_true
 
      iv_no_check           = abap_false
 
    IMPORTING
 
      et_deleted_objects    = lt_deleted
 
      et_exception          = lt_exception
 
    EXCEPTIONS
 
      single_deletion_error = 1
 
      deletion_error        = 2
 
      no_authority          = 3
 
      document_not_found    = 4.
 
 
  IF sy-subrc <> 0.
 
    WRITE: / 'Deletion failed, error code: ' , sy-subrc COLOR COL_NEGATIVE.
 
  ELSE.
 
    WRITE: / 'No error found after CRM_ORDER_DELETE call ' COLOR COL_POSITIVE.
 
  ENDIF.
 
 
  LOOP AT lt_deleted ASSIGNING FIELD-SYMBOL(<deleted>).
 
    WRITE: / 'Deleted object: ' , <deleted>-object_id COLOR COL_TOTAL.
 
  ENDLOOP.

  LOOP AT lt_exception ASSIGNING FIELD-SYMBOL(<exception>).
 
    WRITE:/ 'Error message class: ' , <exception>-class, ' id: ', <exception>-code COLOR COL_POSITIVE.
 
  ENDLOOP.
 
  COMMIT WORK AND WAIT.
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月08日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Created by Jerry Wang, last modified on Dec 13, 2014
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档