使用代码创建具有organization unit的opportunity
生活随笔
收集整理的這篇文章主要介紹了
使用代码创建具有organization unit的opportunity
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Created by Jerry Wang, last modified on Jun 11, 2015
執行report后打印出成功創建的opportunity id:
hard code 的sales org信息:
hard code的partner信息:
?
source code:?
?
*&---------------------------------------------------------------------*?
*& Report ?ZPARTNER_DETERMINE_VIA_CODE?
*&?
*&---------------------------------------------------------------------*?
*&?
*&?
*&---------------------------------------------------------------------*?
REPORT zorder_create_with_organizatio.?
?
DATA: lt_input_fields ? ? TYPE ?crmt_input_field_tab,?
ls_input_field ? ? ?LIKE LINE OF lt_input_fields,?
ls_field_name ? ? ? LIKE LINE OF ls_input_field-field_names,?
lv_guid ? ? ? ? ? ? TYPE guid_16,?
lt_orderadm_h_com ? TYPE crmt_orderadm_h_comt,?
ls_orderadm_h_com ? LIKE LINE OF lt_orderadm_h_com,?
lt_partner ? ? ? ? ?TYPE crmt_partner_comt,?
ls_partner ? ? ? ? ?LIKE LINE OF lt_partner,?
ls_partner_control ?TYPE crmt_partner_control,?
ls_com_structure ? ?TYPE string,?
lv_selection_needed TYPE ?crmt_boolean,?
lv_is_buying_center TYPE ?abap_bool,?
lt_attributes_com ? TYPE ?crmt_partner_attribute_com_tab,?
lt_save ? ? ? ? ? ? TYPE crmt_object_guid_tab,?
lt_saved ? ? ? ? ? ?TYPE crmt_return_objects,?
ls_saved ? ? ? ? ? ?LIKE LINE OF lt_saved,?
lt_org_man ? ? ? ? ?TYPE crmt_orgman_comt,?
ls_org_man ? ? ? ? ?LIKE LINE OF lt_org_man.?
?
START-OF-SELECTION.?
?
"PERFORM call_bp_determ_api.?
CALL FUNCTION 'GUID_CREATE'?
IMPORTING?
ev_guid_16 = lv_guid.?
?
PERFORM call_order_maintain.?
PERFORM call_order_save.?
?
FORM call_order_maintain.?
CLEAR: ls_orderadm_h_com, ls_input_field, lt_input_fields.?
ls_orderadm_h_com-guid = lv_guid.?
ls_orderadm_h_com-description = 'created by code on:' && sy-timlo.?
ls_orderadm_h_com-process_type = 'OPPT'.?
ls_orderadm_h_com-mode = 'A'.?
APPEND ls_orderadm_h_com TO lt_orderadm_h_com.?
?
" Hard code sales org?
ls_org_man-dis_channel = '01'.?
ls_org_man-division = '02'.?
ls_org_man-sales_orgr_ori = 'C'.?
ls_org_man-sales_org_resp = 'O 50000732'.?
ls_org_man-error_flag = 'X'.?
ls_org_man-mode = 'A'.?
ls_org_man-no_determination = 'X'.?
ls_org_man-ref_guid = lv_guid.?
ls_org_man-ref_kind = 'A'.?
APPEND ls_org_man TO lt_org_man.?
?
ls_input_field-ref_guid = lv_guid.?
ls_input_field-ref_kind = 'A'.?
ls_input_field-objectname = 'ORDERADM_H'.?
?
* sorted table?
ls_field_name-fieldname = 'DESCRIPTION'.?
APPEND ls_field_name TO ls_input_field-field_names.?
ls_field_name-fieldname = 'MODE'.?
APPEND ls_field_name TO ls_input_field-field_names.?
ls_field_name-fieldname = 'PROCESS_TYPE'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
APPEND ls_input_field TO lt_input_fields.?
?
CLEAR: ls_input_field.?
ls_input_field-ref_guid = lv_guid.?
ls_input_field-ref_kind = 'A'.?
ls_input_field-objectname = 'PARTNER'.?
?
CLEAR: ls_field_name.?
ls_field_name-fieldname = 'DISPLAY_TYPE'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'KIND_OF_ENTRY'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'NO_TYPE'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'PARTNER_FCT'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'PARTNER_NO'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_input_field-ref_handle = '0000000000'.?
ls_input_field-logical_key = '0000'.?
APPEND ls_input_field TO lt_input_fields.?
?
* input field for Org management?
CLEAR: ls_input_field,ls_field_name.?
ls_field_name-fieldname = 'DIS_CHANNEL'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'DIVISION'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'NO_DETERMINATION'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'SALES_ORGR_ORI'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_field_name-fieldname = 'SALES_ORG_RESP'.?
APPEND ls_field_name TO ls_input_field-field_names.?
?
ls_input_field-ref_guid = lv_guid.?
ls_input_field-ref_kind = 'A'.?
ls_input_field-objectname = 'ORGMAN'.?
?
INSERT ls_input_field INTO TABLE lt_input_fields.?
?
ls_partner-ref_guid = lv_guid.?
ls_partner-ref_kind = 'A'.?
ls_partner-kind_of_entry = 'C'.?
ls_partner-partner_fct = '00000021'. "sales prospect?
ls_partner-partner_no = '0004031140'.?
ls_partner-display_type = 'BP'.?
ls_partner-no_type = 'BP'.?
APPEND ls_partner TO lt_partner.?
?
CALL FUNCTION 'CRM_ORDER_MAINTAIN'?
EXPORTING?
it_partner ? ? ?= lt_partner?
it_orgman ? ? ? = lt_org_man?
CHANGING?
ct_orderadm_h ? = lt_orderadm_h_com?
ct_input_fields = lt_input_fields?
EXCEPTIONS?
OTHERS ? ? ? ? ?= 99.?
?
IF sy-subrc = 0.?
WRITE:/ 'Order maintain function is done successfully.'.?
ENDIF.?
ENDFORM.?
?
FORM call_order_save.?
INSERT lv_guid INTO TABLE lt_save.?
?
CALL FUNCTION 'CRM_ORDER_SAVE'?
EXPORTING?
it_objects_to_save ? = lt_save?
iv_update_task_local = abap_true?
iv_no_bdoc_send ? ? ?= abap_true?
IMPORTING?
et_saved_objects ? ? = lt_saved?
EXCEPTIONS?
document_not_saved ? = 1.?
?
IF sy-subrc <> 0.?
WRITE: / 'Opportunity created failed'.?
ELSE.?
READ TABLE lt_saved INTO ls_saved INDEX 1.?
WRITE: / 'Opportunity created successfully, id: ' , ls_saved-object_id.?
?
ENDIF.?
?
COMMIT WORK AND WAIT.?
?
ENDFORM.?
總結
以上是生活随笔為你收集整理的使用代码创建具有organization unit的opportunity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王小川、王慧文做邻居,中国版Open A
- 下一篇: 重装系统后QQ聊天记录恢复方法