REPORT znote_delete_tool.PARAMETERS: id TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '2025', type TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPSM', lan TYPE stxh-tdospras OBLIGATORY DEFAULT 'E', tdid TYPE stxh-tdid OBLIGATORY DEFAULT 'A002'.TYPES: text_line(cl_crm_odata_oppt_constant=>gc_oppt_notes_textlength) TYPE c.DATA: lv_char32 TYPE char32, " CRMD_ORDERADM_H-guid, lv_id LIKE id, lv_guid TYPE crmd_orderadm_h-guid.DATA: ls_return TYPE STANDARD TABLE OF bapiret2.DATA: lt_lines TYPE STANDARD TABLE OF tline, ls_line LIKE LINE OF lt_lines.DATA: lt_objects_to_save TYPE crmt_object_guid_tab.DATA: lt_objects_not_saved TYPE crmt_object_guid_tab.DATA: lt_saved_objects TYPE crmt_return_objects.lv_id = id.CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_id IMPORTING output = lv_id.SELECT SINGLE guid FROM crmd_orderadm_h INTO lv_guid WHERE object_id = id AND process_type = type.IF sy-subrc <> 0. WRITE: / 'No opportunity found' COLOR COL_GROUP. RETURN.ENDIF.DATA: lt_text TYPE crmt_text_comt, ls_text LIKE LINE OF lt_text, ls_input_fields TYPE crmt_input_field, lv_logical_key TYPE crmt_logical_key, ls_field_names TYPE crmt_input_field_names.DATA: lt_input_field_names TYPE crmt_input_field_names_tab, ls_input_field_name LIKE LINE OF lt_input_field_names.DATA: lt_input_fields TYPE crmt_input_field_tab.ls_text-ref_handle = '0000000000'.ls_text-ref_guid = lv_guid.ls_text-ref_kind = 'A'.ls_text-text_object = cl_crm_odata_oppt_constant=>gc_oppt_notes_tdobject.ls_text-mode = 'D'.ls_text-tdid = tdid.ls_text-tdspras = lan.ls_line-tdformat = '*'.APPEND ls_line TO ls_text-lines.APPEND ls_text TO lt_text.CLEAR ls_input_fields.ls_input_fields-ref_guid = lv_guid.ls_input_fields-ref_kind = 'A'.ls_input_fields-objectname = 'TEXTS'.CONCATENATE ls_text-tdid ls_text-tdspras INTO lv_logical_key.ls_input_fields-logical_key = lv_logical_key. " use handle or guid ?CLEAR ls_input_fields-field_names.ls_input_field_name-fieldname = 'LINES'.APPEND ls_input_field_name TO ls_input_fields-field_names.INSERT ls_input_fields INTO TABLE lt_input_fields.CALL FUNCTION 'CRM_ORDER_MAINTAIN' EXPORTING it_text = lt_text CHANGING ct_input_fields = lt_input_fields EXCEPTIONS error_occurred = 1 document_locked = 2 no_change_allowed = 3 no_authority = 4.IF sy-subrc <> 0 . WRITE: / 'text modify failed: ' COLOR COL_NEGATIVE, sy-subrc COLOR COL_TOTAL. RETURN.ENDIF.APPEND lv_guid TO lt_objects_to_save.CALL FUNCTION 'CRM_ORDER_SAVE' EXPORTING it_objects_to_save = lt_objects_to_save iv_update_task_local = abap_true IMPORTING et_saved_objects = lt_saved_objects et_objects_not_saved = lt_objects_not_saved EXCEPTIONS document_not_saved = 1 OTHERS = 2.IF sy-subrc EQ 0 AND lt_saved_objects IS NOT INITIAL. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = abap_true. WRITE: / 'text changed successfully' COLOR COL_NEGATIVE.ELSE. WRITE: / 'text changed failed' COLOR COL_POSITIVE.ENDIF.BREAK-POINT.这段 SAP ABAP 代码的作用是批改 CRM 订单的文本。该程序蕴含了以下性能:
...