Dear Gurus,
I am trying to create a service order using CRM_ORDER_MAINTAIN and CRM_ORDER_SAVE.
I have observed the values from debuggin the actual order creation through CRMD_ORDER and i am passing those hardcoded values to the above mentioned FMs.
But in my case,the header is not generated saying header GUID is not found and thats why it is not creating any order also.can u please look into the code and tell me where m going wrong??
CALL FUNCTION '/CEM/CREATE_GUID'
IMPORTING
EV_GUID = guid
.
wa_sales-ref_handle = 1.
wa_sales-ref_guid = 0.
wa_sales-ref_kind = 'B'.
append wa_sales to it_sales.
wa_pricing-ref_handle = 1.
wa_pricing-ref_guid = 0.
wa_pricing-ref_kind = 'B'.
append wa_pricing to it_pricing.
wa_shipping-ref_handle = 1.
wa_shipping-ref_guid = 0.
wa_shipping-ref_kind = 'B'.
append wa_shipping to it_shipping.
wa_product_i-ref_handle = 1.
append wa_product_i to it_product_i.
wa_schedlines-QUANTITY = 3.
append wa_schedlines to schedlines.
wa_schedlin_i-ref_handle = 1.
wa_schedlin_i-SCHEDLINES = schedlines.
append wa_schedlin_i to it_schedlin_i.
wa_partner-REF_GUID = guid.
wa_partner-ref_handle = 1.
wa_partner-ref_kind = 'A'.
wa_partner-REF_PARTNER_HANDLE = 0001.
wa_partner-KIND_OF_ENTRY = 'C'.
wa_partner-PARTNER_FCT = 00000001.
wa_partner-PARTNER_NO = 0000000171.
wa_partner-DISPLAY_TYPE = 'BP'.
wa_partner-NO_TYPE = 'BP'.
append wa_partner to it_partner.
wa_partner-REF_GUID = guid.
wa_partner-ref_handle = 2.
wa_partner-ref_kind = 'A'.
wa_partner-REF_PARTNER_HANDLE = 0002.
wa_partner-KIND_OF_ENTRY = 'C'.
wa_partner-PARTNER_FCT = 00000002.
wa_partner-PARTNER_NO = 0000000171.
wa_partner-DISPLAY_TYPE = 'BP'.
wa_partner-NO_TYPE = 'BP'.
append wa_partner to it_partner.
wa_field_name-fieldname = 'MODE'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'ORDERED_PROD'.
append wa_field_name to field_name.
wa_input_fields-ref_handle = 1.
wa_input_fields-ref_guid = 0.
wa_input_fields-objectname = 'ORDERADM_I'.
wa_input_fields-FIELD_NAMES = field_name.
append wa_input_fields to ct_input_fields.
clear field_name.
refresh field_name.
wa_field_name-fieldname = 'DISPLAY_TYPE'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'KIND_OF_ENTRY'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'NO_TYPE'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'PARTNER_FCT'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'PARTNER_NO'.
append wa_field_name to field_name.
wa_input_fields-ref_handle = 2.
wa_input_fields-ref_guid = guid.
wa_input_fields-ref_kind = 'A'.
wa_input_fields-objectname = 'PARTNER'.
wa_input_fields-FIELD_NAMES = field_name.
wa_input_fields-logical_key = 001.
append wa_input_fields to ct_input_fields.
clear field_name.
refresh field_name.
wa_field_name-fieldname = 'DISPLAY_TYPE'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'KIND_OF_ENTRY'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'NO_TYPE'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'PARTNER_FCT'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'PARTNER_NO'.
append wa_field_name to field_name.
wa_input_fields-ref_handle = 3.
wa_input_fields-ref_guid = guid.
wa_input_fields-ref_kind = 'A'.
wa_input_fields-objectname = 'PARTNER'.
wa_input_fields-FIELD_NAMES = field_name.
wa_input_fields-logical_key = 002.
append wa_input_fields to ct_input_fields.
clear field_name.
refresh field_name.
wa_field_name-fieldname = 'LOGICAL_KEY'.
append wa_field_name to field_name.
wa_field_name-fieldname = 'QUANTITY'.
append wa_field_name to field_name.
wa_input_fields-ref_handle = 4.
wa_input_fields-ref_guid = 0.
wa_input_fields-ref_kind = 'B'.
wa_input_fields-objectname = 'SCHEDLIN'.
wa_input_fields-FIELD_NAMES = field_name.
wa_input_fields-logical_key = 0.
append wa_input_fields to ct_input_fields.
clear field_name.
refresh field_name.
wa_input_fields-ref_handle = 5.
wa_input_fields-ref_guid = 0.
wa_input_fields-ref_kind = 'B'.
wa_input_fields-objectname = 'SCHEDLIN_I'.
wa_input_fields-FIELD_NAMES = field_name.
append wa_input_fields to ct_input_fields.
wa_orderadm_i-handle = 1.
wa_orderadm_i-header = guid.
wa_orderadm_i-ORDERED_PROD = 'ZSH_ADDON'.
wa_orderadm_i-MODE = 'A'.
append wa_orderadm_i to ct_orderadm_i.
CALL FUNCTION 'CRM_ORDER_MAINTAIN'
EXPORTING
IT_OPPORT_H = IT_OPPORT_H
IT_LEAD_H = IT_LEAD_H
IT_ACTIVITY_H = IT_ACTIVITY_H
IT_SALES = IT_SALES
IT_PRICING = IT_PRICING
IT_PRICING_I = IT_PRICING_I
IT_PRIDOC = IT_PRIDOC
IT_ORGMAN = IT_ORGMAN
IT_SHIPPING = IT_SHIPPING
IT_ACTIVITY_I = IT_ACTIVITY_I
IT_PRODUCT_I = IT_PRODUCT_I
IT_BATCH = IT_BATCH
IT_FINPROD_I = IT_FINPROD_I
IT_STRUCT_I = IT_STRUCT_I
IT_CONFIG = IT_CONFIG
IT_PAYPLAN = IT_PAYPLAN
IT_PAYPLAN_D = IT_PAYPLAN_D
IT_CUSTOMER_H = IT_CUSTOMER_H
IT_CUSTOMER_I = IT_CUSTOMER_I
IT_SERVICE_H = IT_SERVICE_H
IT_SERVICE_I = IT_SERVICE_I
IT_SERVICE_ASSIGN = IT_SERVICE_ASSIGN
IT_QUALIF = IT_QUALIF
IT_APPOINTMENT = IT_APPOINTMENT
IT_TEXT = IT_TEXT
IT_SCHEDLIN_I = IT_SCHEDLIN_I
IT_PARTNER = IT_PARTNER
IT_SERVICE_OS = IT_SERVICE_OS
IT_REFOBJ = IT_REFOBJ
IT_SUBJECT = IT_SUBJECT
IT_CANCEL = IT_CANCEL
IT_CANCEL_IR = IT_CANCEL_IR
IT_CANCEL_DATES = IT_CANCEL_DATES
IT_STATUS = IT_STATUS
IT_BILLPLAN = IT_BILLPLAN
IT_BILLING = IT_BILLING
IT_ORDPRP_I = IT_ORDPRP_I
IT_ORDPRP_I_D = IT_ORDPRP_I_D
IT_ORDPRP_OBJL_I_D = IT_ORDPRP_OBJL_I_D
IT_CUMULATED_I = IT_CUMULATED_I
IT_SERVICEPLAN_I = IT_SERVICEPLAN_I
IT_SERVICEPLAN_IE = IT_SERVICEPLAN_IE
IT_PRICE_AGREEMENTS_BBP = IT_PRICE_AGREEMENTS_BBP
IT_PRICE_AGREEMENTS_CRM = IT_PRICE_AGREEMENTS_CRM
IT_CONFIG_FILTER = IT_CONFIG_FILTER
IT_AC_ASSIGN = IT_AC_ASSIGN
IT_SURVEY = IT_SURVEY
IT_EXTENSION = IT_EXTENSION
IT_ACTIVE_SWITCH = IT_ACTIVE_SWITCH
IT_UBB_CTR_I = IT_UBB_CTR_I
IT_UBB_CR_I = IT_UBB_CR_I
IT_UBB_VOL_I = IT_UBB_VOL_I
IT_APO_I = IT_APO_I
IT_CHNGPROC_I = IT_CHNGPROC_I
IT_EXT_REF = IT_EXT_REF
IT_DOC_FLOW_PNT = IT_DOC_FLOW_PNT
IT_CHNGPROC_H = IT_CHNGPROC_H
IT_FUND_H = IT_FUND_H
IT_CLA_H = IT_CLA_H
IMPORTING
ET_EXCEPTION = ET_EXCEPTION
CHANGING
CT_ORDERADM_H = CT_ORDERADM_H
CT_ORDERADM_I = CT_ORDERADM_I
CT_INPUT_FIELDS = CT_INPUT_FIELDS
CV_LOG_HANDLE = CV_LOG_HANDLE
CT_PARTNER_ATTRIBUTES = CT_PARTNER_ATTRIBUTES
CT_DOC_FLOW = CT_DOC_FLOW
EXCEPTIONS
ERROR_OCCURRED = 1
DOCUMENT_LOCKED = 2
NO_CHANGE_ALLOWED = 3
NO_AUTHORITY = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
read table ct_orderadm_i into wa_orderadm_i index 1.
guid = wa_orderadm_i-header.
wa_objects_to_save = guid.
append wa_objects_to_save to it_objects_to_save.
iv_update_task_local = 'X'.
CALL FUNCTION 'CRM_ORDER_SAVE'
EXPORTING
IT_OBJECTS_TO_SAVE = it_objects_to_save
IV_UPDATE_TASK_LOCAL = iv_update_task_local
IV_SAVE_FRAME_LOG = FALSE
IV_NO_BDOC_SEND = FALSE
IMPORTING
ET_SAVED_OBJECTS = ET_SAVED_OBJECTS
ET_EXCEPTION = ET_EXCEPTION
ET_OBJECTS_NOT_SAVED = ET_OBJECTS_NOT_SAVED
CHANGING
CV_LOG_HANDLE = CV_LOG_HANDLE
EXCEPTIONS
DOCUMENT_NOT_SAVED = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
commit work.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.