• No results found

Create and Change Customer Data Through BAPI Class Method XD01 XD02

N/A
N/A
Protected

Academic year: 2021

Share "Create and Change Customer Data Through BAPI Class Method XD01 XD02"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

Create/Change Customer Using Class and Method

1. Create Customer

DATA ls_customers_in TYPE cmds_ei_main. DATA ls_customers_out TYPE cmds_ei_main. DATA ls_customer_in TYPE cmds_ei_extern. DATA ls_header_in TYPE cmds_ei_header.

*PARAMETERS: P_radio1 RADIOBUTTON GROUP RAD1 DEFAULT 'X' USER-COMMAND RAD, * P_Radio2 RADIOBUTTON GROUP RAD1.

PARAMETERS: p_kunnr TYPE kna1-kunnr. PERFORM create.

ls_header_in-object_instance-kunnr = p_kunnr.

ls_header_in-object_task = cvi_ei_api_map_structure=>gc_modify. ls_customer_in-header = ls_header_in.

* Complete interface structure

APPEND ls_customer_in TO ls_customers_in-customers. CALL METHOD cmd_ei_api_extract=>get_data

EXPORTING is_master_data = ls_customers_in IMPORTING es_master_data = ls_customers_out * es_error = . BREAK-POINT. *&---* *& Form create

*&---* * text

*---* FORM create.

DATA: ls_masterdata TYPE cmds_ei_main, ls_customers TYPE cmds_ei_extern, ls_customers2 TYPE cmds_ei_extern, ls_header_2 TYPE cmds_ei_header, lt_customers TYPE cmds_ei_extern_t, lt_customers2 TYPE cmds_ei_extern_t, * for Exportparameters of Methode

ls_master_data_correct TYPE cmds_ei_main, ls_message_correct TYPE cvis_message, ls_master_data_defective TYPE cmds_ei_main, ls_message_defective TYPE cvis_message,

(2)

* for Transfer Communication data

ls_phone_main TYPE cvis_ei_cvi_phone, ls_phone TYPE cvis_ei_phone_str, lt_phone TYPE cvis_ei_phone_t, ls_fax_main TYPE cvis_ei_cvi_fax, ls_fax TYPE cvis_ei_fax_str, lt_fax TYPE cvis_ei_fax_t, ls_mail_main TYPE cvis_ei_cvi_smtp, ls_mail TYPE cvis_ei_smtp_str, lt_mail TYPE cvis_ei_smtp_t, cust_no TYPE kunnr.

* Customer number (in case of external creating of numbers) * ls_customers-header-object_instance-kunnr = '0022281958'. * Mark CREATE

ls_customers-header-object_task = 'I'.

* Fill central data like Customer Account Group

ls_customers-central_data-central-data-ktokd = 'ZAG1'. * ls_customers-central_data-central-data-KUKLA = '01'.

ls_customers-central_data-central-data-stcd1 = '22281958-K'. ls_customers-central_data-central-data-niels = ' '.

ls_customers-central_data-central-datax-ktokd = 'X'. * ls_customers-central_data-central-datax-KUKLA = 'X'. ls_customers-central_data-central-datax-stcd1 = 'X'. ls_customers-central_data-central-datax-niels = 'X'. * now address data

ls_customers-central_data-address-task = 'I'.

* if the FROM date should be filled here , it has also to be filled in all ot her used structures

ls_customers-central_data-address-postal-data-from_date = sy-datum. * NAME and SORT1 are Mandatory fields

ls_customers-central_data-address-postal-data-name = 'pablo'. ls_customers-central_data-address-postal-data-sort1 = 'pablo'. ls_customers-central_data-address-postal-data-name_2 = 'tapia'. ls_customers-central_data-address-postal-data-city = '2'."city1 ls_customers-central_data-address-postal-data-postl_cod1 = '.'. ls_customers-central_data-address-postal-data-street = '2'. ls_customers-central_data-address-postal-data-country = 'PK'. ls_customers-central_data-address-postal-data-langu = 'E'. ls_customers-central_data-address-postal-data-title = '0002'.

ls_customers-central_data-address-postal-data-district = 'santiago'."city2 ls_customers-central_data-address-postal-data-region = '01'. "regio *ls_customers-central_data-address-postal-data-TRANSPZONE = 'Z1340'.

* and now mark all used fields

ls_customers-central_data-address-postal-datax-from_date = 'X'. ls_customers-central_data-address-postal-datax-to_date = 'X'. ls_customers-central_data-address-postal-datax-name = 'X'. ls_customers-central_data-address-postal-datax-sort1 = 'X'. ls_customers-central_data-address-postal-datax-name_2 = 'X'. ls_customers-central_data-address-postal-datax-city = 'X'.

(3)

ls_customers-central_data-address-postal-datax-street = 'X'. ls_customers-central_data-address-postal-datax-house_no = 'X'. ls_customers-central_data-address-postal-datax-country = 'X'. ls_customers-central_data-address-postal-datax-langu = 'X'. ls_customers-central_data-address-postal-datax-title = 'X'. ls_customers-central_data-address-postal-datax-district = 'X'. ls_customers-central_data-address-postal-datax-region = 'X'. ls_customers-central_data-address-postal-datax-transpzone = 'X'.

* fill telephon data

ls_phone-contact-task = 'I'.

ls_phone-contact-data-telephone = '69792'. ls_phone-contact-data-country = 'CL'. ls_phone-contact-data-std_no = 'X'. ls_phone-contact-data-r_3_user = '1'. ls_phone-contact-data-home_flag = 'X'. ls_phone-contact-data-caller_no = '69792'. ls_phone-contact-data-consnumber = '001'. ls_phone-contact-datax-country = 'X'. ls_phone-contact-datax-telephone = 'X'. ls_phone-contact-datax-std_no = 'X'. ls_phone-contact-datax-r_3_user = 'X'. ls_phone-contact-datax-home_flag = 'X'. ls_phone-contact-datax-caller_no = 'X'. ls_phone-contact-datax-consnumber = 'X'. APPEND ls_phone TO lt_phone.

ls_phone-contact-task = 'I'.

ls_phone-contact-data-telephone = '9843'. ls_phone-contact-data-country = 'CL'. ls_phone-contact-data-std_no = ' '. ls_phone-contact-data-r_3_user = '3'. ls_phone-contact-data-home_flag = ' '. ls_phone-contact-data-caller_no = '9843'. ls_phone-contact-data-consnumber = '002'. ls_phone-contact-datax-country = 'X'. ls_phone-contact-datax-telephone = 'X'. ls_phone-contact-datax-std_no = 'X'. ls_phone-contact-datax-r_3_user = 'X'. ls_phone-contact-datax-home_flag = 'X'. ls_phone-contact-datax-caller_no = 'X'. ls_phone-contact-datax-consnumber = 'X'. APPEND ls_phone TO lt_phone.

ls_phone_main-phone = lt_phone.

(4)

ls_fax-contact-task = 'I'.

ls_fax-contact-data-fax = '84380'. ls_fax-contact-data-country = 'CL'. ls_fax-contact-data-home_flag = 'X'. ls_fax-contact-data-consnumber = '001'. ls_fax-contact-data-std_no = 'X'.

ls_fax-contact-data-sender_no = '84380'. ls_fax-contact-data-std_no = 'X'.

ls_fax-contact-datax-fax = 'X'. ls_fax-contact-datax-country = 'X'. ls_fax-contact-datax-home_flag = 'X'. ls_fax-contact-datax-consnumber = 'X'. ls_fax-contact-datax-std_no = 'X'. ls_fax-contact-datax-sender_no = 'X'. ls_fax-contact-datax-std_no = 'X'. APPEND ls_fax TO lt_fax.

ls_fax_main-fax = lt_fax. * fill mail data

ls_mail-contact-task = 'I'.

ls_mail-contact-data-e_mail = '[email protected]'. ls_mail-contact-datax-e_mail = 'X'.

APPEND ls_mail TO lt_mail. ls_mail_main-smtp = lt_mail.

ls_customers-central_data-address-communication-smtp = ls_mail_main. ls_customers-central_data-address-communication-phone = ls_phone_main . ls_customers-central_data-address-communication-fax = ls_fax_main. APPEND ls_customers TO lt_customers.

ls_masterdata-customers = lt_customers. BREAK-POINT. cmd_ei_api=>maintain_bapi( EXPORTING * iv_test_run = 'X' iv_collect_messages = 'X' is_master_data = ls_masterdata IMPORTING es_master_data_correct = ls_master_data_correct es_message_correct = ls_message_correct es_master_data_defective = ls_master_data_defective es_message_defective = ls_message_defective ). * to start booking

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .

READ TABLE ls_master_data_correct-customers INDEX 1 INTO ls_customers2. APPEND ls_customers2 TO lt_customers2.

(5)

LOOP AT lt_customers2 INTO ls_customers2. ls_header_2 = ls_customers2-header.

cust_no = ls_header_2-object_instance-kunnr. ENDLOOP.

WRITE cust_no. BREAK-POINT.

ENDFORM. "create

2. Change Customer

*Modify Customer Data

DATA ls_customers_in TYPE cmds_ei_main. DATA ls_customers_out TYPE cmds_ei_main. DATA ls_customer_in TYPE cmds_ei_extern. DATA ls_header_in TYPE cmds_ei_header. PARAMETERS: p_kunnr TYPE kna1-kunnr,

p_city TYPE ad_city1 LOWER CASE, p_street TYPE ad_street LOWER CASE, p_tel TYPE ad_tlnmbr,

p_mail TYPE ad_smtpadr. PERFORM create USING p_kunnr.

ls_header_in-object_instance-kunnr = p_kunnr.

ls_header_in-object_task = cvi_ei_api_map_structure=>gc_modify. ls_customer_in-header = ls_header_in.

* Complete interface structure

APPEND ls_customer_in TO ls_customers_in-customers. CALL METHOD cmd_ei_api_extract=>get_data

EXPORTING is_master_data = ls_customers_in IMPORTING es_master_data = ls_customers_out * es_error = . BREAK-POINT.

FORM create USING p_kunnr.

DATA: ls_masterdata TYPE cmds_ei_main, ls_customers TYPE cmds_ei_extern, lt_customers TYPE cmds_ei_extern_t, * for Exportparameters of Methode

ls_master_data_correct TYPE cmds_ei_main, ls_message_correct TYPE cvis_message,

(6)

ls_master_data_defective TYPE cmds_ei_main, ls_message_defective TYPE cvis_message, * for Transfer Communication data

ls_phone_main TYPE cvis_ei_cvi_phone, ls_phone TYPE cvis_ei_phone_str, lt_phone TYPE cvis_ei_phone_t, ls_fax_main TYPE cvis_ei_cvi_fax, ls_fax TYPE cvis_ei_fax_str, lt_fax TYPE cvis_ei_fax_t, ls_mail_main TYPE cvis_ei_cvi_smtp, ls_mail TYPE cvis_ei_smtp_str, lt_mail TYPE cvis_ei_smtp_t.

* Customer number (in case of external creating of numbers) ls_customers-header-object_instance-kunnr = p_kunnr.

* Mark CREATE

ls_customers-header-object_task = 'U'.

* Fill central data like Customer Account Group

* ls_customers-central_data-central-data-ktokd = 'CLNA'. * ls_customers-central_data-central-data-KUKLA = '01'. * ls_customers-central_data-central-data-stcd1 = '22281958-K'. * ls_customers-central_data-central-data-GFORM = '02'. * *ls_customers-central_data-central-datax-ktokd = 'X'. * ls_customers-central_data-central-datax-KUKLA = 'X'. * ls_customers-central_data-central-datax-stcd1 = 'X'. * ls_customers-central_data-central-datax-GFORM = 'X'. * now address data

ls_customers-central_data-address-task = 'U'.

* if the FROM date should be filled here , it has also to be filled in *all other used structures

ls_customers-central_data-address-postal-data-from_date = sy-datum. * NAME and SORT1 are Mandatory fields

ls_customers-central_data-address-postal-data-city = p_city. "city1

ls_customers-central_data-address-postal-data-street = p_street. * and now mark all used fields

ls_customers-central_data-address-postal-datax-city = 'X'. ls_customers-central_data-address-postal-datax-street = 'X'.

* fill telephon data

ls_phone-contact-task = 'U'.

ls_phone-contact-data-telephone = p_tel. ls_phone-contact-data-country = 'CL'. ls_phone-contact-data-std_no = 'X'. ls_phone-contact-data-r_3_user = '1'. ls_phone-contact-data-home_flag = 'X'.

(7)

ls_phone-contact-data-caller_no = p_tel. *ls_phone-contact-data-CONSNUMBER = '001'. ls_phone-contact-datax-country = 'X'. ls_phone-contact-datax-telephone = 'X'. ls_phone-contact-datax-std_no = 'X'. ls_phone-contact-datax-r_3_user = 'X'. ls_phone-contact-datax-home_flag = 'X'. ls_phone-contact-datax-caller_no = 'X'. *ls_phone-contact-datax-CONSNUMBER = 'X'. APPEND ls_phone TO lt_phone.

ls_phone_main-phone = lt_phone. * fill mail data

ls_mail-contact-task = 'U'.

ls_mail-contact-data-e_mail = p_mail. ls_mail-contact-datax-e_mail = 'X'. APPEND ls_mail TO lt_mail.

ls_mail_main-smtp = lt_mail.

ls_customers-central_data-address-communication-smtp = ls_mail_main. ls_customers-central_data-address-communication-phone = ls_phone_main . *ls_customers-central_data-address-communication-fax = ls_fax_main. APPEND ls_customers TO lt_customers.

ls_masterdata-customers = lt_customers. BREAK-POINT. cmd_ei_api=>maintain_bapi( EXPORTING *iv_test_run = 'X' iv_collect_messages = 'X' is_master_data = ls_masterdata IMPORTING es_master_data_correct = ls_master_data_correct es_message_correct = ls_message_correct es_master_data_defective = ls_master_data_defective es_message_defective = ls_message_defective ). * to start booking

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' . BREAK-POINT.

References

Related documents