Application Development and Automation 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: 
Read only

address_type_1 and address_type_2 both not working using Maintain_Bapi

0 Likes
933

I have tried with address_type_1 and address_type_2 are not working to update vendor contact details, only telephone is getting updated.

Sample Code.
LOOP AT i_contact_det INTO l_wa_contact.
* Set Contact Person
REFRESH: l_it_vendor_contact[].
CLEAR l_wa_vendor_contact.
DATA: l_it_company        TYPE vmds_ei_company_t,<br>        l_it_vendor_contact TYPE vmds_ei_contacts_t,<br>        l_it_vendors        TYPE vmds_ei_extern_t,<br>        l_it_contract       TYPE vmds_ei_contacts_t,<br>        l_it_bank_det       TYPE cvis_ei_bankdetail_t,<br>        lo_vmd_ei_api       TYPE REF TO vmd_ei_api,<br>        l_it_email          TYPE cvis_ei_smtp_t,<br>        l_it_phone          TYPE cvis_ei_phone_t,<br>        l_it_return         TYPE bapiret2,<br>        l_it_vendor_data    TYPE vmds_ei_main,<br> *-----------------------------------------------------------------------*<br>*               Declaration Work Area                                   *<br>*-----------------------------------------------------------------------*<br>DATA: l_wa_contact         TYPE /sbde03/m_contact_det,<br>        l_wa_bank_det        TYPE cvis_ei_cvi_bankdetail,<br>        l_wa_remitt_adr      TYPE /sbde03/m_remitt_adr,<br>        l_wa_vendor_contact  TYPE vmds_ei_contacts,<br>        l_wa_address         TYPE cvis_ei_address1,<br>        l_wa_email           TYPE cvis_ei_smtp_str,<br>        l_wa_phone           TYPE cvis_ei_phone_str,<br>        l_wa_company         TYPE vmds_ei_company,<br>        l_wa_communication   TYPE cvis_ei_cvi_communication,<br>        l_wa_company_data    TYPE vmds_ei_vmd_company,<br>        l_wa_vendors         TYPE vmds_ei_extern,<br>        l_wa_contact_person  TYPE cmds_ei_contacts,<br>        l_wa_comm_contact      TYPE cvis_ei_phone_str,<br>        l_wa_comm_contact_smtp TYPE cvis_ei_smtp_str,<br>        l_wa_vmds_ei_extern    TYPE vmds_ei_extern,<br>        l_wa_bank_addr         TYPE bapi1011_address,<br>        l_wa_bank_upd          TYPE bapi1011_addressx,<br>        l_wa_error             TYPE cvis_message,

  •  l_wa_vendors-header-object_instance-lifnr = l_wa_contact-lifnr.
    l_wa_vendors-header-object_task = 'U'. "i_object_task.

    l_wa_vendor_contact-task = i_object_task.

has context menu

Set the Address for Contact person
l_wa_vendor_contact-address_type_1-task = 'U'."i_object_task.
l_wa_vendor_contact-address_type_1-postal-data-city = l_wa_contact-city.
l_wa_vendor_contact-address_type_1-postal-data-street = l_wa_contact-street.
l_wa_vendor_contact-address_type_1-postal-data-country = l_wa_contact-country.
l_wa_vendor_contact-address_type_1-postal-data-postl_cod1 = l_wa_contact-post_code1.
l_wa_vendor_contact-address_type_1-postal-data-region = l_wa_contact-region.
l_wa_vendor_contact-address_type_1-postal-datax-city = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-street = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-country = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-postl_cod1 = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-region = abap_true.

"APPEND l_wa_vendor_contact TO l_it_vendor_contact.

l_wa_comm_contact_smtp-contact-task = i_object_task.
l_wa_comm_contact_smtp-contact-data-e_mail = l_wa_contact-email.
l_wa_comm_contact_smtp-contact-datax-e_mail = abap_true.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_2-communication-smtp-smtp.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_3-communication-smtp-smtp.


l_wa_comm_contact-contact-task = i_object_task.
l_wa_comm_contact-contact-data-telephone = l_wa_contact-telf1.
l_wa_comm_contact-contact-datax-telephone = abap_true.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_2-communication-phone-phone.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_3-communication-phone-phone.

APPEND l_wa_vendor_contact TO l_it_vendor_contact.
ENDLOOP.



* Set the Contact Person details for the Vendor
l_wa_vendors-central_data-contact-contacts = l_it_vendor_contact[].
APPEND l_wa_vendors TO l_it_vendors.
l_it_vendor_data-vendors = l_it_vendors[].

ENDIF.

CALL METHOD lo_vmd_ei_api->maintain_bapi

EXPORTING
is_master_data = l_it_vendor_data
iv_collect_messages = abap_true
IMPORTING
es_master_data_correct = lv_es_master_data_correct
es_message_correct = lv_es_message_correct
es_master_data_defective = lv_es_master_data_defective
es_message_defective = e_error.

IF lv_es_message_defective-is_error IS INITIAL AND
e_error-messages[] IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.

ENDIF.



LOOP AT i_contact_det INTO l_wa_contact.


  • * Set Contact Person
    REFRESH: l_it_vendor_contact[].
    CLEAR l_wa_vendor_contact.

    l_wa_vendors-header-object_instance-lifnr = l_wa_contact-lifnr.
    l_wa_vendors-header-object_task = 'U'. "i_object_task.

    l_wa_vendor_contact-task = i_object_task.

has context menu

Set the Address for Contact person
l_wa_vendor_contact-address_type_1-task = 'U'."i_object_task.
l_wa_vendor_contact-address_type_1-postal-data-city = l_wa_contact-city.
l_wa_vendor_contact-address_type_1-postal-data-street = l_wa_contact-street.
l_wa_vendor_contact-address_type_1-postal-data-country = l_wa_contact-country.
l_wa_vendor_contact-address_type_1-postal-data-postl_cod1 = l_wa_contact-post_code1.
l_wa_vendor_contact-address_type_1-postal-data-region = l_wa_contact-region.
l_wa_vendor_contact-address_type_1-postal-datax-city = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-street = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-country = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-postl_cod1 = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-region = abap_true.

"APPEND l_wa_vendor_contact TO l_it_vendor_contact.

l_wa_comm_contact_smtp-contact-task = i_object_task.
l_wa_comm_contact_smtp-contact-data-e_mail = l_wa_contact-email.
l_wa_comm_contact_smtp-contact-datax-e_mail = abap_true.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_2-communication-smtp-smtp.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_3-communication-smtp-smtp.


l_wa_comm_contact-contact-task = i_object_task.
l_wa_comm_contact-contact-data-telephone = l_wa_contact-telf1.
l_wa_comm_contact-contact-datax-telephone = abap_true.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_2-communication-phone-phone.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_3-communication-phone-phone.

APPEND l_wa_vendor_contact TO l_it_vendor_contact.
ENDLOOP.



* Set the Contact Person details for the Vendor
l_wa_vendors-central_data-contact-contacts = l_it_vendor_contact[].
APPEND l_wa_vendors TO l_it_vendors.
l_it_vendor_data-vendors = l_it_vendors[].

ENDIF.

CALL METHOD lo_vmd_ei_api->maintain_bapi

EXPORTING
is_master_data = l_it_vendor_data
iv_collect_messages = abap_true
IMPORTING
es_master_data_correct = lv_es_master_data_correct
es_message_correct = lv_es_message_correct
es_master_data_defective = lv_es_master_data_defective
es_message_defective = e_error.

IF lv_es_message_defective-is_error IS INITIAL AND
e_error-messages[] IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.

ENDIF.

I have tried with address_type_1 and address_type_2 are not working to update vendor contact details, only telephone is getting updated.

Sample Code.
LOOP AT i_contact_det INTO l_wa_contact.
* Set Contact Person
REFRESH: l_it_vendor_contact[].
CLEAR l_wa_vendor_contact.
DATA: l_it_company        TYPE vmds_ei_company_t,<br>        l_it_vendor_contact TYPE vmds_ei_contacts_t,<br>        l_it_vendors        TYPE vmds_ei_extern_t,<br>        l_it_contract       TYPE vmds_ei_contacts_t,<br>        l_it_bank_det       TYPE cvis_ei_bankdetail_t,<br>        lo_vmd_ei_api       TYPE REF TO vmd_ei_api,<br>        l_it_email          TYPE cvis_ei_smtp_t,<br>        l_it_phone          TYPE cvis_ei_phone_t,<br>        l_it_return         TYPE bapiret2,<br>        l_it_vendor_data    TYPE vmds_ei_main,<br> *-----------------------------------------------------------------------*<br>*               Declaration Work Area                                   *<br>*-----------------------------------------------------------------------*<br>DATA: l_wa_contact         TYPE /sbde03/m_contact_det,<br>        l_wa_bank_det        TYPE cvis_ei_cvi_bankdetail,<br>        l_wa_remitt_adr      TYPE /sbde03/m_remitt_adr,<br>        l_wa_vendor_contact  TYPE vmds_ei_contacts,<br>        l_wa_address         TYPE cvis_ei_address1,<br>        l_wa_email           TYPE cvis_ei_smtp_str,<br>        l_wa_phone           TYPE cvis_ei_phone_str,<br>        l_wa_company         TYPE vmds_ei_company,<br>        l_wa_communication   TYPE cvis_ei_cvi_communication,<br>        l_wa_company_data    TYPE vmds_ei_vmd_company,<br>        l_wa_vendors         TYPE vmds_ei_extern,<br>        l_wa_contact_person  TYPE cmds_ei_contacts,<br>        l_wa_comm_contact      TYPE cvis_ei_phone_str,<br>        l_wa_comm_contact_smtp TYPE cvis_ei_smtp_str,<br>        l_wa_vmds_ei_extern    TYPE vmds_ei_extern,<br>        l_wa_bank_addr         TYPE bapi1011_address,<br>        l_wa_bank_upd          TYPE bapi1011_addressx,<br>        l_wa_error             TYPE cvis_message,

  •  l_wa_vendors-header-object_instance-lifnr = l_wa_contact-lifnr.
    l_wa_vendors-header-object_task = 'U'. "i_object_task.

    l_wa_vendor_contact-task = i_object_task.

has context menu

Set the Address for Contact person
l_wa_vendor_contact-address_type_1-task = 'U'."i_object_task.
l_wa_vendor_contact-address_type_1-postal-data-city = l_wa_contact-city.
l_wa_vendor_contact-address_type_1-postal-data-street = l_wa_contact-street.
l_wa_vendor_contact-address_type_1-postal-data-country = l_wa_contact-country.
l_wa_vendor_contact-address_type_1-postal-data-postl_cod1 = l_wa_contact-post_code1.
l_wa_vendor_contact-address_type_1-postal-data-region = l_wa_contact-region.
l_wa_vendor_contact-address_type_1-postal-datax-city = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-street = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-country = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-postl_cod1 = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-region = abap_true.

"APPEND l_wa_vendor_contact TO l_it_vendor_contact.

l_wa_comm_contact_smtp-contact-task = i_object_task.
l_wa_comm_contact_smtp-contact-data-e_mail = l_wa_contact-email.
l_wa_comm_contact_smtp-contact-datax-e_mail = abap_true.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_2-communication-smtp-smtp.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_3-communication-smtp-smtp.


l_wa_comm_contact-contact-task = i_object_task.
l_wa_comm_contact-contact-data-telephone = l_wa_contact-telf1.
l_wa_comm_contact-contact-datax-telephone = abap_true.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_2-communication-phone-phone.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_3-communication-phone-phone.

APPEND l_wa_vendor_contact TO l_it_vendor_contact.
ENDLOOP.



* Set the Contact Person details for the Vendor
l_wa_vendors-central_data-contact-contacts = l_it_vendor_contact[].
APPEND l_wa_vendors TO l_it_vendors.
l_it_vendor_data-vendors = l_it_vendors[].

ENDIF.

CALL METHOD lo_vmd_ei_api->maintain_bapi

EXPORTING
is_master_data = l_it_vendor_data
iv_collect_messages = abap_true
IMPORTING
es_master_data_correct = lv_es_master_data_correct
es_message_correct = lv_es_message_correct
es_master_data_defective = lv_es_master_data_defective
es_message_defective = e_error.

IF lv_es_message_defective-is_error IS INITIAL AND
e_error-messages[] IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.

ENDIF.



LOOP AT i_contact_det INTO l_wa_contact.


  • * Set Contact Person
    REFRESH: l_it_vendor_contact[].
    CLEAR l_wa_vendor_contact.

    l_wa_vendors-header-object_instance-lifnr = l_wa_contact-lifnr.
    l_wa_vendors-header-object_task = 'U'. "i_object_task.

    l_wa_vendor_contact-task = i_object_task.

has context menu

Set the Address for Contact person
l_wa_vendor_contact-address_type_1-task = 'U'."i_object_task.
l_wa_vendor_contact-address_type_1-postal-data-city = l_wa_contact-city.
l_wa_vendor_contact-address_type_1-postal-data-street = l_wa_contact-street.
l_wa_vendor_contact-address_type_1-postal-data-country = l_wa_contact-country.
l_wa_vendor_contact-address_type_1-postal-data-postl_cod1 = l_wa_contact-post_code1.
l_wa_vendor_contact-address_type_1-postal-data-region = l_wa_contact-region.
l_wa_vendor_contact-address_type_1-postal-datax-city = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-street = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-country = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-postl_cod1 = abap_true.
l_wa_vendor_contact-address_type_1-postal-datax-region = abap_true.

"APPEND l_wa_vendor_contact TO l_it_vendor_contact.

l_wa_comm_contact_smtp-contact-task = i_object_task.
l_wa_comm_contact_smtp-contact-data-e_mail = l_wa_contact-email.
l_wa_comm_contact_smtp-contact-datax-e_mail = abap_true.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_2-communication-smtp-smtp.
APPEND l_wa_comm_contact_smtp TO l_wa_vendor_contact-address_type_3-communication-smtp-smtp.


l_wa_comm_contact-contact-task = i_object_task.
l_wa_comm_contact-contact-data-telephone = l_wa_contact-telf1.
l_wa_comm_contact-contact-datax-telephone = abap_true.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_2-communication-phone-phone.
APPEND l_wa_comm_contact TO l_wa_vendor_contact-address_type_3-communication-phone-phone.

APPEND l_wa_vendor_contact TO l_it_vendor_contact.
ENDLOOP.



* Set the Contact Person details for the Vendor
l_wa_vendors-central_data-contact-contacts = l_it_vendor_contact[].
APPEND l_wa_vendors TO l_it_vendors.
l_it_vendor_data-vendors = l_it_vendors[].

ENDIF.

CALL METHOD lo_vmd_ei_api->maintain_bapi

EXPORTING
is_master_data = l_it_vendor_data
iv_collect_messages = abap_true
IMPORTING
es_master_data_correct = lv_es_master_data_correct
es_message_correct = lv_es_message_correct
es_master_data_defective = lv_es_master_data_defective
es_message_defective = e_error.

IF lv_es_message_defective-is_error IS INITIAL AND
e_error-messages[] IS INITIAL.
COMMIT WORK AND WAIT.
ELSE.
ROLLBACK WORK.
ENDIF.

ENDIF.

1 REPLY 1
Read only

Former Member
0 Likes
889

Thank you for visiting SAP Community to get answers to your questions. Since you're asking a question here for the first time, I recommend that you familiarize yourself with: https://community.sap.com/resources/questions-and-answers, as it provides tips for preparing questions that draw responses from our members.

For example, you can:

- outline what steps you took to find answers (and why they weren't helpful)

- share screenshots of what you've seen/done

- make sure you've applied the appropriate tags

- use a more descriptive subject line

The more details you provide, the more likely it is that members will be able to respond. Feel free to also take our Q&A tutorial at: https://developers.sap.com/tutorials/community-qa.html

Should you wish, you can revise your question by selecting Actions, then Edit.

By adding a picture to your profile you encourage readers to respond: https://developers.sap.com/tutorials/community-profile.html