Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Customer Creation Using CMD_EI_API=>MAINTAIN_BAPI

0 Kudos

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..

2 REPLIES 2

Former Member
0 Kudos

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

0 Kudos

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