03-21-2013 6:56 AM
Hi,
I tried creating customer using class CMD_EI_API using MAINTAIN_BAPI method. Customer is successfully created when I'm not providing Customer Sales details. When I'm providing sales details, it errors out on partner functions.
Customer .../3000/01/30: Data is incomplete; check data.
KNVP-KUNN2 -LIFNR -PERNR: Plausibility check failed
My Code:
REPORT ZTEST_CUST75_CC.
data: wa_header type cmds_ei_header,
wa_central_data type cmds_ei_vmd_central_data,
wa_central_datax type cmds_ei_vmd_central_data_xflag,
wa_address type bapiad1vl,
wa_addressx type bapiad1vlx,
wa_tax_ind_st type cmds_ei_tax_ind,
wa_tax_ind type cmds_ei_cmd_tax_ind,
wa_bankdetail_st type cvis_ei_cvi_bankdetail,
wa_bankdetail type cvis_ei_bankdetail,
wa_s_company_code type cmds_ei_company,
wa_t_company_code type cmds_ei_company_t,
wa_s_functions type cmds_ei_functions,
wa_t_functions type CMDS_EI_FUNCTIONS_T,
wa_functions type cmds_ei_cmd_functions,
wa_s_sales_data type cmds_ei_sales,
wa_t_sales_data type cmds_ei_sales_t,
wa_sales_data type cmds_ei_cmd_sales,
wa_customer type cmds_ei_extern,
wa_customers type cmds_ei_main,
wa_correct type cmds_ei_main,
wa_defective type cmds_ei_main,
wa_mes_correct type cvis_message,
wa_mes_error type cvis_message,
wa_t_corr_cust type CMDS_EI_EXTERN_T,
wa_s_corr_cust like line of wa_t_corr_cust.
data: return_t type bapiret2_t,
return_s type bapiret2,
g_kunnr type kunnr.
data: wa_t_phone type CVIS_EI_PHONE_T,
wa_s_phone like line of wa_t_phone,
wa_t_fax type CVIS_EI_FAX_T,
wa_s_fax like line of wa_t_fax,
wa_t_email type CVIS_EI_SMTP_T,
wa_s_email like line of wa_t_email,
wa_comm type CVIS_EI_CVI_COMMUNICATION.
constants: c_update type c value 'M',
c_insert type c value 'I'.
start-of-selection.
clear: wa_customer, wa_s_company_code.
wa_customer-header-object_task = c_insert.
******************Begin of Populating the Address******************
wa_address-name = 'NAVTEQ Test Peugeot NSO Dealer'.
wa_address-city = 'Veldhoven'.
wa_address-postl_cod1 = '5503LB'.
wa_address-street = 'De Run'.
wa_address-country = 'CZ'.
wa_address-langu = 'E'.
wa_address-sort1 = 'SORT1'.
wa_address-sort2 = 'Sort2'.
wa_address-TRANSPZONE = '0000000001'.
* Assign address data directly
wa_customer-central_data-address-postal-data = wa_address.
wa_addressx-name = 'X'.
wa_addressx-city = 'X'.
wa_addressx-postl_cod1 = 'X'.
wa_addressx-street = 'X'.
wa_addressx-country = 'X'.
wa_addressx-langu = 'X'.
wa_addressx-sort1 = 'X'.
wa_addressx-sort2 = 'X'.
wa_addressx-TRANSPZONE = 'X'.
* Assign address data directly
wa_customer-central_data-address-postal-datax = wa_addressx.
*******************End of Populating the Address*******************
** Assign account group directly
wa_customer-central_data-central-data-ktokd = '0001'."'OKRA'.
wa_customer-central_data-central-datax-ktokd = 'X'.
wa_customer-central_data-central-data-STCD1 = '8291004247'.
wa_customer-central_data-central-datax-stcd1 = 'X'.
*******************Begin of Communication details******************
*if i_meth_id = 'Phone'.
wa_s_phone-contact-task = c_insert.
wa_s_phone-contact-data-telephone = '040-1234567'.
wa_s_phone-contact-datax-telephone = 'X'.
append wa_s_phone to wa_t_phone.
* wa_comm-PHONE-current_state = 'X'.
wa_comm-PHONE-PHONE = wa_t_phone[].
*elseif i_meth_id = 'Fax'.
wa_s_fax-contact-task = c_insert.
wa_s_fax-contact-data-fax = '1234567891'.
wa_s_fax-contact-datax-fax = 'X'.
append wa_s_fax to wa_t_fax.
* wa_comm-FAX-current_state = 'X'.
wa_comm-FAX-FAX = wa_t_fax[].
*elseif i_meth_id = 'Email'.
wa_s_email-contact-task = c_insert.
wa_s_email-contact-data-e_mail = 'e.shivakrishna@gmail.com'.
wa_s_email-contact-datax-e_mail = 'X'.
append wa_s_email to wa_t_email.
* wa_comm-SMTP-current_state = 'X'.
wa_comm-SMTP-SMTP = wa_t_email[].
*endif.
* Assign contact mediums data directly
wa_customer-central_data-address-communication = wa_comm.
*******************End of Communication details*******************
***************Begin of Customer Company code details*************
wa_s_company_code-task = c_insert.
wa_s_company_code-data_key-bukrs = '3000'.
wa_s_company_code-data-zuawa = '009'.
wa_s_company_code-data-akont = '0000140555'.
wa_s_company_code-data-zterm = 'Z30'.
wa_s_company_code-data-xzver = 'X'.
append wa_s_company_code to wa_t_company_code.
wa_customer-company_data-current_state = 'X'.
wa_customer-company_data-company = wa_t_company_code[].
*****************End of Customer Company code details*************
******************Begin of Customer Sales details*****************
wa_s_sales_data-task = c_insert.
wa_s_sales_data-data_key-vkorg = '3000'."i_sales_org.
wa_s_sales_data-data_key-vtweg = '01'.
wa_s_sales_data-data_key-spart = '30'.
wa_s_sales_data-data-versg = '1'.
wa_s_sales_data-datax-versg = 'X'.
wa_s_sales_data-data-kalks = '3'.
wa_s_sales_data-datax-kalks = 'X'.
wa_s_sales_data-data-kdgrp = 'MC'.
wa_s_sales_data-datax-kdgrp = 'MC'.
wa_s_sales_data-data-vsbed = '02'.
wa_s_sales_data-datax-vsbed = 'X'.
wa_s_sales_data-data-waers = 'EUR'.
wa_s_sales_data-datax-waers = 'X'.
wa_s_sales_data-data-ktgrd = '02'.
wa_s_sales_data-datax-ktgrd = 'X'.
*wa_s_sales_data-data-zterm = 'Z30'."i_pay_term.
*wa_s_sales_data-datax-zterm = 'X'.
******Begin of Partner roles details*****
wa_s_sales_data-functions-current_state = 'X'.
wa_s_functions-task = c_insert.
wa_s_functions-data_key-parvw = 'RE'.
wa_s_functions-data_key-parza = '000'.
wa_s_functions-data-knref = 'Bill to Party'.
wa_s_functions-datax-knref = 'X'.
*wa_s_functions-data-partner = ' '.
*wa_s_functions-datax-partner = 'X'.
append wa_s_functions to wa_t_functions.
clear wa_s_functions.
wa_s_functions-task = c_insert.
wa_s_functions-data_key-parvw = 'AG'.
wa_s_functions-data_key-parza = '000'.
wa_s_functions-data-knref = 'Sold to Party'.
wa_s_functions-datax-knref = 'X'.
*wa_s_functions-data-partner = ' '.
*wa_s_functions-datax-partner = 'X'.
append wa_s_functions to wa_t_functions.
clear wa_s_functions.
wa_s_functions-task = c_insert.
wa_s_functions-data_key-parvw = 'RG'.
wa_s_functions-data_key-parza = '000'.
wa_s_functions-data-knref = 'Payer'.
wa_s_functions-datax-knref = 'X'.
*wa_s_functions-data-partner = ' '.
*wa_s_functions-datax-partner = 'X'.
append wa_s_functions to wa_t_functions.
clear wa_s_functions.
wa_s_functions-task = c_insert.
wa_s_functions-data_key-parvw = 'WE'.
wa_s_functions-data_key-parza = '000'.
wa_s_functions-data-knref = 'Ship to Party'.
wa_s_functions-datax-knref = 'X'.
wa_s_functions-data-partner = ' '.
wa_s_functions-datax-partner = 'X'.
append wa_s_functions to wa_t_functions.
wa_s_sales_data-functions-functions = wa_t_functions[].
******End of Partner roles details******
append wa_s_sales_data to wa_t_sales_data.
wa_sales_data-current_state = 'X'.
wa_sales_data-sales = wa_t_sales_data[].
*Assign Sales data directly
wa_customer-sales_data = wa_sales_data.
*******************End of Customer Sales details******************
append wa_customer to wa_customers-customers.
call method cmd_ei_api=>maintain_bapi
EXPORTING
* iv_test_run = p_test
* iv_collect_messages = 'X'
is_master_data = wa_customers
IMPORTING
es_master_data_correct = wa_correct
es_message_correct = wa_mes_correct
es_master_data_defective = wa_defective
es_message_defective = wa_mes_error.
if wa_mes_error-is_error is initial.
COMMIT WORK.
wa_t_corr_cust[] = wa_correct-customers[].
read table wa_t_corr_cust into wa_s_corr_cust index 1.
if sy-subrc eq 0.
g_kunnr = wa_s_corr_cust-header-object_instance-kunnr.
endif.
write:/'Customer Created:',g_kunnr.
else.
return_t = wa_mes_error-messages.
loop at return_t into return_s where type = 'E'.
write:/'Error:',return_s-message.
endloop.
endif.
Please let me know where I'm wrong..
03-21-2013 7:34 AM
hi Shiva,
U can take the help below code.
data : wa_VAT_NUMBER type CVIS_EI_VAT_NUMBERS,
wa_vat_t type CVIS_EI_VAT_T,
wa_vat type CVIS_EI_VAT,
wa_PHONE type CVIS_EI_CVI_PHONE,
wa_ph_t type CVIS_EI_PHONE_T,
wa_ph_ph type CVIS_EI_PHONE_STR,
wa_FAX type CVIS_EI_CVI_FAX,
wa_fx_t type CVIS_EI_FAX_T,
wa_fx_fx type CVIS_EI_FAX_STR,
wa_sm_smtp type CVIS_EI_SMTP_STR,
wa_smtp_t type CVIS_EI_SMTP_T,
wa_SMTP type CVIS_EI_CVI_SMTP.
data: wa_header type cmds_ei_header,
wa_address type bapiad1vl,
wa_addressx type bapiad1vlx,
wa_comm type CVIS_EI_CVI_COMMUNICATION,
wa_bankdetail_st type cvis_ei_cvi_bankdetail,
wa_bankdetail type cvis_ei_bankdetail,
wa_bank_t type CVIS_EI_BANKDETAIL_T,
wa_bank type CVIS_EI_BANKDETAIL_KEY,
wa_company_code_st type cmds_ei_company,
wa_company_code type cmds_ei_cmd_company,
wa_functions_st type cmds_ei_functions,
wa_functions_t type CMDS_EI_FUNCTIONS_T,
wa_functions type cmds_ei_cmd_functions,
wa_central type CMDS_EI_CMD_CENTRAL,
wa_central_dt type CMDS_EI_CENTRAL_DATA,
wa_sales_data_st type cmds_ei_sales,
wa_sales_data type cmds_ei_cmd_sales,
wa_customer type cmds_ei_extern,
wa_customers type cmds_ei_main,
wa_correct type cmds_ei_main,
wa_defective type cmds_ei_main,
wa_mes_correct type cvis_message,
wa_mes_error type cvis_message,
return_t type bapiret2_t.
constants: c_update type c value 'M', c_insert type c value 'I'.
start-of-selection.
wa_address-name = 'Name_class'.
wa_address-city = 'berlin'.
wa_address-DISTRICT = 'HERMSDORF' .
wa_address-POSTL_COD2 = '12346'.
wa_address-PO_BOX = '23426'.
wa_address-postl_cod1 = '99999'.
wa_address-TRANSPZONE = 'D000010000' .
wa_address-street = '1400 9TH ST W'.
wa_address-STR_SUPPL1 = 'berlin2'.
wa_address-ROOM_NO = '34'.
wa_address-country = 'DE'.
wa_address-langu = 'DE'.
wa_address-region = '11'.
wa_address-sort1 = 'Cust_by_class'.
wa_comm-PHONE = '123-456-891'.
wa_comm-FAX = '1234567891'.
wa_comm-SMTP = email@removed '.
wa_ph_DATA-COUNTRY = 'DE'.
wa_ph_DATA-TELEPHONE = '123-456-891'.
wa_ph_ph-contact-task = c_insert.
wa_ph_ph-contact-data-country = 'DE'.
wa_ph_ph-contact-data-TELEPHONE = '123-456-891'.
append wa_ph_ph to wa_ph_t.
wa_PHONE-phone = wa_ph_t.
wa_comm-PHONE = wa_phone.
*wa_fx_DATA-COUNTRY = 'DE'.
*wa_fx_DATA-FAX = '1234567891'.
wa_fx_fx-contact-task = c_insert.
wa_fx_fx-contact-data-country = 'DE'.
wa_fx_fx-contact-data-FAX = '123-456-891'.
append wa_fx_fx to wa_fx_t.
wa_FAX-FAX = wa_fx_t.
wa_comm-FAX = wa_FAX.
wa_sm_smtp-contact-task = c_insert.
wa_sm_smtp-contact-data-E_MAIL = email@removed '.
append wa_sm_smtp to wa_smtp_t.
wa_SMTP-smtp = wa_smtp_t.
wa_comm-SMTP = wa_SMTP.
* VAT Reg. No = 'DE126523143' .
* Assign address data directly
wa_customer-central_data-address-TASK = c_insert.
wa_customer-central_data-address-postal-data = wa_address.
* wa_customer-central_data-address-postal-datax = wa_addressx.
wa_customer-central_data-address-COMMUNICATION = wa_comm.
** Assign account group directly
wa_customer-central_data-central-data-ktokd = '0001'.
wa_customer-central_data-central-datax-ktokd = 'X'.
wa_company_code_st-task = c_insert.
wa_company_code_st-data_key-bukrs = '1000'.
* wa_company_code_st-data-zuawa = '009'.
wa_company_code_st-data-akont = '0000140000'.
* wa_company_code_st-data-zwels = 'ACDETY'.
wa_company_code_st-data-zterm = 'ZB01'.
* wa_company_code_st-data-zgrup = '02'.
* wa_company_code_st-data-xausz = '2'.
* wa_company_code_st-data-xzver = 'X'.
append wa_company_code_st to wa_company_code-company.
wa_sales_data_st-task = c_insert.
wa_sales_data_st-data_key-vkorg = '1000'.
wa_sales_data_st-data_key-vtweg = '10'.
wa_sales_data_st-data_key-spart = '10'.
wa_sales_data_st-data-kalks = '1'.
* wa_sales_data_st-data-PODKZ = '1'.
wa_sales_data_st-data-inco1 = 'CIF'.
wa_sales_data_st-data-inco2 = 'BERLIN'.
* wa_sales_data_st-data-antlf = '9'.
wa_sales_data_st-data-kzazu = 'X'.
wa_sales_data_st-data-vsbed = '02'.
wa_sales_data_st-data-LPRIO = '02'.
wa_sales_data_st-data-VWERK = '1000' .
wa_sales_data_st-data-waers = 'EUR'.
* wa_sales_data_st-data-ktgrd = '01'.
wa_sales_data_st-data-zterm = 'ZB01'.
* wa_sales_data_st-functions-functions-data_key-parvw = 'SP'.
wa_functions_st-data_key-parvw = 'SP'.
wa_functions_st-data_key-parza = '000'.
append wa_functions_st to wa_functions_t.
wa_functions_st-data_key-parvw = 'BP'.
wa_functions_st-data_key-parza = '000'.
append wa_functions_st to wa_functions_t.
wa_functions_st-data_key-parvw = 'PY'.
wa_functions_st-data_key-parza = '000'.
append wa_functions_st to wa_functions_t.
wa_functions_st-data_key-parvw = 'SH'.
wa_functions_st-data_key-parza = '000'.
* append wa_functions_st to wa_functions_t.
append wa_functions_st to wa_functions-functions.
* wa_functions = wa_functions_t.
wa_sales_data_st-functions = wa_functions.
append wa_sales_data_st to wa_sales_data-sales.
* wa_bankdetail_st-task = c_insert.
* wa_bankdetail_st-DATA_KEY-BANKS = 'DE'.
* wa_bankdetail_st-DATA_KEY-BANKL = '12412654'.
* wa_bankdetail_st-DATA_KEY-BANKN = '46575466'.
** wa_bankdetail_st-DATA-BKONT =
* wa_bankdetail_st-DATA-KOINH = '3456' .
* append wa_bankdetail_st to wa_bank_t.
*wa_bankdetail-BANKDETAILS = wa_bank_t.
* wa_vat_DATA_KEY-LAND1 = 'DE'.
* wa_vat_data-STCEG = 'DE126523123'.
wa_vat-task = c_insert.
wa_vat-DATA_KEY-LAND1 = 'DE'.
wa_vat-data-STCEG = 'DE126523123'.
append wa_vat to wa_vat_t.
wa_VAT_NUMBER-VAT_NUMBERS = wa_vat_t.
wa_central-data-ktokd = '0001'.
wa_central-data-STCEG = 'DE126523123'.
wa_central_dt-central = wa_central.
wa_central_dt-VAT_NUMBER = wa_VAT_NUMBER.
* wa_central_dt-BANKDETAIL = wa_bankdetail.
* wa_customer-header-object_instance-kunnr = '77775'.
wa_customer-header-object_task = c_insert.
wa_customer-company_data = wa_company_code.
wa_customer-CENTRAL_DATA = wa_central_dt.
wa_customer-sales_data = wa_sales_data.
append wa_customer to wa_customers-customers.
CALL METHOD cmd_ei_api=>maintain_bapi
EXPORTING
is_master_data = wa_customers
IMPORTING
ES_MASTER_DATA_CORRECT = wa_correct
ES_MESSAGE_CORRECT = wa_mes_correct
ES_MASTER_DATA_DEFECTIVE = wa_defective
ES_MESSAGE_DEFECTIVE = wa_mes_error.
if wa_mes_error-is_error is initial.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
endif.
Thanks
tarak
03-21-2013 10:51 AM
Hi Tarak,
I tested your program, even then I got the same error as I mentioned earlier.
Customer 233547 / 3000 / 01 / 30: Data is incomplete; check data
KNVP-KUNN2 -LIFNR -PERNR -PARNR: Plausibility check failed