使用BAPI_ACTIVITYCRM_CREATEMULTI创建一个CRM活动实例
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.