*&---------------------------------------------------------------------*
*& Report ZAPPOINTMENT_ADD_OPP
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zappointment_add_opp.
ParaMETERS: oppid TYPE crmd_orderadm_h-object_id OBLIGATORY DEFAULT '1424',
opptype TYPE crmd_orderadm_h-process_type OBLIGATORY DEFAULT 'OPPT'.
INCLUDE: crm_object_names_con,
crm_object_types_con,
crm_object_kinds_con,
crm_mode_con.
DATA: ls_docflow TYPE crmt_doc_flow_com,
ct_doc_flow TYPE crmt_doc_flow_comt,
ls_link TYPE LINE OF crmt_doc_flow_extdt,
lv_opp_guid TYPE crmd_orderadm_h-guid,
lv_app_guid LIKE lv_opp_guid,
ct_input_fields TYPE crmt_input_field_tab,
cs_input LIKE LINE OF ct_input_fields,
cs_field LIKE LINE OF cs_input-field_names,
lv_opp_id TYPE crmd_orderadm_h-object_id,
lv_opp_type TYPE crmd_orderadm_h-process_type,
lt_save TYPE crmt_object_guid_tab,
lt_not_saved LIKE lt_save,
lt_save_exception TYPE crmt_exception_t,
lt_exception TYPE crmt_exception_t.
START-OF-SELECTION.
lv_opp_id = oppid.
lv_opp_type = opptype.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_opp_id
IMPORTING
output = lv_opp_id.
SELECT SINGLE guid INTO lv_opp_guid FROM crmd_orderadm_h
WHERE object_id EQ lv_opp_id AND process_type = lv_opp_type.
ASSERT sy-subrc = 0.
* Jerry comment: replace this appointment guid with your own one.
* One relation will be created. Relation source: the appointment of this guid
* Relation target: the opportunity specified in this report
*
lv_app_guid = '3440B5B172DE1ED590B1C3A05B175D6A'.
ls_docflow-ref_kind = 'A'.
ls_docflow-ref_guid = lv_app_guid.
ls_link-objkey_a = lv_opp_guid.
ls_link-objtype_a = gc_object_type-opportunity."'BUS2000111'.
ls_link-objkey_b = lv_app_guid.
ls_link-objtype_b = gc_object_type-businessactivity. "'BUS2000126'.
ls_link-brel_kind = 'A'.
ls_link-brel_mode = 'A'.
ls_link-reltype = 'VONA'.
APPEND ls_link TO ls_docflow-doc_link.
INSERT ls_docflow INTO TABLE ct_doc_flow.
CLEAR: cs_input-field_names.
cs_field = 'OBJKEY_A'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'OBJTYPE_A'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'OBJKEY_B'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'OBJTYPE_B'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'BREL_KIND'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'RELTYPE'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_field-fieldname = 'RELATIONID'.
INSERT cs_field INTO TABLE cs_input-field_names.
cs_input-ref_guid = lv_app_guid.
cs_input-ref_kind = gc_object_ref_kind-orderadm_h.
cs_input-objectname = gc_object_name-doc_flow.
INSERT cs_input INTO TABLE ct_input_fields.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
IMPORTING
et_exception = lt_exception
CHANGING
ct_input_fields = ct_input_fields
ct_doc_flow = ct_doc_flow
EXCEPTIONS
error_occurred = 1
document_locked = 2
no_change_allowed = 3
no_authority = 4.
WRITE: / sy-subrc.
APPEND lv_app_guid TO lt_save.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
it_objects_to_save = lt_save
IMPORTING
et_objects_not_saved = lt_not_saved
et_exception = lt_save_exception
EXCEPTIONS
document_not_saved = 1.
WRITE: / sy-subrc.
COMMIT WORK AND WAIT.
原文地址:https://cloud.tencent.com/developer/article/2135135
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。