2023 Mar 29 1:53 PM
Hi Experts,
I need to extend the customer via company code.
Ie., If 10000 (customer) was maintained in 6000 need to extend to 5000.
Here 'es_message_defective' method i didn't gets error message, but company code was not extended.
Please guidance me.
FORM customer_extension.
TYPES: BEGIN OF ty_log,
bu_partner TYPE kunnr,
msg(4) TYPE c,
END OF ty_log.
DATA: ls_cmds_main TYPE cmds_ei_main,
lt_cmds_ei_central_data TYPE TABLE OF cmds_ei_extern,
ls_tax TYPE cmds_ei_central_data.
DATA: t_log TYPE TABLE OF ty_log,
w_log TYPE ty_log.
LOOP AT lt_final_1 INTO ls_final_1.
CLEAR: ls_customers.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_final_1-kunnr
IMPORTING
output = ls_customers-header-object_instance-kunnr.
CLEAR: ls_kna1.
SELECT SINGLE * FROM kna1 INTO ls_kna1
WHERE kunnr = ls_customers-header-object_instance-kunnr.
ls_customers-header-object_task = 'U'.
ls_address-postal-data-name = ls_final_1-name1.
ls_address-postal-data-name_2 = ls_final_1-name2.
ls_address-postal-data-name_3 = ls_final_1-name3.
ls_address-postal-data-name_4 = ls_final_1-name4.
ls_address-postal-datax-name = 'X'.
ls_address-postal-datax-name_2 = 'X'.
ls_address-postal-datax-name_3 = 'X'.
ls_address-postal-datax-name_4 = 'X'.
ls_address-task = 'U'.
ls_customers-central_data-address = ls_address.
* *****Extend the company code.
REFRESH: lt_company[].
CLEAR ls_company.
ls_company-task = 'M'.
ls_company-data_key-bukrs = ls_final_1-companycode. "Company code
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_final_1-rec_account
IMPORTING
output = ls_company-data-akont.
ls_company-datax-akont = 'X'.
ls_company-data-zterm = ls_final_1-terms. "Payment terms
ls_company-datax-zterm = 'X'.
APPEND ls_company TO lt_company.
ls_company_data-company = lt_company[].
ls_customers-company_data = ls_company_data.
APPEND ls_customers TO lt_customers.
is_master_data-customers = lt_customers[].
CALL METHOD cmd_ei_api=>maintain_bapi
EXPORTING
iv_test_run = ' '
iv_collect_messages = abap_true
is_master_data = is_master_data
IMPORTING
es_master_data_correct = es_master_data_correct
es_message_correct = es_message_correct
es_master_data_defective = es_master_data_defective
es_message_defective = es_message_defective.
IF es_message_defective-is_error IS INITIAL.
COMMIT WORK.<br> WAIT UP TO 1 SECONDS.
w_log-bu_partner = ls_final_1-kunnr.
w_log-msg = 'Customer Extended to Company Code'.
APPEND w_log TO t_log.
CLEAR w_log.
ELSE. " ELSE -> IF es_message_defective-is_error IS INITIAL
LOOP AT es_message_defective-messages INTO DATA(wa).
w_log-bu_partner = ls_final_1-kunnr.
w_log-msg = wa-message.
APPEND w_log TO t_log.
CLEAR w_log.
ENDLOOP. " LOOP AT es_message_defective-messages INTO DATA(wa)
ENDIF. " IF es_message_defective-is_error IS INITIAL
ENDLOOP.
ENDFORM.