CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_16 = lv_guid.
lr_header-guid = lv_guid.
lr_header-process_type = process_type."类型
lr_header-object_id = object_id.
lr_header-descr_language = sy-langu.
lr_header-langu_iso = sy-langu.
lr_header-description = description."description
*日程
IF process_type EQ 'ZSC1'.
lr_header-category = 'Z01'.
*交互日志日报
ELSEIF process_type EQ 'ZRB1' OR process_type EQ 'ZRB2'.
lr_header-category = '201'."客户拜访
*预约
ELSE.
lr_header-category = '301'.
ENDIF.
lr_header-priority = priority.
lr_header-posting_date = sy-datum.
lr_header-mode = 'A'.
lr_header-direction = 0.
APPEND lr_header TO lt_header.
lr_headerx-guid = 'X'.
lr_headerx-process_type = 'X'."类型
lr_headerx-object_id = 'X'.
lr_headerx-descr_language = 'X'.
lr_headerx-langu_iso = 'X'.
lr_headerx-description = 'X'."description
lr_headerx-category = 'X'.
lr_headerx-priority = 'X'.
lr_headerx-posting_date = 'X' .
lr_headerx-mode = 'A'.
lr_headerx-direction = 0.
APPEND lr_headerx TO lt_headerx.
*status
*-----------------------------------------------------------------
lr_statusx-ref_guid = 'X'.
lr_statusx-ref_kind = 'X'.
lr_statusx-status = 'X'.
lr_statusx-activate = 'X'.
APPEND lr_statusx TO lt_statusx.
lr_status-ref_guid = lv_guid.
lr_status-ref_kind = 'A'.
lr_status-status = act_status. "状态
lr_status-activate = 'X'.
APPEND lr_status TO lt_status.
*TIME
*-----------------------------------------------------------------
"时间戳转换
CONVERT DATE date_from TIME time_from
INTO TIME STAMP timestamp_from
TIME ZONE zcl_common_object=>timezone.
CONVERT DATE date_to TIME time_to
INTO TIME STAMP timestamp_to
TIME ZONE zcl_common_object=>timezone.
lw_datex-ref_guid = 'X'.
lw_datex-ref_kind = 'X'.
lw_datex-appt_type = 'X'.
lw_datex-mode = 'X'.
lw_datex-timestamp_from = 'X'.
lw_datex-timestamp_to = 'X'.
lw_datex-timezone_from = 'X'.
lw_datex-timezone_to = 'X'.
APPEND lw_datex TO lt_datex.
lw_date-ref_guid = lv_guid.
lw_date-ref_kind = 'A'.
IF process_type EQ 'ZRB1' OR process_type EQ 'ZRB2'.
lw_date-appt_type = 'ORDERPLANNED'.
ELSE.
lw_date-appt_type = 'ORDERACTUAL'.
ENDIF.
lw_date-mode = 'A'.
lw_date-timestamp_from = timestamp_from.
lw_date-timestamp_to = timestamp_to.
lw_date-timezone_from = zcl_common_object=>timezone.
lw_date-timezone_to = zcl_common_object=>timezone.
APPEND lw_date TO lt_date.
*note
*-------------------------------------------------------------------------
IF gt_text IS NOT INITIAL.
lr_textx-ref_guid = 'X'.
lr_textx-ref_kind = 'X'.
lr_textx-tdid = 'X'.
lr_textx-tdspras = 'X'.
lr_textx-langu_iso = 'X'.
lr_textx-tdline = 'X'.
lr_textx-tdstyle = 'X'.
lr_textx-tdform = 'X'.
lr_textx-tdformat = 'X'.
lr_textx-mode = 'X'.
APPEND lr_textx TO lt_textx.
lt_text_app = gt_text.
LOOP AT lt_text_app INTO lw_text_app.
lr_text-ref_guid = lv_guid.
lr_text-ref_kind = 'A'.
lr_text-tdid = lw_text_app-ident. "文本类型
lr_text-tdspras = lw_text_app-langu. "语言
lr_text-langu_iso = lw_text_app-langu. "语言
lr_text-tdline = lw_text_app-lines. "文本内容
lr_text-tdstyle = 'SYSTEM'.
lr_text-tdform = 'SYSTEM'.
lr_text-tdformat = '*'.
lr_text-mode = 'A'.
APPEND lr_text TO lt_text.
CLEAR lr_text.
ENDLOOP.
ENDIF.
*change history
*----------------------------------------------------------------------
IF gt_history[] IS NOT INITIAL.
DATA:objtype_b TYPE swo_objtyp.
DATA:objkey_a TYPE crmt_object_guid.
SELECT SINGLE object_type
INTO objtype_b
FROM crmd_orderadm_h
WHERE process_type = process_type.
lt_history = gt_history.
LOOP AT lt_history[] INTO lw_history.
SELECT SINGLE object_type
INTO lw_document_flow-objtype_a
FROM crmd_orderadm_h
WHERE process_type = lw_history-object_type.
SELECT SINGLE guid
INTO objkey_a
FROM crmd_orderadm_h
WHERE process_type = lw_history-object_type
AND object_id = lw_history-object_id.
IF objkey_a IS NOT INITIAL.
lw_document_flow-objkey_a = objkey_a.
lw_document_flow-objtype_b = objtype_b.
lw_document_flow-objkey_b = lv_guid.
lw_document_flow-ref_guid = lv_guid.
lw_document_flow-reltype = 'VONA'.
lw_document_flow-brel_kind = 'A'.
lw_document_flow-ref_kind = 'A'.
ENDIF.
APPEND lw_document_flow TO lt_document_flow.
CLEAR lw_document_flow.
ENDLOOP.
ENDIF.
*相关方
*------------------------------------------------------------------
IF gt_partner IS NOT INITIAL.
lt_partner_app = gt_partner.
LOOP AT lt_partner_app INTO lw_partner_app.
lr_partnerx-ref_guid = 'X'.
lr_partnerx-ref_kind = 'X'.
lr_partnerx-partner_no = 'X'.
lr_partnerx-no_type = 'X'.
lr_partnerx-display_type = 'X'.
lr_partnerx-partner_fct = 'X'.
lr_partnerx-kind_of_entry = 'X'.
APPEND lr_partnerx TO lt_partnerx.
CLEAR lr_partnerx.
lr_partner-ref_guid = lv_guid.
lr_partner-ref_kind = 'A'.
lr_partner-partner_no = lw_partner_app-partner_no.
lr_partner-no_type = 'BP'.
lr_partner-display_type = 'BP'.
lr_partner-partner_fct = lw_partner_app-partner_fct.
lr_partner-kind_of_entry = 'A'.
APPEND lr_partner TO lt_partner.
CLEAR lr_partner.
ENDLOOP.
ENDIF.
*sales group
*------------------------------------------------------------------
CLEAR:lr_organisation,lr_organisationx,lt_organisation,lt_organisationx.
IF gt_salgroup IS NOT INITIAL.
lr_organisationx-ref_guid = 'X'.
lr_organisationx-ref_kind = 'X'.
lr_organisationx-dis_channel = 'X'."分销渠道
lr_organisationx-division = 'X'."部门
lr_organisationx-sales_org = 'X'."销售组织
lr_organisationx-sales_office = 'X'."销售办事处
lr_organisationx-sales_group = 'X'."销售办事处
APPEND lr_organisationx TO lt_organisationx.
lr_organisation-ref_guid = lv_guid.
lr_organisation-ref_kind = 'A'.
lr_organisation-dis_channel = gt_salgroup-dis_channel."分销渠道
lr_organisation-division = gt_salgroup-division."部门
lr_organisation-sales_org = gt_salgroup-sales_org_short."销售组织
lr_organisation-sales_office = gt_salgroup-sales_office_short."销售办事处
lr_organisation-sales_group = gt_salgroup-sales_group_short."销售组
APPEND lr_organisation TO lt_organisation.
ENDIF.
CALL FUNCTION 'BAPI_BUSPROCESSND_PROCSETTINGS'
EXPORTING
process_settings_in = ls_process_settings
TABLES
return = return.
*create actvity
*------------------------------------------------------------------
CALL FUNCTION 'BAPI_ACTIVITYCRM_CREATEMULTI'
TABLES
header = lt_header
headerx = lt_headerx
partner = lt_partner
partnerx = lt_partnerx
organisation = lt_organisation
organisationx = lt_organisationx
date = lt_date
datex = lt_datex
text = lt_text
textx = lt_textx
* REASON =
* REASONX =
* OUTCOME =
* OUTCOMEX =
status = lt_status
statusx = lt_statusx
* LOCATION =
* LOCATIONX =
input_fields = lt_input[]
created_process = lt_create_process[]
return = lt_return[]
document_flow = lt_document_flow[]
* JOURNAL =
* JOURNALX =
* MATERIAL =
* MATERIALX =
* EXTENSIONIN =
.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
* IMPORTING
* RETURN =
.
ENDIF.