Skip to Content
1
Former Member
May 12, 2008 at 01:55 PM

Problem in CRM_ORDER_MAINTAIN

117 Views

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 =

.