使用代码给 SAP CRM appointment 和 Opportunity 创建关联关系

*&---------------------------------------------------------------------*
*& 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.

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...